Informatik

Backpropagation: Fehler rückwärts berechnen

Backpropagation: Fehler rückwärts berechnen
Backpropagation: Fehler rückwärts berechnen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Backpropagation berechnet, wie stark jedes Gewicht und jeder Bias zum Verlust eines neuronalen Netzes beiträgt. Dazu verfolgt sie den Rechenweg vom Ausgang rückwärts und wendet die Kettenregel an. Ein Optimierer nutzt die berechneten Gradienten anschließend, um die Parameter zu verändern.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Welche Aufgabe löst Backpropagation?

Ein neuronales Netz verarbeitet Eingaben schrittweise. Jede Verbindung besitzt ein Gewicht. Ein Bias wird zusätzlich zur gewichteten Eingangssumme addiert. Diese trainierbaren Parameter bestimmen die Vorhersage des Netzes.

Eine Verlustfunktion misst, wie stark die Vorhersage vom Zielwert abweicht. Ein kleinerer Verlust bedeutet für das gewählte Trainingsbeispiel eine bessere Übereinstimmung.

Definition

Backpropagation

Backpropagation, auf Deutsch Fehlerrückführung, berechnet den Gradienten der Verlustfunktion bezüglich der Gewichte und Biases. Der Gradient enthält die partiellen Ableitungen und beschreibt, wie sich der Verlust bei kleinen Parameteränderungen verändert.

Drei Vorgänge gehören zusammen, haben aber verschiedene Aufgaben:

  1. Der Vorwärtslauf berechnet aus der Eingabe eine Vorhersage.
  2. Backpropagation berechnet rückwärts die Gradienten.
  3. Ein Optimierer, zum Beispiel Gradientenabstieg, aktualisiert die Parameter.
Merke

Backpropagation berechnet die Änderungsrichtungen. Der Optimierer führt die Parameteränderungen aus.

Teste dich
Frage 1 von 1LeichtWas liefert Backpropagation unmittelbar?
Lösung: Die Ableitungen des Verlusts nach den trainierbaren Parametern — Der Rückwärtslauf liefert den Gradienten. Architektur und Optimierung sind davon getrennte Entscheidungen.
Warum ist die Kettenregel entscheidend?

Ein Gewicht beeinflusst den Verlust meist nicht direkt. Es verändert zuerst die gewichtete Summe eines Neurons, diese verändert dessen Aktivierung und die Aktivierung beeinflusst schließlich den Verlust.

Für ein einfaches Neuron gilt:

$$z=wx+b$$

$$y=σ(z)$$

$$L=\frac{1}{2}(y-t)^2$$

Dabei sind $x$ die Eingabe, $w$ das Gewicht, $b$ der Bias, $z$ die Voraktivierung, $y$ die Ausgabe, $t$ der Zielwert und $L$ der Verlust.

Die Kettenregel zerlegt den Einfluss des Gewichts in drei lokale Einflüsse:

$$\frac{∂L}{∂w}=\frac{∂L}{∂y}\cdot\frac{∂y}{∂z}\cdot\frac{∂z}{∂w}$$

Für die Sigmoidfunktion $σ(z)=1/(1+e^{-z})$ gilt:

$$σ'(z)=σ(z)(1-σ(z))$$

Damit folgt:

$$\frac{∂L}{∂w}=(y-t)\cdot y(1-y)\cdot x$$

Beim Bias ist der letzte Faktor 1, weil $∂z/∂b=1$ gilt:

$$\frac{∂L}{∂b}=(y-t)\cdot y(1-y)$$

Beispiel

Betrachte die zusammengesetzte Funktion $f(x)=(3x+2)^2$.

Die innere Funktion ist $u=3x+2$ mit $u'=3$. Die äußere Funktion ist $u^2$ mit der Ableitung $2u$.

Deshalb gilt:

$$f'(x)=2(3x+2)\cdot3=6(3x+2)$$

Genau dieses Prinzip nutzt Backpropagation: Entlang des Rechenwegs werden lokale Ableitungen miteinander multipliziert.

Teste dich
Frage 1 von 1MittelWelche Faktoren werden für den Gewichtsgradienten des einfachen Neurons miteinander verbunden?
Lösung: Fehlerwirkung, Aktivierungsableitung und Eingabe — Die Kettenregel verbindet $∂L/∂y$, $∂y/∂z$ und $∂z/∂w$. Der letzte Faktor ist hier die Eingabe $x$.
Wie läuft ein Trainingsschritt ab?

Ein vollständiger Trainingsschritt folgt einer festen Reihenfolge:

  1. Vorwärts rechnen: Für jede Schicht werden Voraktivierung und Aktivierung berechnet und gespeichert.
  2. Verlust bestimmen: Die Vorhersage wird mit dem Zielwert verglichen.
  3. Ausgangsgradient berechnen: Der Rückwärtslauf beginnt bei der Verlustfunktion.
  4. Gradienten zurückführen: Die Kettenregel verbindet die lokalen Ableitungen bis zu früheren Schichten.
  5. Parameter aktualisieren: Ein Optimierer verwendet die Gradienten.

