Instanznormalisierung im Vergleich zur Stapelnormalisierung

9

Ich verstehe, dass die Stapel-Normalisierung zu einem schnelleren Training beiträgt, indem man die Aktivierung in Richtung der Gauß-Verteilung der Einheit umwandelt und so dem Problem der verschwindenden Gradienten begegnet. Batch-Norm-Acts werden beim Training (Mittelwert / var aus jeder Charge) und Testzeit (verwende finalisierten Laufmittel / var aus der Trainingsphase) unterschiedlich angewendet.

Die Instanznormalisierung dagegen dient als Kontrastnormalisierung, wie in diesem Artikel Ссылка erwähnt. Die Autoren erwähnen, dass die ausgegebenen stilisierten Bilder nicht von dem Kontrast des eingegebenen Inhaltsbildes abhängen sollten und daher die Instanznormierung hilft.

Aber dann sollten wir nicht auch die Instanznormierung für die Bildklassifizierung verwenden, bei der die Klassenbezeichnung nicht vom Kontrast des Eingangsbildes abhängen sollte. Ich habe kein Papier gesehen, das die Instanznormalisierung anstelle der Stapelnormalisierung für die Klassifizierung verwendet. Was ist der Grund dafür? Auch können und sollten Chargen- und Instanznormalisierung zusammen verwendet werden. Ich bin bestrebt, ein intuitives sowie theoretisches Verständnis darüber zu bekommen, wann ich welche Normalisierung anwenden kann.

    
Ruppesh Nalwaya 02.08.2017, 14:34
quelle

1 Antwort

4

Definition

Beginnen wir mit der strikten Definition von beiden:

Batch-Normalisierung

Instanznormalisierung

Wie Sie bemerken, machen sie dasselbe, abgesehen von der Anzahl der Eingangstensoren, die gemeinsam normalisiert werden. Batch-Version normalisiert alle Bilder über die Stapel- und räumlichen Positionen (im Normalfall in CNN ist es anders a>); Instanzversion normalisiert jeden Stapel unabhängig, d. h. nur über räumliche Speicherorte .

Mit anderen Worten berechnet die Instanznorm, wenn die Stapelnorm einen Mittelwert und einen Standarddev ausführt (also die Verteilung der gesamten Schicht als Gauß-Wert definiert),% der jeweiligen Bildverteilung, so dass jede einzelne Bildverteilung gaußförmig, aber nicht gemeinsam aussieht / p>

Eine einfache Analogie: Während des Datenvorverarbeitungsschritts ist es möglich, die Daten pro Bild zu normalisieren 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 nach der Normalisierungsschicht getan wird. Bildklassifizierungsnetzwerke stapeln die Feature-Maps normalerweise zusammen und verdrahten sie mit der FC-Ebene, die Gewichtungen über den Batch verteilen (die moderne Methode besteht darin, die CONV-Ebene anstelle von FC zu verwenden, das Argument gilt jedoch weiterhin) .

Hier beginnen die Verteilungsnuancen zu spielen: Das gleiche Neuron wird den Input von allen Bildern erhalten. Wenn die Varianz über die Charge hoch ist, wird der Gradient von den kleinen Aktivierungen vollständig durch die hohen Aktivierungen unterdrückt, was genau das Problem ist, das die Chargennorm zu lösen versucht. Deshalb ist es durchaus möglich, 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 entweder gut oder schlecht für das Netzwerk sein. Dies wird im Dokument "Weight Normalization" von Tim Salimans et al gut erklärt, in dem wiederkehrende neuronale Netzwerke und verstärkende Lern-DQNs genannt werden als geräuschempfindliche Anwendungen . Ich bin mir nicht ganz sicher, aber ich denke, dass die gleiche Geräuschempfindlichkeit das Hauptproblem bei der Stilisierungsaufgabe war, welche Instanz Norm zu kämpfen versuchte. Es wäre interessant zu prüfen, ob die Gewichtsnorm für diese spezielle Aufgabe besser ist.

Können Sie die Batch- und Instanznormalisierung kombinieren?

Obwohl es ein gültiges neurales Netzwerk bildet, gibt es keinen praktischen Nutzen dafür. Batch-Normalisierungsrauschen hilft entweder dem Lernprozess (in diesem Fall ist es vorzuziehen) oder verletzt ihn (in diesem Fall ist es besser, ihn wegzulassen). In beiden Fällen ist es wahrscheinlich, dass das Netzwerk mit einer Art der Normalisierung verbessert wird.

    
Maxim 05.01.2018 18:01
quelle