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.
Beginnen wir mit der strengen Definition von beiden:
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 .
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.
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.
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
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:
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 .
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.