Papier: Was ist der Unterschied zwischen Layer-Normalisierung, wiederkehrender Batch-Normalisierung (2016) und Batch-normalisierter RNN (2015)?

30

In letzter Zeit gibt es ein Papier zur Ebenennormalisierung . Es gibt auch eine Implementierung auf Keras.

Aber ich erinnere mich, dass es Artikel mit dem Titel Recurrent Batch Normalization (Cooijmans, 2016) und Batch Normalized Recurrent Neural Networks (Laurent, 2015) gibt. Was ist der Unterschied zwischen diesen drei?

Es gibt diesen Abschnitt über verwandte Arbeiten, den ich nicht verstehe:

Die Batch-Normalisierung wurde zuvor auf wiederkehrende neuronale Netze ausgedehnt [Laurent et al., 2015, Amodei et al., 2015, Cooijmans et al., 2016]. Die vorherige Arbeit [Cooijmans et al., 2016] legt nahe, dass die beste Leistung der wiederkehrenden Chargennormalisierung erzielt wird, indem unabhängige Normalisierungsstatistiken für jeden Zeitschritt geführt werden. Die Autoren zeigen, dass die Initialisierung des Verstärkungsparameters in der wiederkehrenden Batch-Normalisierungsschicht auf 0,1 einen signifikanten Unterschied in der endgültigen Leistung des Modells darstellt. Unsere Arbeit befasst sich auch mit der Gewichtsnormalisierung [Salimans und Kingma, 2016]. Bei der Gewichtsnormalisierung wird anstelle der Varianz die L2-Norm der eingehenden Gewichte verwendet, um die summierten Eingaben in ein Neuron zu normalisieren. Das Anwenden von Gewichtsnormalisierung oder Chargennormalisierung unter Verwendung von erwarteten Statistiken entspricht einer anderen Parametrisierung des ursprünglichen neuronalen Vorwärtskopplungsnetzwerks. Die Umparametrierung im ReLU-Netzwerk wurde in der Pathnormalized SGD untersucht [Neyshabur et al., 2015]. Unsere vorgeschlagene Schichtnormalisierungsmethode ist jedoch keine Neuparametrisierung des ursprünglichen neuronalen Netzwerks. Das schichtnormalisierte Modell hat daher andere Invarianzeigenschaften als die anderen Methoden , die wir im folgenden Abschnitt untersuchen werden

rilut
quelle

Antworten:

25
  • Layernormalisierung ( Ba 2016 ): Verwendet keine Stapelstatistik. Normalisieren Sie mit den Statistiken, die von allen Einheiten in einem Layer der aktuellen Stichprobe erfasst wurden. Funktioniert nicht gut mit ConvNets.

  • Recurrent Batch Normalization (BN) ( Cooijmans, 2016 ; wird auch von Qianli Liao & Tomaso Poggio vorgeschlagen , aber auf Recurrent ConvNets anstelle von RNN / LSTM getestet): Entspricht der Batch-Normalisierung. Verwenden Sie für jeden Zeitschritt unterschiedliche Normalisierungsstatistiken. Sie müssen für jeden Zeitschritt einen Satz von Mittelwert und Standardabweichung speichern.

  • Batch-Normalisierung für wiederkehrende neuronale Netze ( Laurent, 2015 ): Die Batch-Normalisierung wird nur zwischen dem Eingabe- und dem verborgenen Zustand angewendet, nicht jedoch zwischen verborgenen Zuständen. Das heißt, die Normalisierung wird nicht über die Zeit angewendet.

  • Streaming-Normalisierung ( Liao et al. 2016 ): Fasst vorhandene Normalisierungen zusammen und überwindet die meisten oben genannten Probleme. Es funktioniert gut mit ConvNets, wiederkehrendem Lernen und Online-Lernen (dh kleine Minibatches oder jeweils eine Stichprobe):

  • L2L21y=x(w/|w|)xwGy=yGG scheint nicht wesentlich für die Leistung zu sein (auch nachgelagerte lernbare Schichten können dies sowieso lernen).

  • L2y=(x/|x|)(w/|w|)xw

Beachten Sie, dass sowohl Gewicht und Cosinus Normalisierungs wurden in großem Umfang verwendet ( so genannte normalisierte Punktprodukt) in den 2000er Jahren in einer Klasse von ConvNets genannt HMAX (Riesenhuber 1999) biologische Vision zu modellieren. Vielleicht finden Sie sie interessant.

Ref: Die HMAX-Modellreferenz

Ref: Cortical Network Simulator Referenz

Ref: Kosinusnormalisierung: Verwenden der Kosinusähnlichkeit anstelle des Punktprodukts in neuronalen Netzen, Luo Chunjie, Zhan Jianfeng, Wang Lei, Yang Qiang

NeuralWorks
quelle