Normalization
Bei der Normalisierung werden Merkmale oder Aktivierungen auf einen gemeinsamen Wertebereich skaliert, damit kein einzelner Wertebereich dominiert. Behandelt werden Min-Max-, Z-Score- und L2-Normalisierung sowie Normalisierungsschichten.
Normalisierung bedeutet, numerische Werte auf eine gemeinsame Skala zu bringen, damit kein Merkmal ein Modell allein aufgrund seiner Einheiten dominiert. Bei der Datenvorverarbeitung bedeutet das normalerweise, jedes Eingabemerkmal vor dem Training in einen festen Bereich wie [0, 1] oder auf einen Mittelwert von null und eine Varianz von eins zu transformieren. Innerhalb eines neuronalen Netzes wenden Normalisierungsschichten wie die Batch-Normalisierung dieselbe Idee auf Zwischenaktivierungen an. Ohne Normalisierung überwiegt bei jeder Distanzberechnung und jedem Gradientenabstieg ein Merkmal, das in Tausenden gemessen wird, etwa das Einkommen, ein Merkmal mit einstelligen Werten, etwa die Haushaltsgröße.
Gängige Normalisierungsverfahren#
- Min-Max-Skalierung: Bildet jedes Merkmal mit (x − min) / (max − min) auf [0, 1] ab. Ein Extremwert staucht alle übrigen Werte auf einen schmalen Bereich zusammen. Das Verfahren eignet sich daher für Merkmale mit bekannten festen Grenzen, etwa 8-Bit-Pixelwerte, die durch 255 geteilt werden.
- Z-Score-Standardisierung: Zieht den Mittelwert des Merkmals ab und teilt durch seine Standardabweichung. Dadurch erhält das Merkmal einen Mittelwert von 0 und eine Standardabweichung von 1. Für Merkmale ohne feste Grenzen ist dies üblicherweise die Standardeinstellung.
- Robuste Skalierung: Zieht den Median ab und teilt durch den Interquartilsabstand. Dadurch beeinflussen wenige Ausreißer die Skalierung der übrigen Werte kaum.
- Logarithmische Skalierung: Wendet einen Logarithmus an, häufig log(1 + x), um Merkmale mit stark schiefer Verteilung wie Preise, Bevölkerungszahlen oder Aufrufzahlen vor der weiteren Skalierung zusammenzustauchen.
- Normierung auf den Einheitsvektor (L2-Normierung): Teilt den Vektor jeder Stichprobe durch seine Länge, sodass jeder Vektor die Norm 1 hat. Auf Einbettungen angewendet, verwandelt sie die Kosinusähnlichkeit in ein einfaches Skalarprodukt. Der Normalizer von scikit-learn führt diese Operation für jede Stichprobe einzeln aus, was Nutzer überrascht, die erwarten, dass der Normalizer jedes Merkmal wie
MinMaxScalerskaliert.
Welche Methode geeignet ist, hängt davon ab, was skaliert wird und wie dessen Werte verteilt sind:
Warum Normalisierung wichtig ist#
Distanzbasierte Verfahren wie k-nächste Nachbarn (k-NN), k-Means-Clustering und Support Vector Machines mit RBF-Kernel vergleichen rohe euklidische Distanzen. Daher bestimmt das Merkmal mit dem größten Wertebereich, welche Punkte als nah gelten. Gradientbasierte Modelle trainieren mit normalisierten Eingaben schneller, weil Merkmale mit sehr unterschiedlichen Größenordnungen die Verlustfläche zu schmalen Tälern verzerren, in denen der Gradientenabstieg kleine Schritte machen muss. Baumensembles wie Random Forests teilen anhand eines Schwellenwerts für jeweils ein Merkmal auf und erzeugen bei jeder monotonen Skalierung dieselben Aufteilungen. Die Skalierung des Wine-Datensatzes vor k-NN zeigt die Größe des Effekts:
from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import MinMaxScaler, StandardScaler
# 13 chemical features on very different scales, from hue (about 0.5-1.7) to proline (about 280-1,680)
X, y = load_wine(return_X_y=True)
# k-NN compares raw distances, so unscaled proline dominates every distance
for name, scaler in [("none", "passthrough"), ("min-max", MinMaxScaler()), ("z-score", StandardScaler())]:
# The pipeline fits the scaler on each training fold only, so no test statistics leak in
model = make_pipeline(scaler, KNeighborsClassifier())
accuracy = cross_val_score(model, X, y, cv=5).mean()
print(f"scaling {name:8s} 5-fold accuracy: {accuracy:.3f}")Ohne Skalierung erreicht k-NN eine Genauigkeit von 0,691, da Prolin mit einem Wertebereich von etwa 1.400 Einheiten die übrigen 12 Merkmale bei jeder Distanzberechnung überwiegt. Mit Min-Max-Skalierung steigt die Genauigkeit auf 0,950, mit Z-Score-Standardisierung auf 0,949. Es ist wichtig, den Skalierer innerhalb der Pipeline anzupassen: Wird das Minimum, Maximum, der Mittelwert oder die Standardabweichung vor der Aufteilung anhand des gesamten Datensatzes berechnet, gelangen Informationen aus dem Testsatz ins Training. Das ist eine Form von Datenleck.
Normalisierung in der Computer Vision#
Bilder werden kanalweise normalisiert. Durch Division der 8-Bit-Pixelwerte durch 255 werden diese auf [0, 1] abgebildet. Viele Klassifizierungs-Backbones ziehen anschließend einen Mittelwert pro Kanal ab und teilen durch die Standardabweichung: torchvision's mit ImageNet vortrainiertes ResNet-50 erwartet einen Mittelwert von (0.485, 0.456, 0.406) und eine Standardabweichung von (0.229, 0.224, 0.225). Eingaben für ein vortrainiertes Modell, die anders normalisiert sind als die Trainingsdaten, verschieben jede Aktivierung und senken die Genauigkeit. Die Vorverarbeitung von Ultralytics YOLO teilt die Pixelwerte durch 255 und nimmt keine Verschiebung anhand von Mittelwert oder Standardabweichung vor – sowohl beim Training als auch bei der Vorhersage. Daher erhält YOLO26 stets Eingaben im Bereich [0, 1].
Für medizinische Bilder gelten modalspezifische Regeln. CT-Aufnahmen speichern Intensitäten in Hounsfield-Einheiten, einer physikalischen Skala, auf der Luft den Wert −1000 und Wasser den Wert 0 hat. Deshalb kann für alle Aufnahmen dieselbe Menge an Statistiken verwendet werden: Das weitverbreitete Segmentierungsframework nnU-Net begrenzt CT-Intensitäten auf das 0,5. und 99,5. Perzentil der Vordergrundwerte aller Trainingsfälle und standardisiert sie anschließend anhand des datensatzweiten Mittelwerts und der Standardabweichung mit einem Z-Score. MRT-Intensitäten haben keine feste physikalische Skala und variieren zwischen Scannern. Deshalb standardisiert nnU-Net jede MRT-Aufnahme einzeln mit einem Z-Score.
Normalisierung und verwandte Begriffe#
- Standardisierung: Die übliche Bezeichnung für die Z-Score-Skalierung. In vielen Quellen werden sowohl die Min-Max- als auch die Z-Score-Skalierung als „Normalisierung“ bezeichnet, während andere den Begriff „Normalisierung“ der Min-Max-Skalierung vorbehalten.
- Datenerweiterung: Verändert Bildinhalt oder -geometrie, etwa durch Spiegelungen, Ausschnitte und Farbverschiebungen, um mehr Vielfalt zu schaffen. Normalisierung ändert dagegen nur die Skala der Werte.
- Normalisierungsschichten: Die Batch-Normalisierung standardisiert jeden Kanal anhand von Statistiken des aktuellen Mini-Batches. Die Schichtnormalisierung standardisiert jedes Beispiel über seine Merkmale hinweg, unabhängig von der Batch-Größe, und wird durchgängig in Transformern eingesetzt. Auf diese Schichten folgen eine gelernte Skalierung und Verschiebung.
- RMSNorm: Eine vereinfachte Schichtnormalisierung, die das Abziehen des Mittelwerts auslässt und nur durch den quadratischen Mittelwert dividiert. Sie ist die Normalisierungsschicht in Metas Llama und vielen weiteren großen Sprachmodellen.










