Welche Arten der Normalisierung gibt es (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech KI
Antwort von AI
Die Normalisierung in neuronalen Netzen hilft, das Training zu stabilisieren und zu beschleunigen, indem sie die interne Verschiebung der Aktivierungsverteilung reduziert. Die wichtigsten Arten der Normalisierung:
-
Batch-Normalisierung (Batch Normalization, BatchNorm) — Normalisierung nach Batch. Berechnet den Mittelwert und die Varianz für jedes Merkmal über einen Mini-Batch, skaliert und verschiebt dann die Werte. Effektiv, aber abhängig von der Batch-Größe.
-
Layer-Normalisierung (Layer Normalization, LayerNorm) — Normalisierung nach Schicht. Berechnet Statistiken für alle Neuronen einer Schicht für jedes einzelne Beispiel, unabhängig von der Batch-Größe. Wird häufig in RNNs und Transformern verwendet.
-
Instanz-Normalisierung (Instance Normalization, InstanceNorm) — Normalisierung pro Beispiel und Kanal, häufig bei Bildverarbeitungsaufgaben, z.B. beim Stiltransfer.
-
Gruppen-Normalisierung (Group Normalization, GroupNorm) — Teilt die Kanäle in Gruppen und normalisiert innerhalb jeder Gruppe. Funktioniert stabil bei kleinen Batch-Größen.
-
RMSNorm (Root Mean Square Normalization) — Normalisierung durch die Quadratwurzel des Durchschnitts der Quadrate der Werte, ohne den Durchschnitt zu subtrahieren. Vereinfachte Alternative zu LayerNorm, liefert manchmal bessere Ergebnisse in Transformern.
Beispiel für BatchNorm in PyTorch:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # Batch aus 32 Beispielen
output = batch_norm(x)