Obwohl dieser Algorithmus bereits 1974 von P.Werbos [38] vorgestellt
wurde, verhalf ihm erst 1986 die Wiederentdeckung von McClelland und Rumelhart
[39] zum Durchbruch. Erst die erheblich gestiegene und
preisgünstigere Rechenkapazität gegenüber den 70er Jahren ermöglichte es,
diesen Algorithmus erfolgreich auf eine Vielzahl sehr unterschiedlicher
Probleme anzuwenden. Seine Überlegenheit gegenüber früheren Konzepten beruht auf der
Möglichkeit, Gewichte in verborgenen Schichten mehrlagiger Netze zu
adjustieren. Im folgenden sei der Algorithmus für ein dreilagiges Netz mit den
Bezeichnungen aus Abb
beschrieben; eine Erweiterung auf mehrere
Schichten ist leicht zu realisieren.
Figure: Ein dreilagiges Feedforward-Netzwerk.
ist der Eingabevektor,
der Ausgabevektor und
der
Ausgabevektor der Hidden-Layer. Die Gewichte zwischen den einzelnen Schichten
können durch Matrizen
bzw.
beschrieben werden.
Gehen wir von Gleichung (
) aus. Der Schwellwert
läßt
sich in den Gewichtsvektor integrieren, indem wir einen zusätzlichen
Eingabeknoten mit konstantem Wert
hinzufügen.
Damit berechnet sich die Aktivität eines Neurons aus der Hidden-Layer
und
aus der Output-Layer
zu

wobei
der Anzahl der versteckten Knoten und n der Dimension des
Eingaberaums entspricht.
ist eine sigmoidale
Aktivierungsfunktion, häufig wird die Fermifunktion benutzt wegen
ihres einfachen Zusammenhangs mit ihrer Ableitung.
Ziel des Backpropagation-Lernalgorithmus(BPG) ist es, das globale Minimum der in
(
) definierten Funktion
mittels eines Gradientenabstiegsverfahrens
zu finden. Wie bei jeder Gradientenmethode steht die Wahl des Startpunkts zur
Diskussion. Es genügt meistens, die Gewichte
mit zufälligen Werten aus
einem Intervall
zu initialisieren, um Symmetrien
zwischen verschiedenen Gewichtsvektoren aufzuheben.
In einer Abänderung des Algorithmus (Online-Updating) kann die
Veränderung der Gewichte auch Muster für Muster vorgenommen werden. Dann
entfällt in (
) der Index
. Für die ursprüngliche Form des
Algorithmus (Offline-Updating) ist im folgenden der Term
um die Summation über alle Muster zu ergänzen. Beim Online-Updating wird in jedem
Lernschritt ein Muster zufällig aus der Trainingsmenge herausgegriffen und
berechnet. Daraus ergibt sich ein Fehler von
. Jetzt wird der Fehlergradient Schicht für Schicht
zurückverfolgt (daher der Name des Algorithmus). Zuerst werden die Gewichte
zwischen Ausgabe- und versteckter Schicht in Richtung des stärksten Abstiegs
auf der Oberfläche der Fehlerfunktion abgeändert:

Damit ist auch klar, warum eine sigmoidale Aktivierungsfunktion gebraucht wird;
ist für solche Funktionen positiv und nur in einem bestimmten
dynamischen Intervall wesentlich von
verschieden. Mit Hilfe der Kettenregel
ergeben sich die nachfolgenden
Gewichtsänderungen zwischen Eingabe- und versteckter Schicht

Eine Wiederholung der Prozedur für etwaige nachfolgende versteckte
Schichten läuft nach demselben Schema ab.
Die Schrittweite
wird als Lernparameter bezeichnet. Seine Größe ist nicht
aus dem Algorithmus ableitbar und muß für jedes Problem neu ermittelt werden.
Erfahrungsgemäß ist sein Einfluß zwar groß auf die Lerngeschwindigkeit,
günstigerweise aber weniger auf die erreichbare Leistungsfähigkeit.
Das Hinzuaddieren der Gewichtsänderungen
