Alles auf eine Skala (Normalisierung)
Wohnfläche 350, Zimmerzahl 4 — warum so ungleiche Zahlen ein Training kippen lassen, und wie Min-Max und Z-Score das reparieren. Mit Live-Beweis: zwei Trainings im Direktvergleich.
👋 HerrKI hier — heute klären wir DIE Stolperfrage schlechthin
🧭 Einfach gesagt: Wohnfläche und Zimmerzahl liegen in ganz unterschiedlichen Größenordnungen — bringst du sie nicht auf dieselbe Skala, kippt das Training.
Sie kommt garantiert: „Müssen die Zahlen im Tensor nicht zwischen 0 und 1 liegen?“ Kurze Antwort aus Kapitel 010: Nein, ein Tensor darf alles enthalten. Lange Antwort: Fürs Training ist Skalieren trotzdem oft der Unterschied zwischen „läuft sauber“ und „explodiert“. Heute siehst du beides live — nebeneinander.
- ✅ Warum ungleiche Spalten ein Training kippen — 320 gegen 7, und der Gradient läuft aus dem Ruder
- ✅ Min-Max — jede Spalte auf 0–1 bringen, als Tensor-Rechnung zum Mitrechnen
- ✅ Z-Score — Mittelwert 0, Streuung 1: die robustere Variante, wenn Ausreißer drin sind
- ✅ Der Live-Beweis — zweimal dasselbe Training, einmal roh, einmal skaliert
- ✅ Die Profi-Regel — Skalierungs-Werte nur aus den Trainingsdaten, danach unverändert weiterbenutzen
Das Problem: Zahlen in völlig verschiedenen Ligen
Zurück zu den Wohnungspreisen aus „Multiple Regression“. Unsere Merkmale spielen in verschiedenen Größenordnungen:
| Merkmal | kleinster Wert | größter Wert | Spannweite |
|---|---|---|---|
| Wohnfläche [m²] | 30 | 350 | 320 |
| Zimmerzahl | 1 | 8 | 7 |
Für das Modell bedeutet das: Ein kleiner Fehler bei der Wohnfläche erzeugt riesige Zahlen im Loss, ein Fehler bei der Zimmerzahl fast nichts. Die große Spalte dominiert alles — und der Gradient (Kapitel 118) wird in eine Richtung gigantisch, in die andere winzig. Mit einer Lernrate, die für beide passt? Gibt es dann nicht.
📊 Schau dir die Skalen an — vor und nach dem Umrechnen
⚔️ Der Live-Beweis: zwei identische Trainings
Gleiches Modell, gleiche Daten, gleiche Lernrate — nur einmal roh, einmal skaliert
Ich trainiere jetzt ZWEI Modelle auf denselben 12 Wohnungen. Das einzige, was sich unterscheidet: Links bekommen die Merkmale ihre rohen Werte, rechts sind sie per Min-Max auf 0–1 gebracht.
NaN.
In der Praxis ist fehlende Skalierung die häufigste Ursache für explodierende Loss-Werte.🔬 Runter zum Tensor
Die Umrechnung ist reine Tensor-Arithmetik (Kapitel 060) — und sie passiert spaltenweise. Hier 4 der 12 Wohnungen zum Mitrechnen:
Jetzt jede Zahl durch (x − min) / (max − min) schicken — rechts steht die Rechnung dazu:
Aus 320 gegen 7 sind zwei Spalten von 0 bis 1 geworden — dieselbe Wohnung, dieselbe Rangfolge, nur ohne
das Größen-Gefälle. Beachte: min und max sind nur
[2] lang (eine Zahl pro Spalte) und werden trotzdem auf alle 12 Zeilen
[12,2] angewendet — das Broadcasting aus Kapitel 060:
Die zweite Methode: Z-Score
Der Z-Score nimmt dieselben 12 Wohnungen, nur andere Kennzahlen: statt min und max den
Mittelwert und die Standardabweichung (Streuung — wie weit die Werte im Schnitt um den
Mittelwert herumliegen). Die Formel lautet (x − Mittelwert) / Streuung, und danach hat jede
Spalte Mittelwert 0 und Streuung 1. Die Zahlen landen also nicht zwischen 0 und 1, sondern meist zwischen
−2 und +2 — mit Vorzeichen: minus heißt „unter dem Durchschnitt“:
Wohnung 6 liegt damit „ein gutes Stück unter dem Durchschnitt“ (−0,43) und hat fast exakt
durchschnittlich viele Zimmer (−0,08). In TensorFlow.js ist auch das ein Zweizeiler —
tf.moments liefert Mittelwert und Varianz spaltenweise in einem Rutsch:
min und max (bzw. Mittelwert/Streuung) berechnest du NUR aus den
Trainingsdaten — und wendest sie dann unverändert auf neue Daten an. Warum das so wichtig ist,
verstehst du vollständig in „Trainieren, prüfen, bestehen“.Praktisch heißt das: Die Skalierungs-Werte gehören zum Modell wie die Gewichte. Du hebst sie nach dem Training auf und schickst jede neue Wohnung damit durch dieselbe Umrechnung, bevor das Modell sie zu sehen bekommt:
Zurück zur Anwendung
Du kennst das Prinzip längst: In „Bilder als Tensoren“ haben wir Pixel durch 255 geteilt — Min-Max für Bilder. In „Excel/CSV → Tensoren“ stand der Vorgeschmack dazu. Jetzt weißt du, warum: nicht weil Tensoren es verlangen — sondern damit Gradient Descent in allen Richtungen gleich gute Schritte machen kann.
📚 Zum Weiterlesen
- Die Werkzeugkiste: scikit-learn, Preprocessing data — scikit-learn.org/stable/modules/preprocessing.html — MinMaxScaler und StandardScaler als fertige Bausteine, samt der Trennung „erst fit auf Train, dann transform auf alles“.
- Kurz und konkret: Google Machine Learning Crash Course, Normalization — developers.google.com/machine-learning/crash-course — welche Methode wann passt, inklusive Log-Skalierung und Clipping für schiefe Verteilungen.
- Ausblick: Sergey Ioffe & Christian Szegedy, „Batch Normalization“ (2015) — arxiv.org/abs/1502.03167 — dasselbe Prinzip nicht nur vor dem Netz, sondern mitten drin, zwischen den Schichten.
- Auf HerrKI: 118 — Gradient Descent zum Anfassen (die Schüssel, die hier rund wird) und 235 — Trainieren, prüfen, bestehen (warum die Kennzahlen nur aus den Trainingsdaten kommen dürfen)
🧠 Kurzer Check — hast du es?
✅ Das nimmst du mit
- Tensoren dürfen beliebige Zahlen enthalten. Die 0–1-Regel ist kein Gesetz, sondern eine Vorbereitung fürs Training.
- Die größte Spalte dominiert alles. 320 gegen 7: in der einen Richtung explodiert der Gradient, in der anderen kriecht er — eine Lernrate für beide gibt es dann nicht.
- Min-Max presst jede Spalte auf 0–1.
(x − min) / (max − min), spaltenweise gerechnet und per Broadcasting auf alle Zeilen angewendet. - Z-Score ist die robustere Variante.
(x − Mittelwert) / Streuung→ Mittelwert 0, Streuung 1, keine feste Obergrenze — steckt Ausreißer besser weg. - Die Skalierungs-Werte gehören zum Modell. Nur aus den Trainingsdaten berechnen und unverändert auf neue Daten anwenden — sonst sickert Wissen über die Prüfdaten ins Training.
📎 So zitierst du dieses Kapitel
HerrKI: Alles auf eine Skala (Normalisierung). herrki.de/135_daten_vorbereiten, ein privates Hobbyprojekt von Terragon.de, abgerufen am 4. November 2026.
Lizenz: CC BY 4.0 — frei nutzen, teilen, anpassen. Nennung: „HerrKI (herrki.de), ein privates Hobbyprojekt von Terragon.de“.
