Paper · arXiv 1502.03167
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Zusammenfassung in drei Zeilen
- 🎯 Das Training tiefer Netze wird durch Internal Covariate Shift verlangsamt – die ständige Verschiebung der Aktivierungsverteilungen durch Parameteraktualisierungen früherer Schichten.
- 🔧 Führt Batch Normalization (BN) ein: eine Architekturschicht, die Minibatch-Aktivierungen auf Mittelwert null und Einheitsvarianz standardisiert, gefolgt von einer gelernten affinen Skalierung und Verschiebung (γ und β).
- 📈 Erreicht die Validierungsgenauigkeit einer Inception-Baseline von 72,2 % in 14-mal weniger Schritten und erzielt mit einem Ensemble einen Top-5-Fehler von 4,82 % auf den ImageNet-Testdaten.
Abstract
Das Training tiefer neuronaler Netze wird dadurch erschwert, dass sich die Verteilung der Eingaben jeder Schicht während des Trainings ändert, sobald die Parameter der vorherigen Schichten aktualisiert werden. Dies verlangsamt das Training, da niedrigere Lernraten und eine sorgfältige Parameterinitialisierung erforderlich sind, und macht das Trainieren von Modellen mit sättigenden Nichtlinearitäten notorisch schwierig. Wir bezeichnen dieses Phänomen als Internal Covariate Shift und lösen das Problem durch die Normalisierung der Schichteingaben. Unsere Methode zieht ihre Stärke daraus, die Normalisierung direkt in die Modellarchitektur zu integrieren und für jeden Trainings-Minibatch durchzuführen. Batch Normalization ermöglicht es uns, deutlich höhere Lernraten zu verwenden und bei der Initialisierung weniger vorsichtig sein zu müssen. Zudem wirkt sie als Regularisierer und macht Dropout in manchen Fällen überflüssig. Angewendet auf ein State-of-the-Art-Bildklassifikationsmodell erreicht Batch Normalization dieselbe Genauigkeit mit 14-mal weniger Trainingsschritten und übertrifft das Originalmodell deutlich. Mit einem Ensemble aus batch-normalisierten Netzen verbessern wir das beste publizierte Ergebnis bei der ImageNet-Klassifikation: Wir erreichen 4,9 % Top-5-Validierungsfehler (und 4,8 % Testfehler) und übertreffen damit die Genauigkeit menschlicher Annotatoren.
Original-Abstract (Englisch)
Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities. We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout. Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin. Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.
Leseleitfaden
Problem und Motivation
Während der Optimierung tiefer Netze mittels SGD verändern Anpassungen der Parameter früherer Schichten die Eingabeverteilung nachfolgender Schichten. Die Autoren bezeichnen dieses Phänomen als Internal Covariate Shift.
Internal Covariate Shift führt zu zwei zentralen Problemen:
- Subnetzwerke müssen sich kontinuierlich an veränderte Aktivierungsverteilungen anpassen.
- Aktivierungen driften leicht in die Sättigungsbereiche von Nichtlinearitäten (wie Sigmoid-Funktionen) ab, was zu verschwindenden Gradienten führt und geringe Lernraten sowie eine akribische Parameterinitialisierung erzwingt.
Zwar könnte ein Whitening (Dekorrelieren und Standardisieren) der Schichteingaben über den gesamten Datensatz die Verteilungen stabilisieren, jedoch ist die Berechnung vollständiger Kovarianzmatrizen und deren inverser Quadratwurzeln bei jedem Parameterschritt rechentechnisch untragbar. Zudem kann dies zur Explosion von Gradienten führen, wenn die Normalisierung nicht direkt in die Backpropagation integriert ist.
Kernideen
- Differenzierbare Normalisierungsschicht: Anstatt Aktivierungen außerhalb der Optimierung zu standardisieren, wird die Normalisierung direkt in die Modellarchitektur eingebunden. Dadurch berücksichtigt die Backpropagation die Abhängigkeiten zwischen Schichtaktivierungen und Minibatch-Statistiken.
- Dimensionenweise Normalisierung: Statt eines vollständigen gemeinsamen Whitenings wird jede skalare Merkmalsdimension separat auf einen Mittelwert von null und eine Varianz von eins normalisiert.
- Wiederherstellung der Repräsentationskapazität: Um zu verhindern, dass die Normalisierung die Ausdrucksstärke einer Schicht einschränkt (z. B. indem eine Sigmoid-Funktion in ein rein lineares Verhalten gezwungen wird), erlauben lernbare Parameter (Skalierung) und (Verschiebung) dem Modell, bei Bedarf wieder die Identitätstransformation herzustellen.
- Deterministische Inferenz: Während des Trainings werden die Statistiken über jeden Minibatch berechnet. Zur Testzeit ersetzen feste Populationsstatistiken (ermittelt über gleitende Durchschnitte der Trainings-Batches) die Minibatch-Statistiken, was eine deterministische Inferenz für Einzelsamples gewährleistet.
- Invarianz gegenüber Parameterskalierung: Skalierungstransformationen von Schichtgewichten erfüllen . Größere Gewichte führen folglich zu kleineren effektiven Gradienten, was einer Gradientenexplosion entgegenwirkt.
Methode (mit den zentralen Gleichungen)
Für einen Minibatch bezogen auf eine einzelne Aktivierungsdimension:
- Berechnung des Minibatch-Mittelwerts:
- Berechnung der Minibatch-Varianz:
- Normalisierung der Aktivierungen (mit Stabilitätskonstante ):
- Skalierung und Verschiebung mittels der lernbaren Parameter und :
Anwendung auf Schichten
- Platzierung: Wird unmittelbar vor Nichtlinearitäten eingesetzt: . Der ursprüngliche Schicht-Bias entfällt, da die Subtraktion des Mittelwerts ihn neutralisieren würde (seine Funktion wird von übernommen).
- Convolutional Layers: Um die Translationsäquivarianz zu erhalten, erfolgt die Normalisierung pro Feature-Map und nicht pro räumlicher Aktivierung. Bei einer Batchgröße und einer räumlichen Auflösung beträgt die effektive Minibatch-Größe , wobei sich alle Werte einer Feature-Map ein gemeinsames Paar teilen.
Transformation bei der Inferenz
Zur Testzeit wird die Transformation zu einer statischen linearen Operation unter Verwendung der Populationsstatistiken und :
Ergebnisse (mit den wichtigsten Kennzahlen)
- MNIST mit Sigmoiden: Mit Batch Normalization ausgestattete Netze behielten während des Trainings stabile Aktivierungsverteilungen bei, konvergierten schneller und erzielten eine höhere Testgenauigkeit als unnormalisierte Netze.
- ImageNet-Trainingsgeschwindigkeit (Einzelnetz):
- Das unnormalisierte Inception erreichte 72,2 % Validierungsgenauigkeit nach Schritten.
- Das Inception-Basismodell mit Batch Normalization erreichte 72,2 % in Schritten.
- Mit einer 5-fach höheren Lernrate (BN-x5) erreichte es 72,2 % bereits in Schritten – eine 14-fache Reduktion der nötigen Trainingsschritte bei einer Spitzenleistung von 73,0 %.
- Mit einer 30-fach höheren Lernrate (BN-x30) erreichte das Modell nach Schritten ein Maximum von 74,8 % Genauigkeit.
- Sättigende Nichtlinearitäten: Während ein unnormalisiertes Inception mit Sigmoid-Aktivierungen nicht trainierbar war (es stagnierte bei ca. 0,1 % Zufallsgenauigkeit), erreichte BN-x5-Sigmoid eine Top-1-Genauigkeit von 69,8 %.
- ImageNet-SOTA-Ensemble: Ein Ensemble aus 6 batch-normalisierten Netzen erreichte einen Top-5-Validierungsfehler von 4,9 % und einen Testfehler von 4,82 % auf dem ILSVRC-Testserver und übertraf damit menschliche Benchmarks.
Grenzen und offene Fragen
- Abhängigkeit von der Batchgröße: Da die Normalisierung auf Stichprobenstatistiken des Minibatches basiert, können sehr kleine Minibatch-Größen die Qualität der Schätzungen von Mittelwert und Varianz verschlechtern.
- Rekurrente Netze: Die Arbeit konzentriert sich auf Feedforward- und Faltungsnetze; rekurrente neuronale Netze (RNNs) wurden als offene Forschungsfrage ausgewiesen, bei der Internal Covariate Shift ebenfalls kritisch sein könnte.
- Theoretische Grundlagen: Die Autoren vermuten, dass Batch Normalization dazu führt, dass die Singulärwerte der Schicht-Jacobi-Matrizen nahe bei 1 liegen; ein präziser theoretischer Nachweis des Gradientenverhaltens blieb jedoch zukünftigen Analysen vorbehalten.
Schlüsselbegriffe
- Internal Covariate Shift
- Die Veränderung der Verteilung interner Netzwerkaktivierungen während des Trainings, hervorgerufen durch Parameterupdates in vorhergehenden Schichten.
- Batch Normalization
- Ein Mechanismus, der Minibatch-Schichteingaben auf Mittelwert null und Einheitsvarianz standardisiert, bevor sie über gelernte Parameter skaliert und verschoben werden.
- Scale and Shift Parameters (γ and β)
- Lernbare Parameter pro Aktivierung, die die Repräsentationskapazität des Netzwerks bewahren, einschließlich der Fähigkeit, die Identitätstransformation darzustellen.
- Whitening
- Eine Transformation von Eingabedaten, die einen Mittelwert von null, eine Einheitsvarianz sowie voneinander dekorrelierte Merkmalsdimensionen erzeugt.
- Batch Normalizing Transform
- Der exakte differenzierbare Algorithmus, der Minibatch-Mittelwert und -Varianz berechnet, Eingaben normalisiert und affine Skalierungs- sowie Verschiebungsparameter anwendet.
- Population Statistics
- Der aggregierte Erwartungswert und die unverzerrte Varianz, die über Trainings-Minibatches hinweg erfasst werden, um Normalisierungsparameter für eine deterministische Inferenz einzufrieren.
- Feature Map Normalization
- Die gemeinsame Normalisierung über Minibatch-Elemente und räumliche Dimensionen hinweg, sodass alle Aktivierungen innerhalb einer Faltungs-Feature-Map dieselben Statistiken und affinen Parameter nutzen.
Fragen
Wo wird Batch Normalization im Verhältnis zu Aktivierungen und Biases angewendet?
Sie wird unmittelbar vor der Nichtlinearität eingefügt (). Der Bias-Parameter der vorhergehenden linearen Transformation wird weggelassen, da die Mittelwertsubtraktion ihn aufhebt; seine Rolle übernimmt der Parameter .
Wie unterscheidet sich das Verhalten von Batch Normalization im Training gegenüber der Inferenz?
Im Training werden Mittelwert und Varianz direkt über den aktuellen Minibatch berechnet, um die Aktivierungen zu standardisieren. Bei der Inferenz werden sie durch feste Populationsstatistiken (gleitende Durchschnitte über Trainings-Batches) ersetzt, wodurch die Schicht zu einer statischen linearen Transformation wird.
Warum ermöglicht Batch Normalization höhere Lernraten?
Die Normalisierung der Aktivierungen verhindert, dass kleine Parameteränderungen in Sättigungsbereiche führen oder explodierende Gradienten verursachen. Zudem ist der rückpropagierte Gradient invariant gegenüber der Skalierung der Gewichte: Größere Gewichte führen zu proportional kleineren Gradienten, was Instabilitäten verhindert.
Kann Batch Normalization Dropout ersetzen?
Ja, in vielen Szenarien. Da die normalisierte Aktivierung eines einzelnen Samples von den anderen zufälligen Beispielen im Minibatch abhängt, entsteht ein stochastisches Rauschen. Dies wirkt als effektiver Regularisierer, wodurch Dropout reduziert oder komplett weggelassen werden kann.
Die Übersicht auf dieser Seite wurde von einer KI aus dem Paper erstellt und kann Fehler enthalten. Details stehen im Paper.