Beim einfachen Gradientenabstieg lautet das Update für einen Parameter $θ$:

$$θ_{neu}=θ_{alt}-η\frac{∂L}{∂θ}$$

Die Lernrate $η$ bestimmt die Schrittgröße. Das Minuszeichen ist wichtig: Der Gradient zeigt lokal in Richtung des stärksten Anstiegs, daher bewegt sich das Update in die Gegenrichtung.

Gut zu wissen

Gewichte sollten während eines Trainingsschritts nicht nacheinander mit bereits veränderten Zwischenwerten zurückgerechnet werden. Zuerst werden alle benötigten Gradienten aus demselben Vorwärtslauf bestimmt, danach erfolgt das Update.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Im entsteht die Vorhersage. Die misst deren Abweichung vom Ziel. Backpropagation liefert den . Der Optimierer verändert anschließend die .

Lösungen: Lücke 1: Vorwärtslauf; Lücke 2: Verlustfunktion; Lücke 3: Gradienten; Lücke 4: Parameter. Die Reihenfolge lautet: Vorhersage berechnen, Verlust bestimmen, Gradienten zurückführen und Parameter aktualisieren.
Wie sieht eine vollständige Rechnung aus?

Wir verwenden ein Sigmoidneuron mit

  • Eingabe $x=2$,
  • Gewicht $w=0$,
  • Bias $b=0$,
  • Zielwert $t=1$,
  • Lernrate $η=0{,}1$.
Beispiel

1. Vorwärtslauf

$$z=wx+b=0\cdot2+0=0$$

Für die Sigmoidfunktion gilt $σ(0)=0{,}5$. Daher ist $y=0{,}5$.

2. Verlust

$$L=\frac{1}{2}(y-t)^2=\frac{1}{2}(0{,}5-1)^2=0{,}125$$

3. Gewichtsgradient

$$\frac{∂L}{∂w}=(y-t)\cdot y(1-y)\cdot x$$

$$\frac{∂L}{∂w}=(-0{,}5)\cdot0{,}5\cdot0{,}5\cdot2=-0{,}25$$

4. Biasgradient

$$\frac{∂L}{∂b}=(-0{,}5)\cdot0{,}5\cdot0{,}5=-0{,}125$$

5. Update

$$w_{neu}=0-0{,}1\cdot(-0{,}25)=0{,}025$$

$$b_{neu}=0-0{,}1\cdot(-0{,}125)=0{,}0125$$

Der negative Gradient führt wegen des Minuszeichens im Update zu einer Erhöhung von Gewicht und Bias. Beim nächsten Vorwärtslauf wird $z$ positiv und die Ausgabe bewegt sich von $0{,}5$ in Richtung des Zielwerts 1.

Deine Rechnung

Verwende dieselben Startwerte, aber den Zielwert $t=0$. Bestimme $∂L/∂w$ und $w_{neu}$.

Teste dich
Frage 1 von 1MittelWelches Ergebnis ist richtig?
Lösung: $∂L/∂w=0{,}25$ und $w_{neu}=-0{,}025$ — Es gilt $(0{,}5-0)\cdot0{,}5\cdot0{,}5\cdot2=0{,}25$. Das Update lautet $0-0{,}1\cdot0{,}25=-0{,}025$. Dadurch bewegt sich die Ausgabe in Richtung 0.
Wie wandert der Fehler durch mehrere Schichten?

In einem mehrschichtigen Netz beeinflusst ein verdecktes Neuron den Verlust über alle nachfolgenden Verbindungen. Dafür wird je Schicht ein Fehlersignal $δ$ berechnet.

Für die Ausgabeschicht gilt schematisch:

$$δ^L=\frac{∂L}{∂a^L}\circ f'(z^L)$$

Das Zeichen $\circ$ steht für elementweise Multiplikation. Für eine verdeckte Schicht $l$ wird das Signal der nächsten Schicht mit der transponierten Gewichtsmatrix zurückgeführt:

$$δ^l=((W^{l+1})^Tδ^{l+1})\circ f'(z^l)$$

Aus dem Fehlersignal entstehen die Parametergradienten:

$$\frac{∂L}{∂b^l}=δ^l$$

$$\frac{∂L}{∂W^l}=δ^l(a^{l-1})^T$$

Die Aktivierungen aus dem Vorwärtslauf werden also im Rückwärtslauf erneut benötigt. Das erklärt, warum sie üblicherweise zwischengespeichert werden.

Merke

