Die Batch-Normalisierung ist eine Technik, die in tiefen neuronalen Netzen zur Verbesserung der Trainingsgeschwindigkeit, Stabilität und Konvergenz eingesetzt wird. Ihr Hauptzweck besteht darin, das Problem der internen Kovariatenverschiebung anzugehen, die sich auf die Änderung der Verteilung der Eingaben jeder Ebene während des Trainings aufgrund von Änderungen der Parameter der vorherigen Ebene bezieht. Diese Verschiebung kann den Trainingsprozess verlangsamen und es für jede Ebene schwieriger machen, effektiv zu lernen.
So funktioniert die Batch-Normalisierung
-
Normalisierung innerhalb von Mini-Batches: Während des Trainings normalisiert die Batch-Normalisierung die Eingaben jeder Schicht, indem sie den Mittelwert der Mini-Batches subtrahiert und durch die Standardabweichung der Mini-Batches dividiert. Dadurch wird die interne Kovariantenverschiebung reduziert, das Netzwerk wird stabiler und das Training wird beschleunigt.
-
Lernbare Parameter: Die Batch-Normalisierung führt zwei lernbare Parameter pro Aktivierung ein, die üblicherweise als Skalierungs- und Verschiebungsparameter bezeichnet werden. Diese Parameter ermöglichen es dem Modell, sich anzupassen und die optimale Skalierung und Verschiebung für die Eingaben jeder Schicht zu lernen.
-
Normalisierung über Merkmale hinweg: Zusätzlich zur Normalisierung über die Mini-Chargen-Dimension wird bei der Chargennormalisierung auch über die Merkmale für jede Probe innerhalb der Charge normalisiert. Diese Normalisierung wird unabhängig für jede Merkmalsdimension durchgeführt.
Auswirkungen auf die Ausbildung
-
Schnellere Konvergenz: Die Batch-Normalisierung führt oft zu einer schnelleren Konvergenz während des Trainings, da sie die Verwendung höherer Lernraten ohne das Risiko einer Divergenz ermöglicht.
-
Verringerung der Überanpassung: Sie fungiert als eine Form der Regularisierung, die die Abhängigkeit von Dropout- oder anderen Regularisierungstechniken verringert und so in gewissem Maße dazu beiträgt, Overfitting zu verhindern.
-
Stabilität und Gradientenfluss: Es stabilisiert den Trainingsprozess, indem es die Wahrscheinlichkeit des Verschwindens oder Explodierens von Gradienten verringert und einen robusteren Gradientenfluss durch das Netz ermöglicht.
Nachteile und Beschränkungen
-
Abhängigkeit von der Chargengröße: Die Wirksamkeit der Chargennormalisierung kann durch die beim Training verwendete Chargengröße beeinflusst werden. Sehr kleine Chargengrößen können zu ungenauen Schätzungen der Mini-Chargen-Statistiken führen, was die Leistung beeinträchtigt.
-
Schwierigkeit bei der Anwendung auf einige Architekturen: Die Batch-Normalisierung funktioniert möglicherweise nicht optimal mit rekurrenten neuronalen Netzen (RNNs) aufgrund der sequenziellen Natur ihrer Berechnung.
-
Auswirkungen auf die Inferenz: Während der Inferenz müssen der Mittelwert und die Standardabweichung, die für die Normalisierung verwendet werden, aus dem gesamten Trainingsdatensatz oder aus laufenden Statistiken geschätzt werden, was zu einer gewissen Diskrepanz führen kann, insbesondere in Fällen, in denen die Verteilung der Inferenzdaten erheblich von den Trainingsdaten abweicht.
Die Stapelnormalisierung ist zwar eine leistungsstarke Technik und wird häufig in vielen Deep-Learning-Architekturen verwendet, ihre Wirksamkeit kann jedoch je nach Netzwerkarchitektur, Datenverteilung und spezifischen Anwendungsfällen variieren. In manchen Szenarien sind Alternativen wie die Normalisierung auf Ebenen oder die Normalisierung von Instanzen vorzuziehen.