Du verstehst Gradient Descent vom Bauchgefühl bis zur Praxis: Kostenfunktion, Ableitung, Update-Regel, Lernrate, lokale Minima, Momentum, Batch-Varianten und eine kleine SGD-Pipeline.
AlltagZugticket, Bergwanderung, Auto auf Serpentinen, rollende Murmel und drei Köche
DidaktikErst Bild im Kopf, dann Formel, dann interaktive Bewegung im Browser
TransferDu verstehst danach besser, was `.fit()` in vielen ML-Modellen im Hintergrund tut
Die Bergwanderung
Jede richtige Quiz-Antwort gibt 10 Punkte. Richtige Antworten beim ersten Versuch bringen 5 Bonuspunkte.
Die Demos funktionieren direkt im Browser. Alles bleibt lokal auf dem Gerät gespeichert und wird zusätzlich vom gemeinsamen Lernstand-Manager gesichert.
Wichtiges Leitbild: Der Gradient zeigt die steilste Bergauf-Richtung. Gradient Descent geht deshalb bewusst in die entgegengesetzte Richtung.
Schritt 1 · Warum überhaupt?
Warum brauchen wir Gradient Descent?
Wenn direkte Lösungen zu teuer oder zu unflexibel werden, hilft ein systematischer Abstieg in kleinen Schritten.
Noch offen. Bewege den Feature-Regler und beantworte danach die Fragen.
Alltagsgeschichte
Du suchst das günstigste Zugticket für eine längere Reise. Es gibt unzählige Kombinationen aus Uhrzeit, Zugtyp, Umstieg und Sparpreis. Alle Varianten einzeln zu prüfen, wäre mühsam.
ist genau für solche Situationen da: Statt alle Möglichkeiten brutal durchzurechnen, näherst du dich der besten Lösung Schritt für Schritt an.
Theorie-Karte
Beim Modelltraining suchst du Parameter, die den Fehler minimieren. Für einfache lineare Regression gibt es oft eine direkte Lösung. Bei vielen Features oder komplexeren Modellen wird das schnell unpraktisch.
Gradient Descent ersetzt die direkte Lösung durch eine wiederholte Verbesserung: schauen, wo es bergab geht, dann einen kleinen Schritt in diese Richtung machen.
Alltagssprache: Die ist dein Fehlergebirge. Je tiefer du kommst, desto besser passt das Modell.
Interaktive Demo
Normalgleichung
sehr leicht
Gradient Descent
noch locker
Bei wenigen Features ist die direkte Lösung oft bequem. Bei sehr vielen Features wird iteratives Lernen attraktiver.
Die Balken zeigen keine echte Laufzeit in Sekunden, sondern eine didaktische Aufwandsskala: links direkte Matrixrechnung, rechts iterative Optimierung.
Code-Beispiel
import numpy as np
# Kleine Trainingsdaten mit Intercept-Spalte
X = np.array([
[1, 1],
[1, 2],
[1, 3],
[1, 4]
], dtype=float)
y = np.array([2, 3, 4, 5], dtype=float)
# Direkte Lösung bei kleiner linearer Regression
b_closed_form = np.linalg.inv(X.T @ X) @ X.T @ y
# Iterative Optimierung als Alternative
b = np.zeros(X.shape[1])
alpha = 0.1
n = len(X)
for _ in range(100):
grad = (2 / n) * X.T @ (X @ b - y)
b = b - alpha * grad
print("Direkt:", b_closed_form.round(2))
print("Iterativ:", b.round(2))
Was passiert hier? Oben steht die Idee der direkten Lösung. Unten wird das Modell stattdessen schrittweise verbessert.
Quiz
Lösungen: Bei vielen Features wird eine direkte Matrixlösung oft unpraktisch. Gradient Descent verbessert die Parameter iterativ.
Was nimmst du mit?
Gradient Descent ist nicht „komplizierter um der Kompliziertheit willen“, sondern ein praktischer Weg, wenn direkte Lösungen zu teuer oder zu unflexibel werden.
Schritt 2 · Fehlerlandschaft
Die Kostenfunktion als Gebirge
Jede Position entspricht einer Parameterwahl, und jede Höhe steht für den aktuellen Fehler des Modells.
Noch offen. Bewege den Startpunkt und beobachte Tangente, Steigung und Kostenwert.
Alltagsgeschichte
Stell dir vor, du stehst mitten im Gebirge. Du siehst nur deine direkte Umgebung. Trotzdem kannst du fühlen, ob der Boden rechts oder links steiler wird.
Genau das macht die Ableitung in der Mathematik: Sie misst die Steigung an deinem aktuellen Punkt.
Theorie-Karte
Bei einem einzelnen Parameter sieht die MSE-Kostenfunktion oft wie eine Schüssel aus. Das ist günstig, weil es nur ein globales Minimum gibt. Wichtig dabei: Die Kostenfunktion fällt nicht vom Himmel. Wir wählen sie bewusst, damit wir messen können, wie schlecht ein Modell gerade ist. Bei linearer Regression ist das oft MSE, bei logistischer Regression später eher Log-Loss.
Die Ableitung sagt dir an jeder Stelle, ob du nach links oder rechts gehen solltest und wie steil der Hang gerade ist. Erst Kostenfunktion, dann Ableitung, dann Update-Schritt: so greift alles ineinander.
Alltagssprache: Die Ableitung ist dein Steigungsmesser. Positive Steigung heißt: Nach links geht es bergab. Negative Steigung heißt: Nach rechts.
Interaktive Demo
Steigung
0.00
Kosten J
0.00
Die Tangente zeigt die lokale Richtung. Genau diesen Steigungshinweis benutzt Gradient Descent später für seinen nächsten Schritt.
🏋️ Übung: Die Ableitung als Funktion schreiben
Schreibe die Ableitung für die einfache Kostenfunktion J(b) = b². Ergänze die fehlende Zeile und prüfe danach, welchen Wert der Gradient bei b = 3 hat.
📓 Öffne dein Jupyter Notebook oder Google Colab und probiere es selbst aus.
Was passiert hier? Du zeichnest die Kostenfunktion und zusätzlich die Tangente an der Stelle b = 3. Die Steigung dieser Tangente ist genau der Gradient, den Gradient Descent für seinen nächsten Schritt nutzt.
Quiz
Lösungen: Die Ableitung misst die lokale Steigung. Eine konvexe Schüssel hat nur ein globales Minimum.
Was nimmst du mit?
Du musst die ganze Landschaft nicht kennen. Für den nächsten Schritt reicht oft die lokale Steigung unter deinen Füßen.
Schritt 3 · Update-Regel
Schrittweise bergab: der Algorithmus
Gradient Descent wiederholt immer dieselbe Logik: Steigung messen, dann einen kontrollierten Schritt abwärts machen.
Noch offen. Lass den Punkt mehrere Schritte laufen und beobachte Kosten, Iteration und Position.
Alltagsgeschichte
Im dichten Nebel kannst du nicht direkt ins Tal springen. Du fühlst zuerst den Hang, machst dann einen kleinen Schritt, prüfst erneut die Lage und wiederholst das Ganze.
Genau deshalb ist Gradient Descent ein iterativer Algorithmus: Er arbeitet in vielen kleinen Korrekturen statt in einem einzigen großen Sprung.
Theorie-Karte
Der zentrale Schritt lautet: aktueller Parameter minus Lernrate mal . Das Minuszeichen ist entscheidend, weil der Gradient bergauf zeigt.
Wenn der Gradient null wird, bist du an einer flachen Stelle angekommen. Bei einer konvexen Parabel ist das das Minimum.
Alltagssprache: Du gehst bewusst gegen die Steigung, weil du ins Tal und nicht auf den Gipfel willst.
Interaktive Demo
Iteration
0
Aktuelle Kosten
16.00
Starte mit einem Schritt. Beobachte, wie der Punkt immer näher an x = 0 heranrückt.
Jeder Punkt ist eine neue Iteration. So wird aus einer Formel eine echte Bewegung auf der Fehlerlandschaft.
🏋️ Übung: Einen Gradient-Descent-Schritt ausrechnen
Setze die Update-Regel direkt in Code um. Die Schleife läuft drei Schritte lang, und du ergänzt die Zeile, in der der neue Wert von x berechnet wird.
📓 Öffne dein Jupyter Notebook oder Google Colab und probiere es selbst aus.
x = 4.0
alpha = 0.2
for i in range(3):
grad = 2 * x
x = # ??? DEINE LÖSUNG ???
print(round(x, 3))
💡 Tipp anzeigen
Die Regel lautet: aktueller Wert minus Lernrate mal Gradient.
✅ Lösung anzeigen
x = 4.0
alpha = 0.2
for i in range(3):
grad = 2 * x
x = x - alpha * grad
print(round(x, 3))
Erwartete Ausgabe: `0.864`
Code-Beispiel
import numpy as np
import matplotlib.pyplot as plt
# Kleine Trainingsdaten mit Intercept-Spalte
X = np.array([
[1, 1],
[1, 2],
[1, 3],
[1, 4]
], dtype=float)
y = np.array([2, 3, 4, 5], dtype=float)
b = np.zeros(X.shape[1])
learning_rate = 0.1
n = len(X)
cost_history = []
for i in range(20):
y_hat = X.dot(b)
gradient = (2 / n) * X.T.dot(y_hat - y)
b = b - learning_rate * gradient
cost = np.mean((X.dot(b) - y) ** 2)
cost_history.append(cost)
print("Gelernte Parameter:", b.round(2))
plt.figure(figsize=(7, 4))
plt.plot(cost_history, marker="o", color="#173262")
plt.xlabel("Iteration")
plt.ylabel("MSE-Kosten")
plt.title("Gradient Descent: Kosten fallen Schritt für Schritt")
plt.grid(alpha=0.2)
plt.show()
Was passiert hier? Du berechnest in jeder Runde erst die Vorhersage, dann den Gradienten und verschiebst die Parameter ein Stück bergab. Die Liste cost_history zeigt dir danach im Plot, dass die Kosten von Iteration zu Iteration sinken.
Quiz
Lösungen: Das Minuszeichen führt bergab. Wenn der Gradient null ist, gibt es lokal keine weitere Abwärtsrichtung.
Was nimmst du mit?
Gradient Descent ist eine Schleife aus Messen und Korrigieren. Der Zauber liegt nicht in einem einzigen Schritt, sondern in der Wiederholung.
Schritt 4 · Lernrate
Die Lernrate: Schrittlänge richtig wählen
Zu klein ist zäh, zu groß wird hektisch. Die Lernrate entscheidet, ob der Abstieg ruhig, langsam oder chaotisch verläuft.
Noch offen. Bewege die Lernrate und prüfe, ob die Kosten sauber fallen oder ob das System überschießt.
Alltagsgeschichte
Ein Auto auf einer kurvigen Bergstraße braucht die richtige Geschwindigkeit. Zu langsam kommst du kaum voran. Zu schnell fliegst du aus der Kurve.
Genau so verhält sich die Lernrate im Modelltraining: Sie ist dein Tempo-Regler.
Theorie-Karte
Die α skaliert jeden Schritt. Kleine Werte bedeuten feine, langsame Korrekturen. Große Werte können das Minimum überspringen.
Es gibt keinen universell perfekten Wert. Gute Lernraten hängen von Problem, Daten und Skalierung ab.
Merksatz:neuer Parameter = alter Parameter - α × Gradient
Alltagssprache: α ist deine Schrittlänge auf dem Hang.
Interaktive Demo
Verhalten
guter Bereich
Schritte bis nahe Null
10
Eine mittlere Lernrate senkt die Kosten oft schnell und stabil. Ganz große Werte führen schnell zum Überschießen.
Die y-Achse zeigt die Kosten. Wenn die Linie sauber fällt, konvergiert der Algorithmus. Wenn sie springt oder wächst, ist die Lernrate zu aggressiv.
🏋️ Übung: Lernrate in die Update-Regel einsetzen
Probiere aus, wie stark eine größere Lernrate den Schritt verändert. Ergänze die fehlende Rechnung für einen einzigen Update-Schritt und beobachte, wie schnell x Richtung Minimum springt.
📓 Öffne dein Jupyter Notebook oder Google Colab und probiere es selbst aus.
x = 4.0
alpha = 0.5
gradient = 2 * x
x_new = # ??? DEINE LÖSUNG ???
print(x_new)
💡 Tipp anzeigen
Auch hier gilt dieselbe Regel wie im Modul: alter Wert minus alpha mal Gradient.
✅ Lösung anzeigen
x = 4.0
alpha = 0.5
gradient = 2 * x
x_new = x - alpha * gradient
print(x_new)
Erwartete Ausgabe: `0.0`
Code-Beispiel
import numpy as np
import matplotlib.pyplot as plt
# Kostenfunktion und Gradient
def J(b):
return b**2
def dJ(b):
return 2*b
b_start = 4.0
learning_rates = [0.05, 0.3, 1.0]
n_iters = 15
plt.figure(figsize=(6, 4))
for lr in learning_rates:
b = b_start
cost_history = []
for i in range(n_iters):
# Kosten berechnen und speichern
cost_history.append(J(b))
# Gradient Descent Schritt
grad = dJ(b)
b = b - lr * grad
plt.plot(range(n_iters), cost_history, marker="o", label=f"lr = {lr}")
plt.xlabel("Iteration")
plt.ylabel("Kosten J(b)")
plt.title("Gradient Descent mit verschiedenen Lernraten")
plt.legend()
plt.grid(True)
plt.show()
Was passiert hier? Du startest dreimal am selben Punkt, aber mit drei verschiedenen Lernraten. Im Plot siehst du direkt: klein ist langsam, mittel oft gut und sehr groß kann instabil werden oder springen.
Quiz
Lösungen: Eine springende Kostenkurve deutet oft auf eine zu große Lernrate hin. Eine winzige Lernrate konvergiert zwar, aber sehr langsam.
Was nimmst du mit?
Die Lernrate ist kein Detail, sondern eine der wichtigsten Stellschrauben. Ein gutes Modell kann an einer schlechten Lernrate scheitern.
Schritt 5 · Nicht-konvexe Landschaften
Probleme: lokale Minima und Plateaus
Nicht jede Fehlerlandschaft ist eine saubere Schüssel. Manchmal gibt es mehrere Täler oder lange flache Zonen.
Noch offen. Wähle verschiedene Startpunkte und beobachte, in welchem Tal der Algorithmus landet.
Alltagsgeschichte
Im Nebel findest du vielleicht ein kleines Tal und denkst: geschafft. Erst später merkst du, dass hinter einem Hügel ein noch tieferes Tal liegt.
Genau das ist die Schwierigkeit bei nicht-konvexen Problemen: Nicht jede flache Stelle ist das globale Ziel.
Theorie-Karte
Bei linearer Regression mit MSE ist die Landschaft konvex und deshalb angenehm. Bei komplexeren Modellen kann es mehrere lokale Minima und Sattelpunkte geben.
Dann hängt das Ergebnis oft stärker vom Startpunkt und von den Update-Regeln ab.
Merksatz: Konvex = ein Tal. Nicht-konvex = mehrere Täler oder flache Ebenen.
Interaktive Demo
Gelandenes Tal
linkes Tal
Lokale Kosten
0.00
Bei dieser Funktion entscheidet der Startpunkt mit, in welchem Tal der Abstieg endet.
Hier ist die Fehlerlandschaft bewusst schwieriger. Du siehst direkt, warum Gradient Descent in komplexen Problemen nicht immer dieselbe Lösung findet.
Code-Beispiel
# In nicht-konvexen Problemen kann der Start relevant werden
b = random_start()
for _ in range(100):
b = b - alpha * grad(b)
Was passiert hier? Derselbe Algorithmus kann je nach Startwert in unterschiedlichen Tälern landen. Das ist kein Bug, sondern Teil der Landschaft.
Quiz
Lösungen: Lokale Minima sind flache Endpunkte, aber nicht unbedingt das globale Minimum. Bei konvexer MSE in linearer Regression ist dieses Problem viel kleiner.
Was nimmst du mit?
Die Schwierigkeit steckt nicht nur im Algorithmus, sondern auch in der Form der Fehlerlandschaft.
Schritt 6 · Momentum
Momentum: Schwung für den Abstieg
Ein bisschen Trägheit kann helfen, Zickzack-Bewegungen zu glätten und schneller durch enge Täler zu kommen.
Noch offen. Bewege den Momentum-Regler und vergleiche den Kostenverlauf mit und ohne Schwung.
Alltagsgeschichte
Eine Murmel rollt einen Hang hinunter. Ohne Schwung kann sie in kleinen Mulden hängen bleiben oder ständig links und rechts pendeln. Mit Schwung rollt sie flüssiger weiter.
bringt genau diese Trägheit in Gradient Descent hinein.
Theorie-Karte
Beim Momentum wird nicht nur der aktuelle Gradient berücksichtigt, sondern auch ein Teil der vorherigen Bewegung. Bei moderaten Werten werden Updates oft glatter und zielgerichteter.
Typische Werte für γ liegen ungefähr zwischen 0.8 und 0.99. Bei γ = 0 verschwindet der Schwung komplett. Wird γ zu groß, kann das Modell aber über das Tal hinausschießen und zu schwingen beginnen.
Alltagssprache: Nicht jeder Schritt startet bei null. Ein Teil des vorherigen Schwungs wirkt weiter.
Interaktive Demo
Ohne Momentummehr Zickzack
Mit Momentumglatterer Verlauf bei moderatem γ
MerksatzSchwung hilft beim Durchrollen.
Die bordeauxfarbene Linie nutzt nur den aktuellen Gradient. Die blaue Linie nimmt zusätzlichen Schwung mit.
Code-Beispiel
velocity = 0
for _ in range(100):
gradient = grad(b)
velocity = gamma * velocity + learning_rate * gradient
b = b - velocity
Was passiert hier? Die neue Bewegung besteht nicht nur aus dem aktuellen Gradient, sondern auch aus einem Teil der alten Bewegung.
Quiz
Lösungen: Momentum glättet den Pfad. Bei γ = 0 bleibt normaler Gradient Descent ohne Zusatzschwung übrig.
Was nimmst du mit?
Momentum ist keine neue Richtung, sondern eine weichere Art, die Richtung umzusetzen.
Schritt 7 · Batch-Varianten
Drei Köche: Batch, SGD und Mini-Batch
Die Varianten unterscheiden sich vor allem darin, wie viele Datenpunkte pro Update in den Gradient einfließen.
Noch offen. Verändere die Batch-Größe und vergleiche Stabilität, Tempo und Speicherbedarf.
Alltagsgeschichte
Koch 1 liest das ganze Kochbuch, bevor er etwas ändert. Koch 2 probiert nach jeder einzelnen Zutat neu. Koch 3 arbeitet kapitelweise. Genau diese drei Arbeitsstile entsprechen Batch GD, SGD und Mini-Batch.
Keine Variante ist immer „die beste“. Es geht um den passenden Kompromiss zwischen Ruhe, Tempo und Speicher.
Theorie-Karte
Batch GD nutzt alle Daten pro Update: stabil, aber langsam. SGD nutzt einen Punkt: schnell, aber unruhig. sitzt dazwischen.
In der Praxis ist Mini-Batch oft der Standard, weil es Geschwindigkeit und Stabilität gut verbindet.
Merksatz: Je kleiner das Batch, desto häufiger, aber auch nervöser werden die Updates.
Interaktive Demo
Batch GDruhig, aber langsam
SGDsehr schnell, aber zappelig
Mini-Batchguter Mittelweg
Alle drei Linien sinken grundsätzlich, aber mit deutlich unterschiedlicher Glätte. Mini-Batch verändert seinen Charakter über die Batch-Größe.
🏋️ Übung: Ein SGD-Durchlauf über einzelne Punkte
Gehe drei Trainingspunkte nacheinander durch und aktualisiere das Gewicht nach jedem einzelnen Punkt. Genau dieses Muster steckt hinter der stochastischen Variante von Gradient Descent.
📓 Öffne dein Jupyter Notebook oder Google Colab und probiere es selbst aus.
w = 0.0
alpha = 0.1
samples = [1.0, 2.0, 3.0]
targets = [2.0, 4.0, 6.0]
for x, y in zip(samples, targets):
grad = 2 * x * (w * x - y)
w = # ??? DEINE LÖSUNG ???
print(round(w, 2))
💡 Tipp anzeigen
SGD nutzt dieselbe Update-Regel wie vorher, nur mit einem einzelnen Datenpunkt pro Schritt.
✅ Lösung anzeigen
w = 0.0
alpha = 0.1
samples = [1.0, 2.0, 3.0]
targets = [2.0, 4.0, 6.0]
for x, y in zip(samples, targets):
grad = 2 * x * (w * x - y)
w = w - alpha * grad
print(round(w, 2))
Erwartete Ausgabe: `2.26`
Code-Beispiel
import matplotlib.pyplot as plt
# Drei Trainingspunkte: y = 2x
samples = [1.0, 2.0, 3.0]
targets = [2.0, 4.0, 6.0]
w = 0.0
alpha = 0.1
weight_history = [w]
prediction_history = []
for x, y in zip(samples, targets):
prediction = w * x
grad = 2 * x * (prediction - y)
w = w - alpha * grad
prediction_history.append(prediction)
weight_history.append(w)
print(f"x={x:.0f}, Vorhersage={prediction:.2f}, neues Gewicht={w:.2f}")
plt.figure(figsize=(6, 4))
plt.plot(range(len(weight_history)), weight_history, marker="o", color="#173262")
plt.xticks(range(len(weight_history)), ["Start", "nach Punkt 1", "nach Punkt 2", "nach Punkt 3"], rotation=15)
plt.ylabel("Gewicht w")
plt.title("Wie SGD das Gewicht nach jedem Punkt anpasst")
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Was passiert hier? SGD wartet nicht auf alle Daten. Nach jedem einzelnen Punkt wird das Gewicht sofort nachjustiert. Der Plot zeigt genau diese kleinen Sofortkorrekturen.
Quiz
Lösungen: Batch GD ist stabil, SGD schnell aber nervös, Mini-Batch meist der praktische Mittelweg.
Was nimmst du mit?
Nicht nur die Formel, auch die Datenportion pro Update entscheidet über das Verhalten des Trainings.
Schritt 8 · Praxis
Alles zusammen: Gradient Descent in der Praxis
Am Ende geht es nicht nur um Mathematik, sondern um einen sauberen Workflow mit Scaling, SGD und Bewertung.
Noch offen. Wähle einen Skalierer und eine Penalty und beobachte die veränderte Modellqualität.
Alltagsgeschichte
Du hast wandern gelernt, die richtige Schrittlänge gefunden und Schwung mitgenommen. Jetzt geht es auf den echten Berg: ein vollständiger Trainingsablauf mit Datenvorbereitung, Modell und Bewertung.
In echten Projekten ist Gradient Descent selten isoliert. Er steckt in einer Pipeline mit Skalierung, Regularisierung und Auswertung.
Theorie-Karte
Bei SGD-basierten Verfahren ist Feature Scaling besonders wichtig. Unterschiedliche Skalen verzerren sonst die Gradienten und machen das Lernen unnötig schwer.
Auch Regularisierung taucht hier wieder auf: In vielen SGD-Modellen kannst du direkt zwischen L2, L1 oder Elastic Net wählen.
Merksatz: Saubere Pipeline = Daten vorbereiten, Modell trainieren, dann fair bewerten.
Kurze Einführung
Bevor du mit Gradient Descent trainierst, sollten die Eingaben in einer ähnlichen Größenordnung liegen. Sonst verhält es sich wie bei einem Einkaufswagen mit einem riesigen und einem winzigen Rad: Er zieht ständig in eine Richtung.
Ein Beispiel: Wenn ein Merkmal in Euro zwischen 500 und 5.000 liegt, ein anderes aber nur zwischen 0 und 1, dann dominiert das große Merkmal schnell die Schritte des Modells. bringt diese Größenordnungen näher zusammen.
StandardScaler verschiebt ein Merkmal auf Mittelwert 0 und typische Streuung 1. MinMaxScaler drückt Werte meist in einen festen Bereich wie 0 bis 1. Keine Skalierung heißt: Das Modell muss mit sehr unterschiedlich großen Zahlen direkt klarkommen.
Für SGD ist das wichtig, weil die Schritte sonst in einer Richtung zu groß und in einer anderen zu klein werden. Faustregel: StandardScaler ist oft der robuste Standard für lineare Modelle und Gradient Descent. MinMaxScaler ist eher praktisch, wenn du bewusst einen festen Wertebereich brauchst. Genau das schaust du dir in der nächsten Demo an.
Interaktive Demo
Cross-Validation-Score
0.84
Einordnung
stabiler Standard
Scaling sorgt oft dafür, dass Gradient Descent die Landschaft fairer „sieht“ und dadurch besser konvergiert.
Die Balken zeigen eine didaktische Score-Schätzung. Das Ziel ist nicht die exakte Benchmark, sondern das Verständnis: Scaling und Penalty beeinflussen das Verhalten von SGD spürbar.
Code-Beispiel
from sklearn.linear_model import SGDClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
pipe = Pipeline([
("scaler", StandardScaler()),
("sgd", SGDClassifier(loss="log_loss", penalty="l2", random_state=42))
])
Was passiert hier? StandardScaler bereitet die Eingaben vor. Danach trainiert ein SGD-basiertes Klassifikationsmodell mit logistischem Verlust und L2-Penalty.
Abschluss-Quiz
Lösungen: Scaling stabilisiert Gradient Descent. Mini-Batch ist oft praxisnah. Momentum bringt Schwung, und die Lernrate bleibt eine zentrale Stellschraube.
Was nimmst du mit?
Gradient Descent ist mehr als eine Formel. In echten Workflows lebt er von guter Vorbereitung, passenden Hyperparametern und sauberer Bewertung.