Einfach erklärt
Layer‑Normalisierung macht die Werte einer Schicht pro einzelnes Beispiel vergleichbar. Vor jedem weiteren Rechenschritt werden sie auf eine gemeinsame Basis gebracht:
- Durchschnitt auf etwa 0 setzen.
- Streuung auf etwa 1 bringen.
- Anschließend dürfen zwei Regler (Skalieren, Verschieben) die Werte wieder passend einstellen – das lernt das Netz selbst.
Warum hilft das?
- Das Lernen wird ruhiger und schneller.
- Funktioniert unabhängig davon, wie viele Beispiele gleichzeitig verarbeitet werden (auch nur eins).
Ganz einfache Bilder:
- Musik: Jedes Lied wird zuerst auf ähnliche Lautstärke gebracht; dann fein nachregeln.
- Fotos: Helligkeit pro Bild angleichen; dann Details besser erkennen.
- Werkstatt: Tisch begradigen (Wasserwaage), dann fein einstellen.
Professionelle Definition
Für Aktivierungen (x\in\mathbb{R}^D) einer Schicht wird pro Datenbeispiel (\mu=\tfrac1D\sum_{i=1}^D x_i) und (\sigma^2=\tfrac1D\sum_{i=1}^D(x_i-\mu)^2) berechnet. Die Normalisierung lautet
[\hat x_i=\frac{x_i-\mu}{\sqrt{\sigma^2+\varepsilon}},\quad y_i=\gamma_i,\hat x_i+\beta_i,]
wobei (\gamma,\beta) lernbar sind. Im Unterschied zur Batch‑Normalisierung nutzt Layer‑Normalisierung keine Batch‑Statistiken und verhält sich daher im Training und in der Inferenz gleich. Sie ist besonders nützlich in Sequenzmodellen (z. B. RNNs, Transformern) und bei kleinen Batch‑Größen.
Quellen
- Ba, Kiros, Hinton (2016) – Layer Normalization (Originalarbeit)
https://arxiv.org/abs/1607.06450 - PDF der Originalarbeit (UofT‑Host)
https://www.cs.utoronto.ca/~hinton/absps/LayerNormalization.pdf - Wikipedia – Normalization (machine learning), Abschnitt Layer normalization
https://en.wikipedia.org/wiki/Normalization_%28machine_learning%29 - PyTorch – LayerNorm (Dokumentation, Trainings‑/Inferenzverhalten)
https://docs.pytorch.org/docs/stable/generated/torch.nn.LayerNorm.html - Wu & He (2018) – Group Normalization (Alternative bei kleinen Batches)
https://arxiv.org/abs/1803.08494