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:
- WITHIN_CHANNEL. Normalisieren Sie über die lokale Nachbarschaft eines einzelnen Kanals (entsprechend einem einzelnen Faltungsfilter). Mit anderen Worten, teilen Sie die Antwort eines einzelnen Kanals eines einzelnen Pixels gemäß den Ausgabewerten desselben Neurons für Pixel in der Nähe.
- ACROSS_CHANNELS. Für ein einzelnes Pixel werden die Werte jedes Kanals gemäß den Werten aller Kanäle für dasselbe Pixel normalisiert
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.