Ein verdecktes Neuron erhält kein eigenes Ziel. Sein Fehlersignal ergibt sich aus den nachfolgenden Fehlersignalen, den verbindenden Gewichten und seiner lokalen Aktivierungsableitung.

Backpropagation nutzt gemeinsam benötigte Zwischenergebnisse. Bei $T$ Gewichten und Biases liegen Vorwärtslauf, Rückwärtslauf und Update jeweils in der Größenordnung $O(T)$. Eine naive finite Differenz würde jedes Gewicht einzeln verändern und dafür ungefähr $O(T^2)$ Arbeit verursachen.

Teste dich
Frage 1 von 1SchwerWarum ist Backpropagation bei vielen Parametern effizienter als das einzelne Testen jedes Gewichts?
Lösung: Sie verwendet gespeicherte Zwischenwerte und führt Ableitungen gemeinsam rückwärts — Ein Vorwärtslauf erzeugt die Zwischenwerte. Der anschließende Rückwärtslauf nutzt sie für alle Parameter, statt je Parameter einen neuen Vorwärtslauf auszuführen.
Was kann beim Training schiefgehen?

Backpropagation berechnet Gradienten korrekt für den festgelegten Rechenweg. Sie garantiert jedoch weder gute Daten noch eine geeignete Architektur oder ein globales Minimum.

  • Zu große Lernrate: Updates können über einen günstigen Bereich hinausschießen oder oszillieren.
  • Zu kleine Lernrate: Das Training macht nur sehr langsame Fortschritte.
  • Verschwindende Gradienten: Viele kleine lokale Ableitungen ergeben über zahlreiche Schichten ein sehr kleines Produkt. Frühe Schichten lernen dann kaum.
  • Explodierende Gradienten: Große Faktoren können extrem große Gradienten und instabile Updates erzeugen.
  • Unteranpassung: Ein zu kleines oder ungeeignetes Netz kann das notwendige Muster nicht darstellen.
  • Überanpassung: Ein großes Netz kann Trainingsbeispiele gut wiedergeben, aber bei unbekannten Daten schlechter abschneiden.

Trainings- und Testdaten erfüllen deshalb verschiedene Aufgaben. Die Parameter werden mit Trainingsdaten gelernt. Getrennte Testdaten helfen anschließend einzuschätzen, ob das Netz auf unbekannte Fälle überträgt.

Gut zu wissen

Ein verschwindender Gradient beweist nicht, dass ein globales Minimum erreicht wurde. Der Gradient kann auch an anderen stationären Punkten oder in sehr flachen Bereichen klein sein.

Teste dich
Frage 1 von 1SchwerDer Trainingsverlust sinkt weiter, während der Fehler auf getrennten Testdaten steigt. Welche Diagnose passt am besten?
Lösung: Mögliche Überanpassung — Die auseinanderlaufende Trainings- und Testgüte ist ein Hinweis auf Überanpassung. Die Diagnose beruht auf getrennten Daten, nicht allein auf dem Trainingsverlust.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Backpropagation
    • Vorwärtslauf: Aktivierungen und Vorhersage
    • Verlust: Abweichung vom Ziel
    • Kettenregel: lokale Ableitungen verbinden
    • Rückwärtslauf: Fehlersignale und Gradienten
    • Optimierer: Parameter mit Lernrate aktualisieren
    • Prüfung: Trainings- und Testleistung vergleichen
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Aussage trennt Backpropagation und Gradientenabstieg korrekt?
Lösung: Backpropagation berechnet Gradienten; Gradientenabstieg aktualisiert Parameter. — Die Gradientenermittlung und das Parameterupdate sind zwei aufeinanderfolgende, aber verschiedene Schritte.
Frage 2 von 3MittelFür $y=0{,}5$, $t=1$, $σ'(z)=0{,}25$ und $x=4$: Wie groß ist $∂L/∂w$ beim quadratischen Verlust $L=(y-t)^2/2$?
Lösung: $-0{,}5$ — Setze in $(y-t)\cdotσ'(z)\cdot x$ ein: $(-0{,}5)\cdot0{,}25\cdot4=-0{,}5$.
Frage 3 von 3SchwerEin frühes Gewicht beeinflusst den Verlust über zwei verschiedene Neuronen der nächsten Schicht. Was muss der Rückwärtslauf berücksichtigen?
Lösung: Die über beide Wege zurückkommenden, gewichteten Fehlersignale — Bei mehreren Abhängigkeiten werden die Beiträge der nachfolgenden Einheiten zusammengeführt und anschließend mit der lokalen Aktivierungsableitung multipliziert.

Du hast den Kern verstanden, wenn du zu jedem Parameter den Weg Parameter → Voraktivierung → Aktivierung → Verlust verfolgen, die lokalen Ableitungen verbinden und das Vorzeichen des anschließenden Updates begründen kannst.

Passend dazu