Die erste Lage ist die Menge aller Eingabeknoten.
Die -te Lage ist die Menge aller Knoten, zu denen ausgehend von der
ersten Lage mindestens ein Kantenpfad der Länge
führt, aber
kein Kantenpfad der Länge
.
Der Sinn dieser Definition ist, auch direkte Verbindungen (`Abkürzungen') zwischen nicht aufeinanderfolgenden Lagen in angemessener Weise zu berücksichtigen.
Die Lage mit der höchsten Nummer wird meist als Ausgabelage benutzt. Eine Aktivationsausbreitungsphase verläuft wie folgt (alle zum Algorithmus gehörigen Aussagen werden in Schrägdruck wiedergegeben):
Ein Eingabemuster aus dem
wird an der aus
Knoten bestehenden Eingabelage
angelegt, die Aktivation der Eingabeknoten
ist gleich ihrer Eingabe. In sukzessiver Manier berechnet
jeder Knoten
einer Lage
die gewichtete Summe der Aktivationen von
Knoten aus Lagen mit Nummern kleiner als
(sofern er von
diesen Verbindungen erhält), und übergibt das Resultat
einer monoton wachsenden differenzierbaren Aktivierungsfunktion, welche zur
Berechnung der Knotenausgabe von
dient.
Offensichtlich dürfen nicht alle Knoten parallel behandelt werden, sondern nur die jeweils zu einer Lage gehörigen.
Nach Abschluß der Ausbreitungsphase wird in der Regel eine Diskrepanz
zwischen dem tatsächlichen Ausgabevektor in der
Ausgabelage und dem durch
einen wohlinformierten Lehrer definierten gewünschten Ausgabevektor
offenbar. Das Problem besteht nun darin, eine Fehlerfunktion zu minimieren, die
diese Diskrepanz zum Ausdruck bringt. Typischerweise verwendet man
als Fehlerfunktion
und berechnet ihren Gradienten
bezüglich der Gewichte.
Eine Lernregel kommt zur Anwendung und wirkt
sich auf die Gewichte aus:
Dabei ist der Gewichtsvektor des Netzes,
ist
die von der Lernregel induzierte Gewichtsänderung, und
ist eine positive Lernrate.
Bei obiger Formel haben wir uns die Indizes erspart, die für die Unterscheidung verschiedener Musterpaare notwendig wären. Meist soll jedoch ein und dasselbe Netz trainiert werden, viele verschiedene Musterassoziationen abzuspeichern. Hat man also ein Ensemble von zu erlernenden Ein-/Ausgabeassoziationen, so wird als Gesamtfehlerfunktion die Summe der zu den jeweiligen Musterpaaren gehörigen Fehlerfunktionen verwendet. Da der Gradient der Summe gleich der Summe der Gradienten ist, ändert sich für ein Musterpaar im wesentlichen nichts an der im folgenden beschriebenen Fortführung des Lernalgorithmus, welche sich an die oben beschriebene Ausbreitungsphase anschließt:
Die Richtungen
aller Verbindungen im Netz werden umgekehrt. Die Fehlerdifferenzen
werden an der Ausgabelage angelegt und jeweils multipliziert
mit der Ableitung der Aktivierungsfunktion an der Stelle, die durch
die Aktivationsausbreitungsphase bestimmt wurde.
Die Fehlersignale der Ausgabeknoten
sind damit definiert. In sukzessiv absteigender Manier berechnet
jeder Knoten einer Lage
die gewichtete Summe der Fehlersignale von
Knoten aus Lagen mit Nummern größer als
. Um sein
eigenes Fehlersignal zu erhalten, multipliziert
das Resultat
mit der Ableitung der Aktivierungsfunktion an der Stelle, die durch
die Aktivationsausbreitungsphase bestimmt wurde.
Offensichtlich muß sich also jeder Knoten aus der ersten Phase noch seine Aktivation gemerkt haben. Wiederum dürfen nicht alle Knoten parallel behandelt werden, sondern nur die jeweils zu einer Lage gehörigen. Man beachte die fast vollständige Symmetrie zwischen Vorwärts- und Rückwärtsausbreitung.
Schließlich ändert sich jedes Gewicht proportional zur Aktivation seines Quellknotens und zum Fehler seines Zielknotens.
Das Resultat ist im wesentlichen ein Gradientenabstieg im Gewichtsraum, wie er durch obige Gleichung gefordert wird. (Mathematisch gerechtfertigt wären Gewichtsänderungen eigentlich erst am Ende der Gradientenberechnung für alle einzulernenden Musterassoziationen, nicht schon nach jeder Musterpräsentation. In der Praxis nimmt man jedoch oft mit Erfolg an, daß die Lernrate klein genug ist, um Instabilitäten zu vermeiden.)
Spezialfälle dieses Algorithmus (für 2-lagige Netzwerke) wurden bereits in den 60er Jahren gefunden. Werbos [72] beschrieb als erster den allgemeineren Fall, welcher `versteckte Knoten' (hidden units) erlaubt. Der Algorithmus mußte jedoch dreimal wiederentdeckt werden [35][25][44], bevor er einer breiteren Öffentlichkeit bekannt wurde. Heute verwendet die überwiegende Mehrzahl der Anwender und auch der Forscher Varianten dieses Verfahrens, obwohl es in mancher Hinsicht äußerst unbefriedigend ist. So ist es zum Beispiel in offensichtlicher Weise nicht im engeren Sinne lokal in Zeit und Raum. Eine globale Instanz muß darüber wachen, ob die Ausbreitungsphase abzuschließen ist und die Rückphase anzufangen hat, wann welcher Knoten welche Berechnungen auszuführen hat, etc.etc. (Kapitel 4 dieser Dissertation beschreibt den ersten wirklich lokalen Lernalgorithmus für neuronale Netzwerke mit `versteckten Knoten').
Mittlerweile wurde einige Arbeit investiert, um das Gradientenabstiegsverfahren mit Hilfe von Verfahren der zweiten Ordnung zu beschleunigen ([36] und [9] sind nur zwei von vielen Referenzen zu diesem Thema). Statt in aufwendiger Weise zweite Ableitungen der Fehlerfunktion zu berechnen oder zu approximieren, kann man auch versuchen, durch große Sprünge im Gewichtsraum die Nullstellen der Fehlerfunktion zu finden [49]. Die entsprechende Methode wird im Anhang kurz umrissen.
Wie alle anderen werden auch wir das oben beschriebene Vefahren als `Back-Propagation' (BP) bezeichnen.