Was ist Layer Normalization?

LayerNorm stabilisiert das Training tiefer Netzwerke, indem es Aktivierungen über Features (nicht über Batch) normalisiert. Es berechnet Mean und Variance für jeden einzelnen Vektor und transformiert ihn zu Mean=0, Variance=1. Trainierbare Parameter γ (Scale) und β (Shift) erlauben dem Modell, die optimale Verteilung zu lernen.

Eingabe-Vektor

LayerNorm vs BatchNorm

LayerNorm:

  • Normalisiert über Features (Dimensionen)
  • Jedes Sample einzeln
  • Unabhängig von Batch-Größe
  • Ideal für Sequenzen (NLP)

BatchNorm:

  • Normalisiert über Batch
  • Alle Samples zusammen
  • Abhängig von Batch-Größe
  • Ideal für CNNs (Vision)

RMSNorm (Modern)

Vereinfachte Variante von LayerNorm, verwendet in Llama, Mistral und vielen modernen LLMs:

RMSNorm(x) = (x / RMS(x)) · γ
RMS(x) = √(Σ x²_i / n)
  • Kein Mean-Subtraction (nur RMS)
  • Kein Shift-Parameter β
  • ~10-15% schneller als LayerNorm
  • Gleiche Qualität in der Praxis

Warum Normalisierung wichtig ist

  • Stabilisiert Training tiefer Netzwerke
  • Reduziert Internal Covariate Shift
  • Ermöglicht höhere Learning Rates
  • Verbessert Gradientenfluss
  • Reduziert Abhängigkeit von Initialisierung

Parameter

LayerNorm hat 2 × d_model trainierbare Parameter:

  • γ (gamma): Scale-Parameter, meist initialisiert mit 1
  • β (beta): Shift-Parameter, meist initialisiert mit 0
  • ε (epsilon): Kleine Konstante (~10⁻⁵) für numerische Stabilität

Beispiel: Bei d_model=512 hat LayerNorm 1024 Parameter.