Aktualisieren der Gewichte der Filter in einem CNN


12

Ich versuche gerade, die Architektur eines CNN zu verstehen. Ich verstehe die Faltung, die ReLU-Schicht, die Pooling-Schicht und die vollständig verbundene Schicht. Ich bin jedoch immer noch verwirrt über die Gewichte.

In einem normalen neuronalen Netzwerk hat jedes Neuron sein eigenes Gewicht. In der vollständig verbundenen Schicht hätte jedes Neuron auch sein eigenes Gewicht. Was ich aber nicht weiß ist, ob jeder Filter sein eigenes Gewicht hat. Muss ich nur die Gewichte in der vollständig verbundenen Schicht während der Rückausbreitung aktualisieren? Oder haben alle Filter ein separates Gewicht, das ich aktualisieren muss?

Antworten:


12

In einem normalen neuronalen Netzwerk hat jedes Neuron sein eigenes Gewicht.

Das ist nicht richtig. Jede Verbindung zwischen Neuronen hat ihr eigenes Gewicht. In einem vollständig verbundenen Netzwerk wird jedem Neuron viele verschiedene Gewichte zugeordnet. Wenn es n0Eingaben (dh n0Neuronen in der vorherigen Schicht) zu einer Schicht mit n1Neuronen in einem vollständig verbundenen Netzwerk gibt, hat diese Schicht n0*n1Gewichte, ohne einen Bias-Term zu zählen.

Sie sollten dies in diesem Diagramm eines vollständig verbundenen Netzwerks von CS231n deutlich sehen können . Jede Kante, die Sie sehen, repräsentiert ein anderes trainierbares Gewicht:

Geben Sie hier die Bildbeschreibung ein

Faltungsschichten unterscheiden sich darin, dass sie eine feste Anzahl von Gewichten haben, die von der Wahl der Filtergröße und der Anzahl der Filter abhängt, jedoch unabhängig von der Eingabegröße.

Jeder Filter hat in jeder Position seiner Form ein eigenes Gewicht. Wenn Sie also zwei 3x3x3-Filter verwenden, haben Sie 54 Gewichte, wobei die Verzerrung wiederum nicht berücksichtigt wird. Dies ist in einem zweiten Diagramm aus CS231n dargestellt :

Geben Sie hier die Bildbeschreibung ein

Die Filtergewichte müssen unbedingt in der Backpropagation aktualisiert werden, da sie auf diese Weise lernen, Merkmale der Eingabe zu erkennen. Wenn Sie hier den Abschnitt mit dem Titel "Visualisieren neuronaler Netze" lesen, werden Sie sehen, wie Ebenen eines CNN immer komplexere Merkmale des Eingabebildes lernen, wenn Sie tiefer in das Netzwerk eindringen. Diese werden alle durch Anpassen der Filtergewichte durch Backpropagation gelernt.


mmm Die Anzahl der Gewichte in jeder Schicht hängt auch von der Anzahl der Schritte ab, die die Filter ausführen ... richtig?
Arnav Das

2

Während der Rückausbreitung werden sowohl dichte Schichten als auch Faltungsschichten aktualisiert, aber Max-Pooling-Schichten müssen nicht aktualisiert werden. Dichte Ebenen werden aktualisiert, um die Klassifizierung des Netzes zu erleichtern. Faltungsschichten werden aktualisiert, damit das Netzwerk die Funktionen selbst lernen kann. Da Sie in der Frage nicht gefragt haben, füge ich einfach einen Link für Sie hinzu, wenn Sie mehr wissen möchten. Hier gibt es eine sehr gute Erklärung für die Rückausbreitung , die für Sie nützlich sein kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.