Würden nicht mehrere Filter in einer Faltungsschicht während des Trainings denselben Parameter lernen?

11

Basierend auf dem, was ich gelernt habe, verwenden wir mehrere Filter in einer Conv-Schicht eines CNN, um verschiedene Feature-Detektoren zu lernen. Aber da diese Filter ähnlich angewendet werden (dh verschoben und mit Regionen der Eingabe multipliziert werden), würden sie dann nicht einfach während des Trainings dieselben Parameter lernen? Daher wäre die Verwendung mehrerer Filter redundant?

cjbayron
quelle

Antworten:

6

Ich hatte die gleiche Verwirrung beim Verständnis dieser Tatsache. Die Verwirrung entsteht bei den Anfängern, weil in der Buchexplizität nicht erwähnt wird, dass Filter unterschiedlich sind.

da diese Filter ähnlich angewendet werden

Filter werden ähnlich angewendet, aber der Wert der Zelle in der Matrix unterscheidet sich voneinander. Sie extrahieren also verschiedene Merkmale aus dem Bild.

Würden sie nicht einfach während des Trainings die gleichen Parameter lernen?

Nein, sie lernen nicht denselben Parameter, da die Filter jetzt unterschiedlich sind. Die Verwendung mehrerer Filter ist also nicht redundant.

Ironman
quelle
Danke für die Antwort. Was genau macht sie anders? Wie stellen wir sicher, dass sie während des Trainings verschiedene Parameter lernen? Sind es ihre Anfangswerte?
CJBayron
1
Unterschiedliche Werte jeder Zelle machen sie unterschiedlich. Wie einige eine schräge Linie erkennen, erkennen einige eine 45-Grad-Kurvenlinie usw. Sie sind also alle unterschiedlich.
Ironman
1
Ja, ich verstehe, dass unterschiedliche Werte die Filter unterschiedliche Merkmale erkennen lassen. Aber wie lernen diese Filter während des Trainings anders?
CJBayron
3
Wenn die Filter alle gleich starten, bleiben sie dies auch. Die zufällige Initialisierung bedeutet, dass sie unterschiedlich beginnen und von dort aus verschiedene Dinge lernen. Weitere Informationen finden Sie unter Symmetrieunterbrechung in neuronalen Netzen.
Aaron
4

Ich habe die Antwort auf diese Frage gefunden: https://www.quora.com/Why-does-each-filter-learn-different-features-in-a-convolutional-neural-network

Hier heißt es: "... (Optimierungs-) Algorithmus stellt fest, dass der Verlust nicht abnimmt, wenn zwei Filter ähnliche Gewichte und Vorspannungen haben, so dass er schließlich eines der Filter (Gewichte und Vorspannungen) ändert, um den Verlust dadurch zu verringern eine neue Funktion lernen. "

Danke für die Antworten. Bin dankbar :)

cjbayron
quelle