Layer normalization ist eine Aktivierungsnormalisierungstechnik, die im Deep Learning eingesetzt wird, um das Training von neuronalen Netzen zu stabilisieren und zu beschleunigen. Im Gegensatz zur Batch-Normalisierung, die über die Batch-Dimension normalisiert, berechnet die Layer-Normalisierung Statistiken über die Feature-Dimension für jede einzelne Eingabestichprobe. Dies macht sie besonders geeignet für Modelle mit variablen Sequenzlängen oder kleinen Batch-Größen, wie Transformer und rekurrente neuronale Netze (RNNs). Sie wurde 2016 von Jimmy Lei Ba, Jamie Ryan Kiros und Geoffrey Hinton eingeführt und ist seitdem zu einem Standardbestandteil vieler moderner Architekturen geworden, einschließlich großer Sprachmodelle.
Die Layer-Normalisierung adressiert das Problem der internen Kovariatenverschiebung, bei der sich die Verteilung der Layer-Eingaben während des Trainings ändert und die Konvergenz verlangsamt. Durch die Neuskalierung und Neuausrichtung der Aktivierungen auf einen Mittelwert von null und eine Varianz von eins glättet sie die Optimierungslandschaft und reduziert die Empfindlichkeit gegenüber Parameterinitialisierung und Lernraten. Der empirische Erfolg hat sie zur Standardwahl in der Sequenzmodellierung und in generativen KI-Systemen gemacht.
Motivation und Hintergrund
Normalisierung im maschinellen Lernen lässt sich grob in zwei Kategorien einteilen: Datenormalisierung und Aktivierungsnormalisierung. Die Datenormalisierung, auch Feature-Skalierung genannt, skaliert Eingabefunktionen auf einen gemeinsamen Bereich, wie [0,1] oder [-1,1], um zu verhindern, dass Merkmale mit größeren Skalen (z. B. Kilometer gegenüber Nanometern) den Lernprozess dominieren. Die Aktivierungsnormalisierung, spezifisch für Deep Learning, skaliert die Aktivierungen verborgener Neuronen innerhalb eines Netzwerks. Die Hauptziele der Normalisierung sind die Erhöhung der Trainingsgeschwindigkeit, die Reduzierung von Overfitting, die Verbesserung der Generalisierung und die Abschwächung von Problemen wie verschwindenden oder explodierenden Gradienten.
Vor der Layer-Normalisierung war die Batch-Normalisierung (BatchNorm) die dominierende Aktivierungsnormalisierungsmethode. BatchNorm normalisiert Aktivierungen über die Mini-Batch-Dimension, indem sie Mittelwert und Varianz für jede Feature-Koordinate über alle Stichproben in einem Batch berechnet. BatchNorm hat jedoch Einschränkungen: Sie erfordert ausreichend große Batch-Größen, um Statistiken zuverlässig zu schätzen, und verhält sich während des Trainings (unter Verwendung von Batch-Statistiken) und der Inferenz (unter Verwendung von laufenden Durchschnittswerten) unterschiedlich. Für rekurrente Netze und Transformer, die Sequenzen variabler Länge verarbeiten, können Batch-Statistiken instabil oder unpraktisch sein.
Definition und mathematische Formulierung
Betrachten wir eine Schicht eines neuronalen Netzes, die einen Vektor von Aktivierungen \( x \) für eine einzelne Eingabestichprobe erzeugt. Die Layer-Normalisierung berechnet den Mittelwert \( \mu \) und die Varianz \( \sigma^2 \) über alle Features (oder verborgenen Einheiten) dieses Vektors:
\[ \mu = \frac{1}{H} \sum_{i=1}^{H} x_i, \quad \sigma^2 = \frac{1}{H} \sum_{i=1}^{H} (x_i - \mu)^2 \]
wobei \( H \) die Anzahl der Features in der Schicht ist. Die normalisierte Aktivierung ist dann:
\[ \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \]
wobei \( \epsilon \) eine kleine Konstante (z. B. \( 10^{-5} \)) ist, die für numerische Stabilität hinzugefügt wird. Um die Repräsentationsfähigkeit der Schicht zu erhalten, führt die Layer-Normalisierung lernbare Skalen- \( \gamma \) und Verschiebungsparameter \( \beta \) pro Feature ein, die wie folgt angewendet werden:
\[ y_i = \gamma_i \hat{x}_i + \beta_i \]
Diese Parameter werden während des Trainings durch Backpropagation aktualisiert, sodass das Netzwerk die Normalisierung bei Bedarf rückgängig machen kann.
Im Gegensatz zur Batch-Normalisierung hängt die Layer-Normalisierung nicht von der Batch-Größe oder anderen Stichproben im Batch ab. Sie wendet dieselbe Berechnung auf jede Eingabe unabhängig an, was sie einfach für Online-Lernen oder mit Batch-Größe 1 verwendbar macht.
Vergleich mit Batch-Normalisierung
Die Batch-Normalisierung normalisiert jede Feature-Koordinate über den Batch unter Verwendung von Batch-Statistiken. Für einen Batch von \( B \) Stichproben berechnet sie Mittelwert und Varianz für jede Feature-Dimension über alle Stichproben. Dies reduziert die interne Kovariatenverschiebung, führt jedoch Abhängigkeiten zwischen Stichproben in einem Batch ein. Während der Inferenz verwendet BatchNorm laufende Durchschnittswerte dieser Statistiken, was zu Diskrepanzen führen kann, wenn sich Trainings- und Testverteilung unterscheiden.
Die Layer-Normalisierung normalisiert dagegen über Features für jede Stichprobe. Dies hat mehrere Vorteile:
- Unabhängigkeit von der Batch-Größe: Funktioniert gut mit kleinen Batches oder Einzelstichproben-Inferenz, da keine Batch-Statistiken benötigt werden.
- Stabilität für rekurrente Netze: RNNs verarbeiten Sequenzen Schritt für Schritt; die Layer-Normalisierung kann zu jedem Zeitschritt angewendet werden, ohne Batch-Statistiken über die Zeit zu akkumulieren.
- Konsistenz zwischen Training und Inferenz: Dieselbe Berechnung wird in beiden Phasen verwendet, wodurch die Trainings-Test-Diskrepanz von BatchNorm vermieden wird.
Allerdings kann die Layer-Normalisierung weniger effektiv sein, wenn Feature-Dimensionen sehr unterschiedliche Skalen haben oder wenn die Feature-Dimension klein ist, da die Statistiken über eine begrenzte Menge von Werten berechnet werden.
Anwendungen in Transformatoren und RNNs
Die Layer-Normalisierung ist eine Kernkomponente der Transformer-Architektur, die 2017 im Paper "Attention Is All You Need" von Vaswani et al. eingeführt wurde. In Transformatoren wird die Layer-Normalisierung nach jeder Unterschicht (z. B. Multi-Head-Attention und Feed-Forward-Netzwerke) angewendet, entweder in einer Post-Norm- oder Pre-Norm-Konfiguration. Pre-Norm (Anwendung der Normalisierung vor der Unterschicht) ist in modernen Implementierungen üblich geworden, da sie das Training stabilisiert und tiefere Modelle ermöglicht.
In großen Sprachmodellen wie GPT, BERT und ihren Nachfolgern wird die Layer-Normalisierung umfassend eingesetzt. Beispielsweise verwenden die GPT-Modelle von OpenAI die Pre-Norm-Layer-Normalisierung innerhalb jedes Transformer-Blocks. Dies trägt zum stabilen Training von Modellen mit Hunderten von Milliarden Parametern bei, wie sie in Systemen von OpenAI, Anthropic und Google DeepMind zu sehen sind.
In rekurrenten neuronalen Netzen wird die Layer-Normalisierung auf den verborgenen Zustand zu jedem Zeitschritt angewendet. Dies hilft, die Probleme verschwindender und explodierender Gradienten zu mildern und ermöglicht es RNNs, langfristige Abhängigkeiten effektiver zu lernen. Sie wurde in Sequenz-zu-Sequenz-Modellen, Spracherkennung und Zeitreihenprognosen eingesetzt.
Varianten und Erweiterungen
Es wurden mehrere Varianten der Layer-Normalisierung vorgeschlagen, um spezifische Herausforderungen zu adressieren:
- Root-Mean-Square-Layer-Normalisierung (RMSNorm): Vereinfacht die Layer-Normalisierung, indem die Mittelwertsubtraktion weggelassen und nur die Quadratwurzel des Mittelwerts der Quadrate für die Skalierung verwendet wird. Sie reduziert den Rechenaufwand bei gleichbleibender Leistung und wird in einigen großen Sprachmodellen wie LLaMA verwendet.
- Gewichtsnormalisierung: Statt Aktivierungen zu normalisieren, normalisiert sie die Gewichtsvektoren einer Schicht, was als verwandte Technik angesehen werden kann.
- Instanznormalisierung: Hauptsächlich in der Bildgenerierung verwendet, normalisiert sie über räumliche Dimensionen für jeden Kanal und jede Stichprobe, ähnlich im Geist wie die Layer-Normalisierung, aber angewendet auf faltende Netzwerke.
- Gruppennormalisierung: Teilt Kanäle in Gruppen auf und normalisiert innerhalb jeder Gruppe, was einen Kompromiss zwischen Layer- und Batch-Normalisierung für Computer-Vision-Aufgaben bietet.
Diese Varianten zeigen die Flexibilität von Normalisierungstechniken bei der Anpassung an verschiedene Netzwerkarchitekturen und Datenmodalitäten.
Auswirkungen auf die Trainingsdynamik
Die Layer-Normalisierung verbessert das Training auf verschiedene Weise. Indem sie Aktivierungen in einem kontrollierten Bereich hält, verhindert sie extreme Werte, die zu Gradientenexplosionen oder Sättigung von Aktivierungsfunktionen wie Sigmoid oder Tanh führen können. Dies ermöglicht höhere Lernraten, was die Konvergenz beschleunigt. Sie wirkt auch als Regularisierer, der Overfitting reduziert, indem er durch den Normalisierungsprozess leichtes Rauschen hinzufügt, obwohl dieser Effekt weniger ausgeprägt ist als bei Dropout.
Empirische Studien haben gezeigt, dass die Layer-Normalisierung die Verlustlandschaft glättet und die Optimierung vorhersehbarer macht. Dies ist besonders wichtig für sehr tiefe Netzwerke, in denen kleine Störungen sich über Schichten verstärken können. In Transformatoren ermöglicht die Layer-Normalisierung das Training von Modellen mit Tausenden von Schichten, wie in neuerer Forschung zu tiefen Transformatoren demonstriert wurde.
Einschränkungen und Überlegungen
Trotz ihrer Vorteile hat die Layer-Normalisierung Einschränkungen. Sie nimmt an, dass Features innerhalb einer Schicht vergleichbare Verteilungen haben; wenn Features stark korreliert sind oder heterogene Varianzen aufweisen, ist die Normalisierung möglicherweise nicht optimal. Darüber hinaus erhöhen die hinzugefügten lernbaren Parameter (\( \gamma \) und \( \beta \)) die Modellgröße geringfügig, obwohl dies im Vergleich zur Gesamtzahl der Parameter vernachlässigbar ist.
In einigen Aufgaben, wie Computer Vision, übertrifft die Batch-Normalisierung oft die Layer-Normalisierung, da räumliche Statistiken über einen Batch reichhaltigere Informationen liefern. Für die Verarbeitung natürlicher Sprache und Sequenzmodellierung wird die Layer-Normalisierung jedoch allgemein bevorzugt. Stand Mitte der 2020er Jahre verlassen sich die meisten modernen großen Sprachmodelle auf eine Form der Layer-Normalisierung, was ihre Bedeutung im Bereich der generativen KI unterstreicht.
Fazit
Die Layer-Normalisierung ist zu einem grundlegenden Werkzeug im Deep Learning geworden, das stabiles und effizientes Training komplexer Architekturen ermöglicht. Ihre Unabhängigkeit von der Batch-Größe und die Konsistenz zwischen Training und Inferenz machen sie ideal für Transformer und rekurrente Netze, die moderne KI-Systeme untermauern. Da Modelle weiter skaliert werden, werden die Layer-Normalisierung und ihre Varianten wahrscheinlich wesentlich für zuverlässige Konvergenz und hohe Leistung bleiben.