Backpropagation

Wenn ein Modell eine falsche Vorhersage trifft, muss es herausfinden, welche seiner internen Stellschrauben dafür verantwortlich sind. Backpropagation ist das Verfahren, das den Fehler vom Ausgang rückwärts durch alle Schichten zurückverfolgt und für jede Stellschraube angibt, wie sie sich ändern muss.

Grundprinzip: Fehler rückwärts zuordnen

Ein neuronales Netzwerk besteht aus Schichten, die Eingaben schrittweise transformieren. Bei der Vorhersage durchläuft ein Signal das Netzwerk von der Eingangsschicht zur Ausgangsschicht. Dieser Vorgang heißt Forward Pass. Am Ende steht eine Ausgabe, etwa eine Klassifikation oder ein Zahlenwert.

Die Abweichung zwischen dieser Ausgabe und dem gewünschten Ergebnis wird durch eine Verlustfunktion gemessen. Backpropagation nutzt diese Verlustgröße und rechnet den Einfluss jedes einzelnen Gewichts im Netzwerk auf den Fehler aus. Die Berechnung verläuft rückwärts: von der letzten Schicht zur ersten.

Beispiel: Ein Bildklassifikator soll ein Foto als "Katze" erkennen, gibt aber "Hund" aus. Die Verlustfunktion quantifiziert diese Abweichung. Backpropagation berechnet nun für jedes der Tausenden Gewichte im Netzwerk, wie stark es zu diesem Fehler beigetragen hat.

Beispiel: Ein Sprachmodell sagt das nächste Wort in einem Satz vorher. Es prognostiziert "Haus" statt "Auto". Die Verlustfunktion misst den Unterschied zwischen der Wahrscheinlichkeitsverteilung des Modells und der korrekten Antwort. Backpropagation verteilt diesen Fehler auf alle beteiligten Parameter.

Die Kettenregel als mathematische Grundlage

Backpropagation basiert auf der Kettenregel der Differentialrechnung. Die Kettenregel besagt: Wenn eine Größe über mehrere Zwischenschritte von einer anderen abhängt, lässt sich die Gesamtableitung als Produkt der Einzelableitungen berechnen.

In einem Netzwerk mit drei Schichten hängt der Loss L von der Ausgabe a3 ab, a3 hängt von a2 ab, und a2 hängt von a1 ab. Die Ableitung von L nach einem Gewicht in der ersten Schicht ergibt sich als: dL/dw1 = (dL/da3) * (da3/da2) * (da2/da1) * (da1/dw1). Jeder Faktor entspricht einer lokalen Ableitung innerhalb einer Schicht.

Beispiel: Ein Netzwerk mit zwei verdeckten Schichten verarbeitet Sensordaten. Die Ableitung des Loss nach einem Gewicht in der ersten Schicht wird berechnet, indem die lokalen Ableitungen der Ausgabeschicht, der zweiten verdeckten Schicht und der ersten verdeckten Schicht miteinander multipliziert werden.

Dieses Prinzip skaliert auf beliebig tiefe Architekturen. Jede Schicht muss nur ihre eigene lokale Ableitung kennen. Die Gesamtableitung ergibt sich aus der Multiplikation aller lokalen Ableitungen entlang des Pfades vom Loss zurück zum betreffenden Gewicht.

Fachliche Einordnung: Die Kettenregel wurde nicht für neuronale Netzwerke erfunden. Sie ist ein allgemeines Werkzeug der Analysis, das Leibniz im 17. Jahrhundert formalisierte. Backpropagation überträgt dieses mathematische Prinzip auf die Graphstruktur eines Netzwerks. Die Effizienz des Verfahrens liegt darin, dass redundante Zwischenergebnisse nur einmal berechnet und dann wiederverwendet werden.

Forward Pass und Backward Pass

