Gradienten
Wenn ein Modell aus Fehlern lernt, braucht es eine Richtungsangabe: Welcher Parameter muss sich wie stark verändern, damit der Fehler kleiner wird? Diese Richtungsangabe liefert der Gradient.
Der Gradient ist ein Vektor aus partiellen Ableitungen. Jede Komponente beschreibt, wie empfindlich der Loss auf eine Änderung eines bestimmten Modellparameters reagiert. Die Richtung des Gradienten zeigt zum steilsten Anstieg der Fehlerfunktion. Um den Fehler zu verringern, bewegt sich das Optimierungsverfahren in die entgegengesetzte Richtung.
Beispiel: Ein Sprachmodell soll das Wort "Katze" vorhersagen, gibt aber "Hund" aus. Der Loss ist hoch. Der Gradient zeigt für jedes Gewicht im Netz an, ob und wie stark es den Loss erhöht oder senkt. Die Gewichte werden dann entlang des negativen Gradienten verschoben.
Gradienten stehen damit im Zentrum des Trainings: Ohne sie gibt es keine gerichtete Parameteranpassung, nur zufälliges Probieren.
Wie die Fehlerfunktion schrittweise minimiert wird
Der grundlegende Algorithmus heißt Gradient Descent. Er funktioniert iterativ: In jedem Schritt wird der Gradient berechnet und die Parameter werden in die entgegengesetzte Richtung verschoben. Die Schrittweite bestimmt der Hyperparameter Learning Rate.
Beispiel: Ein Bildklassifikator erkennt Hunde nur mit 40 % Genauigkeit. Der Gradient zeigt, dass bestimmte Filter in den frühen Schichten zu schwach gewichtet sind. Nach 50 Gradient-Descent-Schritten steigt die Genauigkeit auf 78 %.
Beispiel: In einem Empfehlungssystem wird der Gradient über eine Matrix-Faktorisierung berechnet. Jeder Gradient-Schritt verschiebt Nutzer- und Item-Vektoren so, dass die vorhergesagten Bewertungen näher an den realen Bewertungen liegen.
Die Idee lässt sich geometrisch veranschaulichen: Der Loss bildet eine Landschaft über dem Parameterraum. Der Gradient zeigt bergauf. Gradient Descent läuft bergab.
Fachliche Einordnung: Gradient Descent gehört zur Klasse der Optimierungsverfahren erster Ordnung. Verfahren zweiter Ordnung wie L-BFGS nutzen zusätzlich die Krümmung (Hesse-Matrix), konvergieren schneller, skalieren aber schlecht auf Millionen von Parametern. In der Praxis dominieren daher Varianten erster Ordnung.
Warum nicht der gesamte Datensatz pro Schritt verwendet wird
Den Gradienten über alle Trainingsdaten zu berechnen (Full-Batch Gradient Descent) ist bei großen Datensätzen zu langsam. Stochastic Gradient Descent (SGD) berechnet den Gradienten stattdessen auf einem zufällig gewählten Mini-Batch. Die resultierende Schätzung ist verrauscht, zeigt aber im Mittel in die richtige Richtung.
Beispiel: Ein Datensatz mit 10 Millionen Sätzen. Full-Batch berechnet den Gradienten über alle 10 Millionen Sätze pro Schritt. SGD mit Batch Size 64 berechnet ihn über 64 Sätze. Der einzelne Gradient ist ungenauer, aber das Modell sieht 150.000-mal häufiger ein Update pro Epoche.
Das Rauschen in SGD hat einen positiven Nebeneffekt: Es hilft dem Optimierer, flache Minima zu finden statt scharfer Minima. Flache Minima generalisieren erfahrungsgemäß besser auf ungesehene Daten.
Beispiel: Beim Training eines Transformer-Modells führt SGD mit Batch Size 32 zu einem Validierungs-Loss von 2,1. Full-Batch konvergiert auf 1,9 im Training, erreicht aber 2,4 bei der Validierung. Das verrauschte SGD generalisiert hier besser.
Wie Gradienten in tiefen Netzen berechnet werden
Die effiziente Berechnung von Gradienten in neuronalen Netzen leistet Backpropagation. Der Algorithmus nutzt die Kettenregel der Differentialrechnung: Der Gradient des Loss bezüglich eines Parameters in einer frühen Schicht ergibt sich als Produkt der lokalen Ableitungen entlang des Berechnungspfads.
Der Vorwärtsdurchlauf (Forward Pass) berechnet den Output des Netzes. Der Rückwärtsdurchlauf (Backward Pass) propagiert die Gradienten von der Ausgabeschicht zurück durch alle Schichten. Jeder Knoten im Berechnungsgraphen speichert dabei seinen lokalen Gradienten und multipliziert ihn mit dem eingehenden Gradienten.
Beispiel: Ein Netz mit drei Schichten: Eingabe, versteckte Schicht, Ausgabe. Der Loss beträgt 0,8. Backpropagation berechnet zuerst den Gradienten der Ausgabeschicht (direkte Ableitung), dann multipliziert es diesen mit der lokalen Ableitung der versteckten Schicht, um den Gradienten für die Gewichte der versteckten Schicht zu erhalten.
Ohne Backpropagation müsste jeder Parameter einzeln variiert werden, um seinen Einfluss auf den Loss zu messen. Bei einem Modell mit 100 Millionen Parametern wären das 100 Millionen Vorwärtsdurchläufe pro Trainingsschritt. Backpropagation benötigt nur einen Vorwärts- und einen Rückwärtsdurchlauf.
Wenn Gradienten verschwinden oder explodieren
In tiefen Netzen werden Gradienten als Produkt lokaler Ableitungen berechnet. Sind viele dieser Faktoren kleiner als 1, schrumpft der Gradient exponentiell (Vanishing Gradients). Sind viele größer als 1, wächst er exponentiell (Exploding Gradients). Beide Phänomene behindern das Training.
Beispiel: Ein rekurrentes Netz soll Abhängigkeiten über 200 Zeitschritte lernen. Die Sigmoid-Aktivierung hat eine maximale Ableitung von 0,25. Über 200 Schichten ergibt das 0,25²⁰⁰, ein Wert nahe null. Die frühen Schichten erhalten kein verwertbares Lernsignal.
Beispiel: Während des Trainings eines tiefen Netzes steigt der Loss plötzlich auf NaN. Die Ursache: Exploding Gradients haben die Gewichte auf extrem große Werte getrieben. Das numerische Format (float32) kann diese Werte nicht mehr darstellen.
Gegenmaßnahmen gegen Vanishing Gradients umfassen Aktivierungsfunktionen mit konstantem Gradienten im positiven Bereich (ReLU, GELU), Skip Connections (wie in ResNet und Transformer-Architekturen) und Layer Normalisierung. Gegen Exploding Gradients hilft Gradient Clipping: Die Gradientennorm wird auf einen Maximalwert begrenzt.
Moderne Optimierungsverfahren jenseits von SGD
Reines SGD behandelt alle Parameter gleich: Dieselbe Learning Rate, dieselbe Richtung. In der Praxis haben sich adaptive Verfahren durchgesetzt, die pro Parameter individuelle Lernraten verwenden.
Adam (Adaptive Moment Estimation) kombiniert zwei Ideen: Es verfolgt den gleitenden Durchschnitt der Gradienten (Momentum) und den gleitenden Durchschnitt der quadrierten Gradienten (adaptive Schrittweite). Parameter mit kleinen, konsistenten Gradienten erhalten größere Updates. Parameter mit stark schwankenden Gradienten erhalten kleinere Updates.
Beispiel: Beim Fine-Tuning eines vortrainierten Sprachmodells konvergiert Adam in 3 Epochen auf einen Validierungs-Loss von 1,4. SGD mit gleicher Learning Rate benötigt 15 Epochen und erreicht 1,6.
Beispiel: In einem Embedding-Layer mit 50.000 Wörtern werden pro Batch nur wenige Hundert Einträge aktualisiert. Adam passt die Lernraten individuell an: Seltene Wörter erhalten größere Updates, häufige Wörter kleinere.
Weitere verbreitete Optimizer sind AdaGrad (akkumuliert alle vergangenen quadrierten Gradienten), RMSprop (wie AdaGrad mit exponentiellem Vergessen) und AdamW (Adam mit entkoppeltem Weight Decay). Die Wahl des Optimizers ist ein Hyperparameter.
Techniken zur Kontrolle des Gradientenflusses
Neben der Wahl des Optimizers gibt es Techniken, die den Gradientenfluss direkt beeinflussen.
Gradient Clipping begrenzt die Norm des Gradienten auf einen Schwellenwert. Wenn der Gradient größer ist als der Schwellenwert, wird er proportional herunterskaliert. Das verhindert einzelne destabilisierende Updates.
Beispiel: Ein Transformer-Sprachmodell wird mit Gradient Clipping bei Norm 1,0 trainiert. Ohne Clipping treten in 2 % der Batches Gradientennormen über 100 auf, die das Training destabilisieren. Mit Clipping bleibt das Training stabil, die Konvergenz verlangsamt sich nur minimal.
Gradient Accumulation summiert die Gradienten mehrerer kleiner Batches auf, bevor ein Update durchgeführt wird. Das simuliert einen größeren Batch Size, ohne dass der gesamte Batch in den GPU-Speicher passen muss.
Beispiel: Ein Modell benötigt Batch Size 256 für stabiles Training. Die GPU hat nur Speicher für Batch Size 32. Mit Gradient Accumulation über 8 Schritte werden die Gradienten von 8 Batches à 32 Samples aufsummiert, bevor die Parameter aktualisiert werden. Das Ergebnis ist rechnerisch äquivalent zu Batch Size 256.
Gradient Checkpointing reduziert den Speicherbedarf während des Backward Pass. Statt alle Zwischenergebnisse des Forward Pass zu speichern, werden nur bestimmte Checkpoints gespeichert. Die übrigen Zwischenergebnisse werden bei Bedarf neu berechnet. Das spart Speicher auf Kosten von Rechenzeit (typisch: 20 bis 30 % mehr Rechenzeit, 60 bis 80 % weniger Speicher).
Gradienten in der Trainingspraxis
In realen Trainingsszenarien stehen Gradienten nicht isoliert. Sie interagieren mit Learning Rate Schedules, Regularisierungsmethoden und der Modellarchitektur.
Ein Learning Rate Warmup beginnt mit einer niedrigen Lernrate und erhöht sie über die ersten Trainingsschritte. Der Grund: Zu Beginn des Trainings sind die Gradienten oft instabil, weil die Gewichte zufällig initialisiert sind. Große Lernraten in dieser Phase führen zu erratischen Updates.
Beispiel: Beim Training eines Deep-Learning-Modells mit 175 Milliarden Parametern wird die Learning Rate in den ersten 2.000 Schritten linear von 0 auf 6e-4 erhöht, danach folgt ein Cosine-Decay. Ohne Warmup divergiert das Training in den ersten 100 Schritten.
Weight Decay fügt dem Gradienten einen Term hinzu, der die Gewichte in Richtung null drückt. Das wirkt als Regularisierung: Das Modell bevorzugt kleinere Gewichte, was die Komplexität des gelernten Modells begrenzt.
Gradient Noise Injection fügt den berechneten Gradienten gezielt Rauschen hinzu. Das kann dem Optimierer helfen, aus lokalen Minima zu entkommen. Diese Technik wird bei besonders schwierigen Optimierungslandschaften eingesetzt.
Grenzen und offene Probleme
Gradienten sind das Standardwerkzeug zur Optimierung differenzierbarer Funktionen. Nicht jedes Problem ist differenzierbar. Diskrete Entscheidungen (Token-Auswahl, Architektursuche) haben keinen definierten Gradienten. Methoden wie Straight-Through Estimator oder REINFORCE umgehen dieses Problem mit Schätzungen, die mathematisch nicht exakt sind.
Beispiel: Ein Modell soll aus einem Vokabular von 50.000 Token das nächste Token wählen. Die Auswahl (argmax) ist nicht differenzierbar. Während des Trainings wird stattdessen die Softmax-Verteilung verwendet, die differenzierbar ist. Der Gradient fließt über die Verteilung, nicht über die diskrete Auswahl.
Die Qualität der Gradienten hängt direkt von der Qualität der Loss-Funktion ab. Ein schlecht gewählter Loss kann zu Gradienten führen, die das Modell in eine unerwünschte Richtung optimieren. Reward Hacking in Reinforcement Learning ist ein bekanntes Beispiel: Das Modell optimiert den Loss perfekt, verfehlt aber das eigentliche Ziel.
Bei sehr großen Modellen wird die Gradientenberechnung auf mehrere GPUs verteilt (Distributed Training). Die Synchronisation der Gradienten zwischen GPUs erzeugt Kommunikationsoverhead. Asynchrone Verfahren reduzieren den Overhead, führen aber zu leicht veralteten Gradienten (Stale Gradients), die die Konvergenz beeinflussen.
Fachliche Einordnung: Die Forschung an gradientenfreien Optimierungsverfahren (Evolutionäre Algorithmen, Bayessche Optimierung) ist aktiv. Für die meisten Deep-Learning-Anwendungen bleiben gradientenbasierte Verfahren jedoch der Standard, weil sie mit der Parameterzahl skalieren. Verfahren zweiter Ordnung (Natural Gradient, K-FAC) bieten theoretische Vorteile, sind aber bei Modellen mit Milliarden von Parametern rechnerisch nicht praktikabel.