Bedeutung der lokalen Antwortnormalisierung in CNN


41

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.

Antworten:


20

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. Folgendes steht im Skript für den Stanford-Kurs CS321n auf ConvNets:

Normalisierungsebene

Viele Arten von Normalisierungsschichten wurden für die Verwendung in ConvNet-Architekturen vorgeschlagen, manchmal mit der Absicht, im biologischen Gehirn beobachtete Inhibitionsschemata zu implementieren. Diese Schichten sind jedoch kürzlich in Ungnade gefallen, weil sich in der Praxis herausgestellt hat, dass ihr Beitrag, wenn überhaupt, minimal ist. Informationen zu verschiedenen Arten von Normalisierungen finden Sie in der Diskussion in der cuda-convnet-Bibliotheks-API von Alex Krizhevsky.


20

In der Tat scheint es keine gute Erklärung an einem einzigen Ort zu geben. Am besten lesen Sie die Artikel, aus denen sie stammen:

Der ursprüngliche AlexNet-Artikel erklärt ein wenig in Abschnitt 3.3:

  • Krizhevsky, Sutskever und Hinton, ImageNet-Klassifizierung mit Deep Convolutional Neural Networks, NIPS 2012. pdf

Die genaue Vorgehensweise wurde in (aber nicht viele zusätzliche Informationen hier) vorgeschlagen:

  • Kevin Jarrett, Koray Kavukcuoglu, Marc'Aurelio Ranzato und Yann LeCun, Was ist die beste mehrstufige Architektur für die Objekterkennung ?, ICCV 2009. pdf

Es wurde von Computational Neuroscience inspiriert:

  • S. Lyu und E. Simoncelli. Nichtlineare Bilddarstellung mit teilender Normalisierung. CVPR 2008. pdf . Dieses Papier befasst sich eingehender mit Mathematik und stimmt mit der Antwort von seanv507 überein.
  • [24] N. Pinto, DD Cox und JJ DiCarlo. Warum ist die visuelle Objekterkennung in der Praxis schwierig? PLoS Computational Biology, 2008.

15

XXTX

Die optimale Lösung wäre, die Eingaben für jedes Neuron zu sphären / aufzuhellen, was jedoch rechenintensiv ist. LCN kann als eine ungefähre Weißfärbung gerechtfertigt werden, die auf der Annahme eines hohen Korrelationsgrades zwischen benachbarten Pixeln (oder Kanälen) basiert. Ich würde also den Vorteil behaupten, dass die Fehleroberfläche für SGD harmloser ist ... Eine einzelne Lernrate funktioniert gut über die Eingabedimensionen (von jedem Neuron)


2
Batch-Normalisierung: Beschleunigung des Deep-Network-Trainings durch Reduzierung der internen Covariate-Verschiebung Sergey Ioffe, Christian Szegedy, arxiv.org/abs/1502.03167 führen eine (sorgfältig ausgeführte) Neuskalierung der Neuroneneingaben durch und erzielen erhebliche Beschleunigungen, indem sie höhere Lernraten verwenden können.
Seanv507

Sie können diese Informationen in Ihre Antwort einfügen, indem Sie auf die Schaltfläche Bearbeiten unter Ihrem Antworttext klicken.
Setzen Sie Monica am

10

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.

LRN

In der Praxis (siehe Caffe ) können 2 Ansätze verwendet werden:

  1. 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.
  2. 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.


Ich möchte auch hinzufügen, dass LRN eine Art "Wettbewerbsnormalisierung" ist, wie aus Seite 374 in Géron, Aurélien hervorgeht. Praktisches maschinelles Lernen mit Scikit-Learn und TensorFlow: Konzepte, Tools und Techniken zum Aufbau intelligenter Systeme. "O'Reilly Media, Inc.", 2017. . (Ich erwähne das, weil Hinton es in seiner Vorlesung Faltungsnetze zur Objekterkennung nur "Wettbewerbsnormalisierung" nennt .
Oren Milman

7

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)


0

i

xi=xi(k+(αjxj2))β

k,α,βRκ=0α=1β=12

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:

y=xμσ2+ϵγ+β

μσ2ε>0γ,βR

Die Antwort lautet also: Lokale Antwortnormalisierung ist nicht mehr wichtig, da wir etwas haben, das besser funktioniert und LRN: Batch-Normalisierung ersetzt.

Siehe auch


Ich denke das ist nicht richtig. LRN wird in der Ausgabe des Kernels angewendet, nicht in der Eingabe (obwohl Alexnet die Eingabenormalisierung verwendet, aber das ist separat).
Shital Shah
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.