HerrKI mit seinem RoboterHerrKI KI verstehen · nachbauen · anwenden ⭐ 0 XP

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

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.

Das Problem: Zahlen in völlig verschiedenen Ligen

Zurück zu den Wohnungspreisen aus „Multiple Regression“. Unsere Merkmale spielen in verschiedenen Größenordnungen:

Merkmalkleinster Wertgrößter WertSpannweite
Wohnfläche [m²]30350320
Zimmerzahl187

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.

💥 Das war kein Trick: Das „rohe“ Training bekommt bei jedem Schritt einen riesigen Gradienten aus der 320er-Spalte — die Schritte springen über das Tal, schaukeln sich auf (du kennst das aus der Schüssel in Kapitel 118), und der Loss läuft gegen unendlich bzw. 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:

merkmale [12,2] Fläche Zimmer Wohnung 1 : 30 1 // die kleinste Wohnung 6 : 110 4 Wohnung 8 : 170 5 Wohnung 12 : 350 8 // die größte min(0) [2] : 30 1 // kleinster Wert JE SPALTE max(0) [2] : 350 8 // größter Wert JE SPALTE max−min [2] : 320 7 // die Spannweite aus der Tabelle oben

Jetzt jede Zahl durch (x − min) / (max − min) schicken — rechts steht die Rechnung dazu:

skaliert [12,2] Fläche Zimmer Wohnung 1 : 0,00 0,00 // ( 30−30)/320 = 0 | (1−1)/7 = 0 Wohnung 6 : 0,25 0,43 // (110−30)/320 = 0,25 | (4−1)/7 = 3/7 Wohnung 8 : 0,44 0,57 // (170−30)/320 = 0,44 | (5−1)/7 = 4/7 Wohnung 12 : 1,00 1,00 // (350−30)/320 = 1 | (8−1)/7 = 1

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:

// Min-Max: jede Spalte auf 0–1 (x − min) / (max − min) const min = merkmale.min(0), max = merkmale.max(0); const skaliert = merkmale.sub(min).div( max.sub(min) ); // Z-Score: (x − Mittelwert) / Standardabweichung — robuster bei Ausreißern

Der Z-Score nimmt dieselben 12 Wohnungen, nur andere Kennzahlen: Die Fläche hat Mittelwert 153,3 und Streuung 101,2 — Wohnung 6 wird damit zu (110 − 153,3) / 101,2 = −0,43, also „ein gutes Stück unter dem Durchschnitt“.

🚨 Die Profi-Regel, an der selbst Fortgeschrittene scheitern: 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“.

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 Warnkasten dazu. Jetzt weißt du, warum: nicht weil Tensoren es verlangen — sondern damit Gradient Descent in allen Richtungen gleich gute Schritte machen kann.

🧠 Kurzer Check — hast du es?

1. Müssen Tensor-Werte grundsätzlich zwischen 0 und 1 liegen?
2. Warum kippt das Training mit unskalierten Merkmalen (30–350 vs. 1–8)?
3. Woraus berechnet man die Skalierungs-Werte (min/max bzw. Mittelwert)?