Ich habe festgestellt, dass Imagenet und andere große CNN lokale Antwortnormalisierungsschichten verwenden. Ich kann jedoch nicht so viele Informationen über sie finden. Wie wichtig sind sie und wann sollten sie angewendet werden?
Von http://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :
Die lokale Antwortnormalisierungsschicht führt eine Art "laterale Hemmung" durch, indem sie über lokale Eingaberegionen normalisiert. Im ACROSS_CHANNELS-Modus erstrecken sich die lokalen Regionen über nahe gelegene Kanäle, haben jedoch keine räumliche Ausdehnung (dh sie haben die Form local_size x 1 x 1). Im WITHIN_CHANNEL-Modus erstrecken sich die lokalen Regionen räumlich, befinden sich jedoch in getrennten Kanälen (dh sie haben die Form 1 x local_size x local_size) .Jeder Eingabewert wird durch (1+ (α / n) ∑ix2i) β geteilt, wobei n ist die Größe jeder lokalen Region, und die Summe wird über die bei diesem Wert zentrierte Region gezogen (erforderlichenfalls wird eine Auffüllung von Null hinzugefügt). "
Bearbeiten:
Es scheint, dass diese Arten von Schichten eine minimale Auswirkung haben und nicht mehr verwendet werden. Grundsätzlich wurde ihre Rolle durch andere Regularisierungstechniken (wie Dropout und Batch-Normalisierung), bessere Initialisierungen und Trainingsmethoden übertroffen. Siehe meine Antwort unten für weitere Details.
Mit dieser Antwort möchte ich die Beiträge anderer Autoren zusammenfassen und diejenigen, die nur wissen wollen, was es ist und wie es funktioniert, an einer einzigen Stelle über die LRN-Technik (oder die Kontrastnormalisierung) informieren.
Motivation: ' Diese Art der Antwortnormalisierung (LRN) implementiert eine Form der lateralen Hemmung, die von der Art der realen Neuronen inspiriert ist und einen Wettbewerb um große Aktivitäten zwischen Neuronenausgaben erzeugt, die mit verschiedenen Kerneln berechnet wurden. ' AlexNet 3.3
Mit anderen Worten, LRN ermöglicht es, für die Nachbarschaft gleich große Antworten zu verringern und eine starke Aktivierung innerhalb einer Nachbarschaft zu bewirken, dh einen höheren Kontrast in der Aktivierungskarte zu erzeugen. prateekvjoshi.com gibt an, dass es besonders nützlich ist, wenn uneingeschränkte Aktivierungsfunktionen als RELU verwendet werden.
Ursprüngliche Formel: Für jede bestimmte Position (x, y) und jeden Kernel i , der einer einzelnen 'Pixel'-Ausgabe entspricht, wenden wir einen' Filter 'an, der Informationen über Ausgaben anderer n Kernel enthält, die auf dieselbe Position angewendet werden. Diese Regularisierung wird vor der Aktivierungsfunktion angewendet. Diese Regularisierung beruht in der Tat auf der Reihenfolge der Kerne, die meines Wissens nur ein unglücklicher Zufall ist.
In der Praxis (siehe Caffe ) können 2 Ansätze verwendet werden:
Tatsächliche Nutzung LRN wurde in den Tagen früherer Konvete wie LeNet-5 häufiger verwendet. Die derzeitige Implementierung von GoogLeNet (Inception) in Caffe verwendet häufig LRN in Verbindung mit Pooling-Techniken, dies scheint jedoch nur aus Gründen der Einfachheit geschehen zu sein. Weder im Original von Inception / GoogLeNet ( hier ) noch in einer der folgenden Versionen wird LRN in irgendeiner Weise erwähnt. Außerdem verwendet die TensorFlow-Implementierung von Inception-Netzwerken (bereitgestellt und aktualisiert vom Team der ursprünglichen Autoren) kein LRN, obwohl es verfügbar ist.
Schlussfolgerung Das Anwenden von LRN zusammen mit der Pooling-Schicht würde die Leistung des Netzwerks nicht beeinträchtigen, solange Hyperparameterwerte angemessen sind. Trotzdem ist mir keine Rechtfertigung für die Anwendung von LRN / Kontrastnormalisierung in einem neuronalen Netzwerk bekannt.
quelle
Der LRN-Typ (Local Response Normalization) erweist sich als nützlich, wenn Neuronen mit unbegrenzten Aktivierungen verwendet werden (z. B. gleichgerichtete lineare Neuronen), da er den Nachweis von Hochfrequenzmerkmalen mit einer großen Neuronenantwort ermöglicht, während Antworten, die gleichmäßig groß sind, gedämpft werden in einer lokalen Nachbarschaft. Es ist eine Art Regularisierer, der den "Wettbewerb" um große Aktivitäten unter nahe gelegenen Gruppen von Neuronen fördert.
src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)
quelle
Es gibt jedoch eine viel neuere Technik namens "Batch-Normalisierung" (siehe Papier ), die ziemlich ähnlich funktioniert und vorschlägt, LRN nicht mehr zu verwenden. Die Batch-Normalisierung funktioniert auch pixelweise:
Die Antwort lautet also: Lokale Antwortnormalisierung ist nicht mehr wichtig, da wir etwas haben, das besser funktioniert und LRN: Batch-Normalisierung ersetzt.
Siehe auch
quelle