Das Training eines Netzwerks besteht aus zwei Phasen pro Durchlauf. Im Forward Pass fließen die Eingabedaten vorwärts durch alle Schichten. Jede Schicht wendet ihre Gewichte auf die Eingabe an, addiert einen Bias-Wert und leitet das Ergebnis durch eine Aktivierungsfunktion. Das Ergebnis der letzten Schicht wird mit dem Zielwert verglichen.

Im Backward Pass läuft die Berechnung rückwärts. Der Gradient des Loss wird Schicht für Schicht zurückgereicht. Jede Schicht berechnet zwei Dinge: den Gradienten bezüglich ihrer Gewichte (für das Update) und den Gradienten bezüglich ihrer Eingabe (für die vorherige Schicht).

Beispiel: Ein Netzwerk zur Kreditrisikobewertung nimmt Einkommen, Schuldenstand und Zahlungshistorie als Eingabe. Im Forward Pass gewichtet es diese Merkmale und gibt eine Ausfallwahrscheinlichkeit aus. Im Backward Pass berechnet Backpropagation, wie stark jedes Gewicht zum Fehler beigetragen hat.

Während des Forward Pass speichert das System alle Zwischenergebnisse (Aktivierungen). Diese werden im Backward Pass benötigt, um die lokalen Ableitungen zu berechnen. Dieser Speicherbedarf steigt linear mit der Anzahl der Schichten und ist ein wesentlicher Faktor beim Deep Learning.

Eingabedaten
Schicht 1Gewichte + Aktivierung
Schicht 2Gewichte + Aktivierung
AusgabeVorhersage
LossFehlerberechnung
Forward PassVorwärts
Backward PassGradienten

Zusammenspiel mit dem Optimizer

Backpropagation berechnet die Gradienten. Es führt selbst keine Gewichtsanpassung durch. Diese Aufgabe übernimmt ein Optimizer. Der einfachste Optimizer ist der stochastische Gradientenabstieg (SGD): Er zieht von jedem Gewicht das Produkt aus Lernrate und Gradient ab.

Die Lernrate bestimmt die Schrittgröße. Ist sie zu groß, schießt die Optimierung über das Minimum hinaus. Ist sie zu klein, konvergiert das Training zu langsam. Moderne Optimizer wie Adam passen die Lernrate pro Parameter dynamisch an, basierend auf der Historie vergangener Gradienten.

Beispiel: Bei einem Textklassifikator berechnet Backpropagation den Gradienten für ein Embedding-Gewicht: -0,003. Der SGD-Optimizer multipliziert diesen Wert mit der Lernrate 0,01 und subtrahiert das Ergebnis vom aktuellen Gewicht. Das Gewicht verschiebt sich um 0,00003 in Richtung eines geringeren Fehlers.

Beispiel: Ein Transformer-Modell hat 175 Milliarden Parameter. Für jeden einzelnen berechnet Backpropagation einen Gradienten. Der Adam-Optimizer verwaltet zusätzlich zwei Zwischenwerte pro Parameter (Mittelwert und Varianz vergangener Gradienten), was den Speicherbedarf verdreifacht.

Herausforderungen bei tiefen Netzwerken

Bei Netzwerken mit vielen Schichten treten zwei charakteristische Probleme auf: Verschwindende und explodierende Gradienten. Beim Vanishing Gradient werden die Gradienten mit jeder Schicht kleiner, weil sie durch wiederholte Multiplikation mit Werten kleiner als 1 schrumpfen. Die frühen Schichten lernen dann kaum noch.

Der umgekehrte Fall, explodierende Gradienten, entsteht, wenn die Zwischenwerte größer als 1 sind. Die Gradienten wachsen exponentiell, und die Gewichtsupdates werden instabil.

Beispiel: Ein Netzwerk mit 50 Schichten nutzt die Sigmoid-Aktivierungsfunktion. Der maximale Gradient der Sigmoid-Funktion beträgt 0,25. Nach 50 Multiplikationen ergibt das: 0,25^50, ein Wert nahe Null. Die Gewichte der ersten Schichten erhalten praktisch kein Lernsignal mehr.

