Backpropagation


Backpropagation ist ein überwachtes Lernverfahren, mit dem FF-Netze erster und zweiter Ordnung trainiert werden können. Ein Netz gilt als trainiert, wenn die Menge der Trainingsdaten richtigen Ausgaben zugeordnet wird. Die Ausgaben werden also beim Training vorgegeben. Legt man eine Eingabe an das Netz an, so berechnet es eine Ausgabe. Da ein gewünschter Ausgabevektor vorgegeben ist, kann man den Fehler berechnen, den das Netz bei diesem Ein- Ausgabe-Paar macht.
Fehler auf einem Trainingsmuster
Der Faktor von 0,5 hat nur rechentechnische Bedeutung. Durch Aufsummierung der einzelnen Fehler für die gesamte Trainingsmenge, kann der Gesamtfehler bestimmt werden :
Gesamtfehler
Backpropagation versucht nun durch einen Gradientenabstieg die Gewichte (=Parameter der Fehlerfunktion) so zu justieren, daß dieser Fehler minimal (also optimal Null) wird.
Die Lernregel Die Lernregel ist die erweiterte Deltaregel :
erweiterte Deltaregel
Backpropagation ist ein Gradientenabstiegsverfahren. D.h. die Fehlerfunktion wird dadurch optimiert, daß der Gradient (also die Steigung) am aktuellen Punkt der Fehlerfunktion berechnet wird. [Beachte : die Fehlerfunktion ist über den Gewichten definiert] . Um nun das Minimum der Funktion zu finden, wird ein Gewicht in Richtung des Gefälles verändert, d.h. man arbeitet mit partiellen Ableitungen der Fehlerfunktion.
Dies wird solange gemacht, bis der Fehler auf der Trainingsmenge Null ist. Wird er nicht zu Null, hängt man entweder in einem lokalen Minimum fest oder das Netz hat keine geeignete Topologie, alle Trainingsbeispiele richtig zu klassifizieren.
Also : Die Minimierung des Fehlers E durch die Änderung des Gewichts wij bewirkt einen Gradientenabstieg :
Mit anderen Worten, das Gewicht wird in Richtung des Gefälles verändert.
Formel : Gradientenabstieg
Der Gradient kann mittels der Kettenregel aufgetrennt werden :b
Formel: aufgespaltener Gradient
Der zweite Faktor ergibt
Formel : 2. Faktor
Den ersten Faktor kann man umbenennen :
Formel : 1.Faktor
Dann gilt :
 Formel : Gradient neu
Um die 'Schrittweite' eines Berechnungsschrittes steuern zu können, wird noch eine (hier konstante) Lernrate (ein konstanter Faktor) hinzugefügt.
Formel : Delta W
Den Deltaterm kann man noch ausrechnen. Es ergibt sich :
Formel :Deltaterm , falls es sich um ein Ausgabeneuron handelt und
Formel : Deltaterm , falls es sich um ein verstecktes oder Eingabeneuron handelt.

Der Trainingsalgorithmus
Der Trainingsalgorithmus minimiert den Fehler auf den Trainingsdaten.

  1. die Gewichtsmatrix wird zufällig initialisiert
  2. ein EingabeVektor der Trainingsmenge wird an das Netz angelegt
  3. die Ausgabe wird berechnet
  4. der Deltaterm wird für die Ausgabeneuronen bestimmt
  5. schichtenweise werden die restlichen Deltaterme bestimmt
  6. die Gewichte werden ensprechend verändert
  7. solange Fehler auf Trainingsmenge zu groß mache bei Schritt 2 weiter

Probleme
Backpropagation garantiert wie jedes Gradientenabstiegsverfahren keine globale Optimierung. Das Verfahren kann in lokalen Minima steckenbleiben. [ Auch eine ganz blöde Eigenschaft : befindet sich die zu minimierende Fehlerfunktion gerade in einem Maximum, so ist der Gradient und damit auch die Gewichtsänderung 0, womit das Verfahren steckenbleibt ] Auf Plateaus bleibt das Verfahren stecken oder kommt nur sehr langsam voran, da der Gradient sehr klein ist. Ein anderes Problem stellen Schluchten dar, wo das Verfahren von einer Wand an die andere springen kann und so das Tal nicht erreicht (Oszillation).
wichtige Konfigurationsparameter
Lernrate
Netztopologie

Erweiterungen zu Backpropagation
Der Momentum-Term :
Der Momentum-Term versucht das Oszillationsproblem in Schluchten zu lösen, in dem die aktuelle Gewichtsänderung von der zuletzt gemachten abhängig gemacht wird. Die letzte Gewichtänderung wird dabei mit einem Faktor multipliziert und zur 'normalen' Gewichtsänderung hinzuaddiert. Dieser Faktor ist sorgfältig zu wählen.

Der Gradient-Reuse-Algorithmus
Wie der Name sagt, wird der berechnete Gradient wiederverwendet. (Sonst funktioniert das Ganze wie Backpropagation). Die Idee dieses Algorithmus ist relativ einfach : Die einmal berechnete Gewichtsänderung wird solange verwendet, wie die Fehlerfunktion weiter minimiert wird. Dadurch kann man sich die aufwendige Berechnung der Deltas oft sparen. So kann dieser Algorithmus die Konvergenzgeschwindigkeit von Backpropagation erhöhen.