Begriff
Backpropagation
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Wie lernt ein Kind Fahrrad fahren? Es fällt hin (Fehler). Es denkt: "Aha, ich habe mich zu stark nach links gelehnt. Nächstes Mal mehr nach rechts." Es korrigiert seine Balance. Backpropagation ist genau das für Neuronale Netze.
- Das Netz rät: "Das Bild ist ein Hund!" (Falsch, es ist eine Katze).
- Wir sagen: "Fehler! Du liegst 50% daneben."
- Der Fehler wird rückwärts durch das Netz geschickt.
- Jedes Neuron fragt: "War ich schuld? Ja, ein bisschen. Ich passe mein Gewicht an." So lernen alle Neuronen Schritt für Schritt, weniger Fehler zu machen.
Merksatz: Ein Algorithmus zum Trainieren neuronaler Netze, der den Fehler beim Output rückwärts durch das Netz leitet, um die Gewichte anzupassen.
Es ist der Motor von allem.
Wenn du model.fit() in Python aufrufst, passiert Backpropagation.
Millionen Mal.
Es frisst extrem viel Rechenleistung (Matrizen-Multiplikation).
Deshalb sind GPUs (Grafikkarten) so wichtig. Sie können diese parallelen Rückwärts-Rechungen tausendmal schneller als eine CPU.
1. Chain Rule (Kettenregel)
Mathematisch basiert es auf der Kettenregel der Differentialrechnung.
dFehler/dGewicht = dFehler/dOutput * dOutput/dInput * ...
Man berechnet den Gradienten (die Steigung) der Fehlerkurve.
Man will ins Tal ("Gradient Descent"), wo der Fehler minimal ist (Global Minimum).
2. Vanishing Gradient Problem
Bei sehr tiefen Netzen (viele Layer) wird das Fehlersignal beim Zurückgehen immer schwächer (multipliziert mit kleinen Zahlen < 1). Die ersten Layer (ganz vorne) lernen fast nichts mehr. Lösungen: ReLU (statt Sigmoid) und ResNets (Skip Connections).
1. Autodiff und Computation Graphs
In Produktions-Frameworks wie PyTorch oder TensorFlow muss niemand die Kettenregel per Hand programmieren. Diese Tools bauen dynamisch einen Directed Acyclic Graph (DAG) – den sogenannten Computation Graph.
Bei jedem Vorwärtsdurchlauf (Forward Pass) merkt sich PyTorch (x * y) nicht nur das Ergebnis, sondern speichert Nodes: "Das war eine Multiplikation von Tensoren, für den Backward-Schritt liegt die Ableitung der Multiplikation als Hook bereit." Beim Aufruf von .backward() reitet die Autodiff-Engine (Tensorspeicher-optimiert in C++) den Graphen von hinten ab und sammelt jeden Mini-Gradienten auf (Reverse-Mode Automatic Differentiation).
2. Backpropagation Through Time (BPTT)
Wenn wir rekurrente Netze (RNNs) trainieren (die Schleifen haben), entrollt man das Netz zeitlich (Unrolling) in ein massiv tiefes Feed-Forward-Netz. Ein Satz mit 50 Wörtern generiert also einen Graphen von Tiefe 50. Das Problem: Der Gradient verblasst drastisch (Vanishing Gradient) oder explodiert (Exploding Gradient), je tiefer er durch diese Zeitstufen wandert. Die Lösung war historisch das Gradient Clipping (Abschneiden der oberen Spitzen) und Architekturen wie LSTMs (Long Short-Term Memory), bei welchen der Gradient durch dedizierte Additionstörchen ungebremst in die Vergangenheit gleiten konnte, anstatt wegmultipliziert zu werden.
3. Forward-Forward Algorithm vs Backprop
Godfather of AI Geoffrey Hinton meint, das menschliche Gehirn habe keinen Weg, Feedback mikrosekundenschnell deterministisch rückwärts durch Synapsen-Highways zu leiten (Backprop existiert biologisch nicht auf diese Weise). Hinton stellte daher vor Kurzem den Forward-Forward Algorithmus als Alternative vor. Hier gibt es keinen Backward-Step. Stattdessen nutzt das Netz zwei Vorwärts-Passes: Einen für positive Daten (korrekte Labels) und einen für negative (Noise). Die Aktivierungsschwellen maximieren oder minimieren die "Goodness". Ob dies Backprop in Skalierung jemals ablösen wird, bleibt aktuell wilde Forschungs-Debatte.
Quick-Check
Lernen Netze vorwärts?
Nein. Sie "denken" vorwärts (Inference), aber sie "lernen" rückwärts (Backpropagation).Wer hat's erfunden?
Umstritten. Aber populär gemacht wurde es 1986 von Hinton, Rumelhart und Williams. Es war der Startschuss für modernes Deep Learning.Braucht man gelabelte Daten?
Ja (Supervised Learning). Ohne zu wissen, was "richtig" ist (Label), kann man den Fehler nicht berechnen.