Gegen verschwindende Gradienten gibt es mehrere Gegenmaßnahmen: Die ReLU-Aktivierungsfunktion hat im positiven Bereich eine konstante Ableitung von 1. Residual Connections (Skip Connections) leiten den Gradienten an Schichten vorbei direkt zu früheren Schichten weiter. Batch Normalization stabilisiert die Verteilung der Aktivierungen zwischen den Schichten.

Beispiel: ResNet (Residual Network) enthält Abkürzungsverbindungen, die den Eingang einer Schicht direkt zum Ausgang addieren. Dadurch kann der Gradient ungehindert durch das gesamte Netzwerk fließen, selbst bei über 100 Schichten. Ohne diese Verbindungen wäre das Training solch tiefer Architekturen nicht stabil.

Fachliche Einordnung: Das Vanishing-Gradient-Problem wurde 1991 von Hochreiter in seiner Diplomarbeit analysiert und später von Bengio et al. (1994) formal beschrieben. Es war ein Hauptgrund dafür, dass tiefe Netzwerke bis Mitte der 2000er-Jahre als schwer trainierbar galten. Die Lösung kam nicht durch eine Änderung an Backpropagation selbst, sondern durch Architekturanpassungen wie ReLU, Residual Connections und bessere Initialisierungsverfahren.

Automatische Differentiation in der Praxis

In modernen Frameworks wie PyTorch oder TensorFlow implementiert niemand Backpropagation manuell. Stattdessen nutzen diese Systeme automatische Differentiation (Autodiff). Dabei wird jede mathematische Operation während des Forward Pass in einem Berechnungsgraphen protokolliert. Beim Backward Pass traversiert das System diesen Graphen rückwärts und wendet die Kettenregel automatisch an.

Es gibt zwei Varianten: Forward-Mode und Reverse-Mode Autodiff. Backpropagation entspricht dem Reverse-Mode. Er ist effizienter, wenn die Anzahl der Ausgaben (ein skalarer Loss) kleiner ist als die Anzahl der Eingaben (Millionen von Gewichten).

Beispiel: In PyTorch genügen drei Zeilen für den gesamten Backpropagation-Vorgang: output = model(input) berechnet den Forward Pass, loss = criterion(output, target) bestimmt den Fehler, und loss.backward() berechnet alle Gradienten automatisch.

Der Berechnungsgraph speichert für jede Operation eine Funktion zur Gradientenberechnung. Eine Matrixmultiplikation Y = W * X speichert sowohl W als auch X, weil beide für die Ableitung benötigt werden: dL/dW = dL/dY * X^T und dL/dX = W^T * dL/dY.

Speicher- und Rechenkosten

Backpropagation erfordert, dass alle Aktivierungen aus dem Forward Pass gespeichert bleiben, bis der Backward Pass sie verarbeitet hat. Bei einem Modell mit N Schichten und B Trainingsbeispielen pro Batch skaliert der Speicherbedarf proportional zu N mal B mal der Größe jeder Aktivierung.

Die Rechenzeit des Backward Pass beträgt in der Regel das Zwei- bis Dreifache des Forward Pass. Dieser Faktor entsteht, weil pro Schicht sowohl der Gradient bezüglich der Gewichte als auch der Gradient bezüglich der Eingabe berechnet werden muss.

Beispiel: Ein Sprachmodell mit 7 Milliarden Parametern benötigt im Forward Pass etwa 14 GB GPU-Speicher für die Modellgewichte (bei 16-Bit-Präzision). Für das Training mit Backpropagation kommen Aktivierungen, Gradienten und Optimizer-Zustände hinzu. Der Gesamtbedarf steigt auf über 100 GB.

