Informatik · Klasse 11–13 · aktualisiert
Backpropagation: Fehler rückwärts berechnen
Du lernst, wie ein neuronales Netz seinen Fehler rückwärts durch die Schichten führt, Gradienten mit der Kettenregel berechnet und was die Lernrate bewirkt.
0 von 11 Aufgaben gelöst
Kurz gesagt
Backpropagation führt den Fehler eines Netzes rückwärts durch die Schichten und bestimmt mit der Kettenregel die Gradienten für die Gewichte. Ein Gradientenverfahren nutzt sie, um die Gewichte zu ändern. Die Lernrate legt fest, wie stark diese Änderungen sind.
Ein Rechner kann trainiert werden, handgeschriebene Ziffern zu erkennen. Dafür muss das Netz seine vielen Gewichte anpassen. Aber welches Gewicht hat den Fehler verursacht, und wie stark soll es sich ändern? Das klärt Backpropagation. Hier lernst du, wie das geht und woran du Trainingsprobleme erkennst.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Ein künstliches neuronales Netz erhält Eingabedaten und bildet sie auf einen Ausgabewert ab. Dafür werden die Zahlen in jeder Schicht mit Gewichten multipliziert. Die Gewichte sind die Parameter des Netzes. Beim Vorwärtspropagieren wandert die Eingabe von der Eingabeschicht über mögliche Zwischenschichten zur Ausgabeschicht. Am Ende steht die Ausgabe des Netzes.
Beim Training wird die Ausgabe mit dem gewünschten Zielwert verglichen. Die Differenz gilt als Fehler. Dieser Fehler wird rückwärts durch die Schichten geführt. Das nennt man Backpropagation (Fehlerrückführung). So lässt sich ermitteln, welche Pfade den größten Einfluss auf den Fehler haben.
Das Gradientenverfahren ist dagegen ein allgemeines Verfahren der Optimierung. Der Gradient ist die Richtung des steilsten Anstiegs einer Funktion. Man geht schrittweise entgegen dem Gradienten, also in Richtung des lokal steilsten Abstiegs. So werden die Funktionswerte kleiner. Backpropagation ist ein Spezialfall eines allgemeinen Gradientenverfahrens, das auf dem mittleren quadratischen Fehler beruht. In einem neuronalen Netz laufen zwei Schritte nacheinander: Erst bestimmt die Fehlerrückführung die Gradienten. Dann nutzt ein Optimierungsverfahren sie, um die Gewichte zu aktualisieren.
Definition
Backpropagation
Backpropagation (auch Fehlerrückführung) ist ein verbreitetes Verfahren zum Einlernen künstlicher neuronaler Netze. Der Fehler am Ausgang wird rückwärts durch die Schichten geführt, um die Gradienten zu bestimmen.
| Vorgang | Richtung | Aufgabe |
|---|---|---|
| Vorwärtspropagieren | Eingabe → Ausgabe | Ausgabe des Netzes berechnen |
| Backpropagation | Ausgabe → Eingabe | Gradienten bestimmen |
| Gradientenverfahren | Schritt gegen den Gradienten | Gewichte aktualisieren |
Teste dich
Wir betrachten ein einfaches Neuron mit der Eingabe x und dem Zielwert t. Zuerst wird die Netzeingabe z = w \cdot x + b berechnet. Dann folgt die Sigmoidfunktion, eine beliebte Aktivierungsfunktion: y = \sigma(z). Der Fehler ist L = \tfrac{1}{2} (y - t)^2. Der Faktor \tfrac{1}{2} steht nur da, damit die Ableitung einfacher wird. Gesucht ist, wie stark sich L ändert, wenn man w ändert. Das ist die Ableitung von L nach w.
Dafür brauchst du die Kettenregel. Sie berechnet die Ableitung einer Verkettung: (f(g(x)))' = f'(g(x)) \cdot g'(x). Kurz heißt das: äußere Ableitung mal innere Ableitung. Bei dem Neuron ist L von y abhängig, y von z und z von w. Das sind drei verkettete Schritte, also multiplizierst du drei Ableitungen:
\frac{\partial L}{\partial w} = (y - t) \cdot \sigma'(z) \cdot x
Für b ist die innere Ableitung 1, deshalb gilt \frac{\partial L}{\partial b} = (y - t) \cdot \sigma'(z). Die Ableitung der Sigmoidfunktion ist c \cdot s_c(x) \cdot (1 - s_c(x)). Für c = 1 gilt also \sigma'(z) = \sigma(z) \cdot (1 - \sigma(z)).
Mit dem Gradienten änderst du das Gewicht: \Delta w = -\eta \cdot \frac{\partial L}{\partial w} und w_{neu} = w_{alt} + \Delta w. Das η ist die Lernrate. Weil bei jedem Schritt ein Gradient berechnet wird, muss die Fehlerfunktion stetig und differenzierbar sein.
Definition
Kettenregel
Die Kettenregel berechnet die Ableitung einer Verkettung differenzierbarer Funktionen: äußere Ableitung mal innere Ableitung.
Beispiel: Kettenregel an f(x) = (x³ + 1)²
- 1Innere Funktion: v(x) = x³ + 1, äußere Funktion: u(v) = v²
- 2Äußere Ableitung: u'(v) = 2·v = 2·(x³ + 1)
- 3Innere Ableitung: v'(x) = 3·x²
- 4Zusammen: f'(x) = 2·(x³ + 1)·3·x²
Merke: Bei einem Neuron mit Sigmoidfunktion ist der Gradient nach w ein Produkt aus (y − t), σ'(z) und x.
Teste dich
In einem Netz mit mehreren Schichten gibt es zwei Arten von Neuronen. Ein Ausgabeneuron ist direkt an der Ausgabe beteiligt. Seine Anpassung lässt sich direkt berechnen. Ein Neuron in einer verdeckten Schicht (Zwischenschicht) ist nicht direkt an der Ausgabe beteiligt. Seine Anpassung kann nur indirekt berechnet werden.
Dazu gibt es das Fehlersignal δ eines Neurons j. Es entspricht der Ableitung des Fehlers nach der Netzeingabe dieses Neurons. Für ein Ausgabeneuron gilt \delta_j = \varphi'(net_j) \cdot (o_j - t_j). Für ein verdecktes Neuron gilt \delta_j = \varphi'(net_j) \cdot \sum_k \delta_k w_{jk}. Die Summe läuft über die nachfolgenden Neuronen k. Das sind die Neuronen, die ihre Eingaben aus dem Neuron j beziehen. Ein verdecktes Neuron wird also abhängig von dem Fehler geändert, den diese nachfolgenden Neuronen erzeugen.
Das Gewicht von Neuron i zu Neuron j ändert sich um \Delta w_{ij} = -\eta \cdot \delta_j \cdot o_i. So wandert das Fehlersignal Schicht für Schicht von hinten nach vorn. Man beginnt mit dem Fehlerneuron und bewegt sich jeweils ein Neuron zurück. Die Ableitungen werden dabei miteinander multipliziert. Das ist die Kettenregel für mehr als zwei verkettete Funktionen: Man multipliziert die Ableitungen aller ineinander verschachtelten Funktionen. Bei drei Funktionen gilt f'(x) = u'(v(w(x))) \cdot v'(w(x)) \cdot w'(x).
Definition
Fehlersignal
Das Fehlersignal eines Neurons zeigt, wie stark der Fehler von der Netzeingabe dieses Neurons abhängt. Es bestimmt, wie sich die Gewichte vor diesem Neuron ändern.
| Neuron | Fehlersignal |
|---|---|
| Ausgabeneuron | Ableitung der Aktivierungsfunktion mal Abweichung vom Zielwert |
| Verdecktes Neuron | Ableitung der Aktivierungsfunktion mal gewichtete Summe der Fehlersignale der nachfolgenden Neuronen |
Teste dich
Die Lernrate η bestimmt die Stärke der Gewichtsänderungen. Sie gibt an, wie groß die Schritte in Richtung des Minimums sind. Ist sie zu hoch, bewirkt sie eine starke Veränderung. Dann kann das Minimum verfehlt werden. Ist sie zu klein, wird das Einlernen unnötig verlangsamt. Außerdem kann das Netz oszillieren, das heißt: Die Verbindungsgewichte springen hin und her. Um das zu vermeiden, gibt es Verfeinerungen mit einer variablen Lernrate.
Ein zweites Problem ist die Überanpassung (englisch overfitting). Das Netz lernt die Trainingsdaten sozusagen auswendig. Es gibt sie dann korrekt wieder, kann aber nicht mehr auf neue Daten verallgemeinern. Ein Beispiel: Ein Rechner soll handgeschriebene Ziffern erkennen. Er passt sich zu sehr an die Schreibweise der Trainingsdaten an.
Das erkennst du am Fehler auf zwei Datensätzen. Die Trainingsdaten werden zum Einlernen benutzt. Die Testdaten dienen nicht zum Einlernen, sondern zur Bestimmung der Testgüte. Wenn der Fehler auf den Testdaten steigt, während der Fehler auf den Trainingsdaten fällt, liegt möglicherweise Überanpassung vor. Beim Early Stopping wird der Fehler auf Daten außerhalb des Trainings während des Trainings kontrolliert. Das Training wird gegebenenfalls bei einem Anstieg abgebrochen.
Definition
Überanpassung
Überanpassung (englisch overfitting) heißt: Das Modell hat die Trainingsdaten sozusagen auswendig gelernt und kann nicht mehr gut auf neue Daten verallgemeinern.
Merke: Fällt der Fehler auf den Trainingsdaten, während er auf den Testdaten steigt, liegt möglicherweise Überanpassung vor.
Teste dich
Alles auf einen Blick
Backpropagation
Zwei Schritte
Die Fehlerrückführung bestimmt die Gradienten, ein Optimierungsverfahren aktualisiert damit die Gewichte.
Richtung
Beim Vorwärtspropagieren läuft die Eingabe zur Ausgabe, bei Backpropagation läuft der Fehler rückwärts.
Kettenregel
Äußere Ableitung mal innere Ableitung, bei mehreren verschachtelten Funktionen das Produkt aller Ableitungen.
Lernrate
Zu hoch kann das Minimum verfehlt werden, zu klein verlangsamt das Einlernen unnötig.
Überanpassung
Steigt der Testfehler, während der Trainingsfehler fällt, liegt möglicherweise Überanpassung vor.
Musteraufgabe · Schritt für Schritt
Gradient eines Neurons und ein Gewichtsschritt (ausgedachtes Beispiel)
- 1Ausgedachte Werte: x = 2, w = 0, b = 0, Zielwert t = 1, Lernrate η = 0,5. Modell: z = w·x + b, y = σ(z), L = ½·(y − t)²
- 2Vorwärts: z = 0·2 + 0 = 0. Mit σ(z) = 1/(1 + e hoch (−z)) folgt y = σ(0) = 1/2 = 0,5
- 3Ableitung der Sigmoidfunktion für c = 1: σ'(z) = σ(z)·(1 − σ(z)) = 0,5·0,5 = 0,25
- 4Kettenregel: ∂L/∂w = (y − t)·σ'(z)·x = (0,5 − 1)·0,25·2 = −0,25
- 5Ebenso: ∂L/∂b = (y − t)·σ'(z) = (−0,5)·0,25 = −0,125
- 6Gewichtsschritt: Δw = −η·∂L/∂w = −0,5·(−0,25) = 0,125, also w neu = 0 + 0,125 = 0,125
Fehler finden
Prüfe die Aussagen zum Training eines Netzes In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 3Die Reihenfolge ist vertauscht. Richtig: Zuerst bestimmt die Fehlerrückführung die Gradienten, danach nutzt ein Optimierungsverfahren sie, um die Gewichte zu aktualisieren.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Beim Gradientenabstieg ändert man die Gewichte Gradienten, um den Fehler zu verringern. Wenn der Fehler auf den Testdaten , während er auf den Trainingsdaten fällt, liegt möglicherweise Überanpassung vor. Mit einer zu Lernrate kann das Minimum verfehlt werden.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback