Gradient Descent zum Anfassen
Im Nebel den Berg hinab: Lernrate einstellen, Schritt für Schritt ins Tal — und einmal zusehen, wie eine zu große Schrittweite die Kugel aus dem Bild schleudert.
👋 HerrKI hier — heute lüften wir den letzten Vorhang
Du weißt aus „Wie falsch ist falsch?“, dass der Loss eine Zahl ist. Aber wie findet ein Modell die Einstellung, bei der diese Zahl am kleinsten ist — bei Millionen von Gewichten? Die Antwort ist ein einziger, wunderbar simpler Trick. Er heißt Gradient Descent, und du hast ihn in Kapitel „Was heißt Lernen?“ beim Zahlenraten schon selbst benutzt.
Die Berg-Metapher — und sie ist wörtlich gemeint
Stell dir vor: Du stehst an einem Berghang, im dichtesten Nebel deines Lebens. Du willst ins Tal. Du siehst: nichts. Aber du kannst mit den Füßen das Gefälle unter dir ertasten. Also: spüren, in welche Richtung es bergab geht → einen Schritt in diese Richtung → wieder spüren → wieder ein Schritt. Genau so — und nicht anders — findet jedes neuronale Netz dieser Welt seine Gewichte.
1Der Berg = die Loss-Landschaft: für jede Gewichts-Einstellung die Höhe des Fehlers
2Das Gefälle ertasten = den Gradienten berechnen (die Steigung des Loss)
3Die Schrittweite = die Lernrate — DER Drehknopf des ganzen Trainings
🏔️ Schick die Kugel ins Tal
Die Kugel sieht nur den Boden direkt unter sich (der Rest liegt im Nebel). Wähle eine Landschaft, stell die Lernrate ein und lauf los — erst Ein Schritt, dann Automatisch.
Die drei Landschaften — drei Lektionen fürs Leben
🥣 Schüssel: Der Traumfall — funktioniert mit fast jeder Lernrate. Aber stell mal > 0,9 ein: Die Kugel springt über das Tal hinweg, schaukelt sich auf und fliegt aus dem Bild. In echt heißt das: „mein Loss ist NaN“ — der häufigste Anfänger-Frust überhaupt. Jetzt weißt du für immer, was da passiert.
🏜️ Plateau: Fast kein Gefälle → winzige Schritte → gefühlter Stillstand. Deshalb dauert Training manchmal ewig, obwohl nichts kaputt ist.
⛰️ Zwei Täler: Je nach Startpunkt landet die Kugel im falschen Tal (lokales Minimum) — würfle ein paarmal neu! Auch echte Trainings finden nie „das perfekte“, sondern „ein gutes“ Tal. Meistens reicht das völlig.
🔬 Runter zum Tensor — Schritt für Schritt
Bis hierhin lief unsere Kugel auf einer Achse — als hätte das Netz nur ein einziges Gewicht. Echte Netze haben viele. Was ändert sich dann? Erstaunlich wenig. Rechnen wir es einmal mit zwei Gewichten von Hand durch:
1️⃣ Die Position der Kugel IST ein Tensor.
Unser Mini-Netz habe zwei Stellschrauben (Tensoren: Kapitel 010):
2️⃣ Der Gradient hat dieselbe Form — eine Steigung PRO Gewicht.
Das Netz „ertastet“ für jedes Gewicht einzeln: „Wird der Fehler größer oder kleiner, wenn ich
hier ein winziges bisschen drehe?“ Heraus kommt:
So liest du das: +2.0 = „bei Gewicht 1 geht es steil bergauf, wenn du es erhöhst — also runter damit, und zwar deutlich.“ −0.5 = „bei Gewicht 2 geht es leicht bergab, wenn du erhöhst — also ruhig etwas hoch damit, aber sachte.“ Das Vorzeichen sagt die Richtung, die Größe sagt die Dringlichkeit.
3️⃣ Der Schritt: elementweise rechnen — genau wie in
„Tensor-Operationen“ gelernt.
Mit Lernrate 0.1 heißt „einen Schritt bergab machen“:
Beide Gewichte bewegen sich gleichzeitig — jedes nach seiner eigenen Steigung: wo es steil ist, macht die Kugel einen großen Schritt, wo es flach ist, nur einen Trippelschritt. Deshalb „rollt“ sie wie von selbst ins Tal.
Zurück zur Anwendung
Wenn du im nächsten Kapitel zum ersten Mal
model.fit() aufrufst, weißt du jetzt genau, was drinsteckt: Loss messen (115), Gefälle
ertasten, Schritt machen (dieses Kapitel) — im Kreis, bis es passt (005). Und wenn dabei je „Loss: NaN“
auftaucht, grinst du nur und drehst die Lernrate runter. 😎