Gradient Checkpointing ist eine Technik, die Speicher gegen Rechenzeit tauscht. Statt alle Aktivierungen zu speichern, werden nur bestimmte Zwischenpunkte aufbewahrt. Die fehlenden Aktivierungen werden im Backward Pass bei Bedarf durch einen erneuten Forward Pass der betreffenden Schichten rekonstruiert.

Beispiel: Beim Training eines Modells mit 100 Schichten speichert Gradient Checkpointing nur jede zehnte Aktivierung. Der Speicherbedarf sinkt um etwa 90 Prozent, aber die Rechenzeit steigt um ca. 30 Prozent durch die zusätzlichen Forward-Pass-Berechnungen.

Varianten und Erweiterungen

Das Grundverfahren von Backpropagation wurde in verschiedene Richtungen erweitert. Backpropagation Through Time (BPTT) ist die Anwendung auf rekurrente Netzwerke, bei denen das Netzwerk über mehrere Zeitschritte "ausgerollt" und der Gradient über die gesamte Sequenz zurückpropagiert wird.

Truncated BPTT begrenzt die Rückpropagation auf eine feste Anzahl von Zeitschritten, um Speicher und Rechenzeit zu sparen. Dies führt zu einem Kompromiss: Kurzfristige Abhängigkeiten werden gut gelernt, langfristige weniger präzise.

Beispiel: Ein rekurrentes Netzwerk verarbeitet eine Textsequenz von 500 Wörtern. Vollständiges BPTT würde den Gradienten über alle 500 Zeitschritte zurückrechnen. Truncated BPTT mit einer Fensterbreite von 50 rechnet nur die letzten 50 Schritte zurück und spart so erheblich Speicher.

Mixed-Precision Training kombiniert 16-Bit- und 32-Bit-Gleitkommazahlen. Der Forward Pass und große Teile des Backward Pass laufen in 16 Bit. Kritische Operationen wie die Gradientenakkumulation nutzen 32 Bit, um numerische Stabilität zu gewährleisten.

Grenzen und Einordnung

Backpropagation setzt differenzierbare Operationen voraus. Nicht-differenzierbare Schritte wie harte Schwellenwertentscheidungen oder diskrete Auswahlen erfordern Umgehungsstrategien wie die Straight-Through-Estimation oder Reinforcement-Learning-basierte Methoden.

Der Algorithmus findet lokale, nicht globale Minima der Verlustfunktion. Bei hochdimensionalen Problemen wie dem Training großer Machine-Learning-Modelle ist dies in der Praxis selten problematisch, weil die meisten lokalen Minima ähnlich gute Lösungen liefern. Sattelpunkte (Stellen mit verschwindendem Gradienten, die weder Minimum noch Maximum sind) stellen häufiger ein Problem dar.

Beispiel: Ein Generative-Adversarial-Network (GAN) besteht aus zwei Netzwerken, die gegeneinander trainiert werden. Backpropagation kann hier zu Oszillationen führen, weil das Minimum des einen Netzwerks vom Zustand des anderen abhängt. Stabilitätstechniken wie Gradient Penalty oder Spectral Normalization adressieren dieses Problem.

Die biologische Plausibilität von Backpropagation wird in der Neurowissenschaft diskutiert. Das Verfahren erfordert, dass Fehlersignale exakt rückwärts durch dieselben Verbindungen fließen, über die auch die Vorwärtssignale laufen. Biologische Neuronen funktionieren nicht so. Forschungsansätze wie Feedback Alignment und Predictive Coding versuchen, biologisch plausiblere Alternativen zu entwickeln.

Trotz dieser Einschränkungen ist Backpropagation seit den 1980er-Jahren das dominierende Trainingsverfahren für neuronale Netzwerke geblieben. Bisher hat kein alternatives Verfahren eine vergleichbare Kombination aus Effizienz, Skalierbarkeit und Allgemeinheit erreicht.


Karl Kratz · 13.03.2025 (aktualisiert 03.04.2026)

Technologie Künstliche Intelligenz Training