wake-up-neo.com

Instanznormalisierung vs. Stapelnormierung

Ich verstehe, dass die Batch-Normalisierung zu einem schnelleren Training beiträgt, indem die Aktivierung in Richtung der Gaußschen Verteilung der Einheiten gedreht wird und damit das Problem der verschwindenden Gradienten gelöst wird. Batch-Norm-Acts werden beim Training (Verwenden des Durchschnitts/Var von jeder Charge) und der Testzeit (Verwenden des endgültigen laufenden Durchschnitts/Var aus der Trainingsphase) unterschiedlich angewendet.

Die Normalisierung der Instanz fungiert dagegen als Kontrastnormalisierung, wie in diesem Dokument erwähnt https://arxiv.org/abs/1607.08022 . Die Autoren erwähnen, dass die Ausgabe stilisierter Bilder nicht vom Kontrast des eingegebenen Inhaltsbildes abhängen sollte und daher die Instanznormalisierung hilfreich ist. 

Aber sollten wir nicht auch die Instanznormalisierung für die Bildklassifizierung verwenden, bei der die Klassenbezeichnung nicht vom Kontrast des Eingabebildes abhängen sollte. Ich habe kein Papier gesehen, das zur Normalisierung anstelle der Batch-Normalisierung zur Klassifizierung verwendet wurde. Was ist der Grund dafür? Kann und sollte auch Batch- und Instanznormalisierung zusammen verwendet werden. Ich bin sehr daran interessiert, ein intuitives und theoretisches Verständnis darüber zu erlangen, wann welche Normalisierung verwendet wird. 

23
Ruppesh Nalwaya

Definition

Beginnen wir mit der strengen Definition von beiden:

Chargennormalisierung batch-norm-formula

Instanznormalisierung instance-norm-formula

Wie Sie sehen, machen sie dasselbe, mit Ausnahme der Anzahl der Eingangstensoren, die gemeinsam normalisiert werden. Die Stapelversion normalisiert alle Bilder über den Stapel und die räumlichen Standorte (im CNN-Fall im Normalfall es ist anders ); Die Instanzversion normalisiert jeden Stapel unabhängig, d. h. nur über räumliche Standorte.

Mit anderen Worten, wenn die Batch-Norm einen Mittelwert und eine Standard-Dev berechnet (wodurch die Verteilung der gesamten Gauß-Schicht berechnet wird), berechnet die Instanz-Norm T von ihnen, wodurch jede einzelne Bildverteilung wie eine Gauß-Verteilung aussieht, jedoch nicht gemeinsam.

Eine einfache Analogie: Während des Vorverarbeitungsschritts der Daten ist es möglich, die Daten bildweise oder den gesamten Datensatz zu normalisieren.

Gutschrift: die Formeln sind von hier .

Welche Normalisierung ist besser?

Die Antwort hängt von der Netzwerkarchitektur ab, insbesondere davon, was gemacht wird after die Normalisierungsebene. Bildklassifizierungsnetzwerke stapeln normalerweise die Feature-Maps und verbinden sie mit dem FC-Layer, der die Gewichte über den Stapel verteilt (die moderne Methode ist die Verwendung des CONV Schicht statt FC, aber das Argument gilt immer noch).

Hier beginnen die Verteilungsnuancen eine Rolle zu spielen: Das gleiche Neuron wird die Eingabe von allen Bildern erhalten. Wenn die Varianz über die Charge hoch ist, wird der Gradient aus den kleinen Aktivierungen durch die hohen Aktivierungen vollständig unterdrückt, was genau das Problem ist, das die Chargennorm zu lösen versucht. Aus diesem Grund ist es ziemlich wahrscheinlich, dass die Normalisierung pro Instanz die Netzwerkkonvergenz überhaupt nicht verbessert.

Auf der anderen Seite fügt die Batch-Normalisierung dem Training zusätzliches Rauschen hinzu, da das Ergebnis für eine bestimmte Instanz von den Nachbarinstanzen abhängt. Wie sich herausstellt, kann diese Art von Rauschen für das Netzwerk sowohl gut als auch schlecht sein. Dies wird ausführlich in dem Artikel "Weight Normalization" von Tim Salimans et al. Erläutert, in dem wiederkehrende neuronale Netze und DQNs zum Lernen von Verstärkung als geräuschempfindliche Anwendungen bezeichnet werden. Ich bin mir nicht ganz sicher, aber ich denke, dass die gleiche Geräuschempfindlichkeit das Hauptproblem bei der Stilisierungsaufgabe war, gegen die die Instanznorm zu kämpfen versuchte. Es wäre interessant zu prüfen, ob die Gewichtsnorm für diese bestimmte Aufgabe besser ist.

Können Sie Batch- und Instanznormalisierung kombinieren?

Obwohl es ein gültiges neuronales Netzwerk ist, gibt es keinen praktischen Nutzen dafür. Batch-Normalisierungsrauschen unterstützt entweder den Lernprozess (in diesem Fall ist es vorzuziehen) oder verletzt ihn (in diesem Fall ist es besser, es wegzulassen). In beiden Fällen wird die Leistung wahrscheinlich verbessert, wenn das Netzwerk mit einer Art von Normalisierung verlassen wird.

54
Maxim

Tolle Frage und schon nett beantwortet. Nur um hinzuzufügen: Ich fand diese Visualisierung von Kaiming He's Group Norm Papier hilfreich.  

Quelle: Link zum Artikel zu Medium im Gegensatz zu den Normen

8
Stephen Morrell

Ich wollte dieser Frage mehr Informationen hinzufügen, da es in diesem Bereich einige neuere Arbeiten gibt. Deine Intuition

verwenden Sie die Instanznormalisierung für die Bildklassifizierung, wobei die Klassenbezeichnung sollte nicht vom Kontrast des Eingabebildes abhängen

ist teilweise richtig. Ich würde sagen, dass ein Schwein bei hellem Tageslicht immer noch ein Schwein ist, wenn das Bild in der Nacht oder im Morgengrauen aufgenommen wird. Dies bedeutet jedoch nicht, dass die Verwendung der Instanznormalisierung im gesamten Netzwerk zu besseren Ergebnissen führt. Hier sind einige Gründe:

  1. Die Farbverteilung spielt noch eine Rolle. Es ist eher ein Apfel als eine Orange, wenn er viel Rot hat.
  2. In späteren Schichten können Sie sich keine Instanznormalisierung als Kontrastnormalisierung mehr vorstellen. Klassenspezifische Details werden in tieferen Schichten auftauchen, und die Normalisierung dieser Werte wird die Leistung des Modells stark beeinträchtigen.

IBN-Net verwendet sowohl die Batch-Normalisierung als auch die Instanz-Normalisierung in ihrem Modell. Sie setzen die Instanznormalisierung nur in frühen Schichten ein und haben sowohl die Genauigkeit als auch die Generalisierungsfähigkeit verbessert. Sie haben Open Source Code hier .

 enter image description here

6
hkchengrex

IN sorgt für visuelle und visuelle Erscheinung und BN beschleunigen das Training und bewahren diskriminierende Merkmale auf. IN wird in der flachen Schicht (Ausgangsschicht von CNN) bevorzugt, so dass Aussehensvariationen entfernt werden und BN in tiefen Schichten (letzte CNN-Schicht) bevorzugt wird reduzieren, um Diskriminierung aufrechtzuerhalten.

0
praveen