Backpropagation-Netze
Die Mehrzahl der Anwendungen neuronaler Netze verwendet den "Backpropagation"-Algorithmus. Dieser Algorithmus repräsentiert keine spezielle Netzwerkarchitektur - meist wird ein Mehrschichtennetz eingesetzt -, sondern ist ein besonderes Lernverfahren. Obwohl diese Methode erst 1986 durch Rumelhart, Hinton und Williams eingeführt wurde, gewann sie sofort große Popularität und trug entscheidend zum Siegeszug der neuronalen Netze bei. So ergab sich bei einer vor gut zwei Jahren durchgeführten Analyse aller Veröffentlichungen über den Einsatz neuronaler Netze in der Chemie, daß der Backpropagation-Algorithmus bei 90% der Arbeiten verwendet wurde.
Die Attraktivität des Lernens durch Backpropagation kommt dadurch zustande, daß die Korrekturen der Gewichte des neuronalen Netzes mit wohldefinierten Gleichungen berechnet werden können. Allerdings existiert zwischen dieser Prozedur zur Fehlerkorrektur und den Prozessen, die bei der Änderung der Synapsenstärken im biologischen System ablaufen, kaum eine Analogie.
Der Backpropagation-Algorithmus wird bei Ein- und Mehrschichtennetzen angewendet und ist ein Lernverfahren mit Unterweisung (supervised learning). Die Eingabedaten werden über die Schichten hinweggeschickt; die Ausgabedaten einer Schicht l, Outl, sind die Eingabedaten Xl+1 der Schicht l+1. Aus der letzten Schicht sollten eigentlich die für die Eingabedaten zu erwartenden Ergebnisse erhalten werden. Zunächst wird dies noch nicht der Fall sein. Die Ausgabedaten, Outlast der letzten Schicht werden deshalb mit den Erwartungswerten Y verglichen und daraus ein Fehler ermittelt. Dieser Fehler wird nun verwendet, um die Gewichte der Ausgabeschicht zu korrigieren. Dann werden die Gewichte der vorletzten Schicht unter Berücksichtigung des Fehlers in der letzten Schicht korrigiert, und so werden die Fehler schichtweise von unten nach oben durchgeschleust und zur Berechnung der Korrekturen der Gewichte herangezogen (s. Abbildung). Der Fehler wandert also gegenläufig zu den Eingabedaten, daher der Name Backpropagation oder, wie bereits salopp formuliert, "Fehlerkorrektur im Rückwärtsgang". Im folgenden werden nur die Grundzüge des Backpropagation- Algorithmus aufgezeigt; für eine ausführliche Ableitung muß auf die Literatur verwiesen werden).

Das Lernverfahren des Backpropagation Algorithmus. Die Gewichte werden durch Rückführung des Fehlers korrigiert
Der Backpropagation-Algorithmus soll die Gewichte so verändern, daß der Fehler für die Ausgabewerte Out minimal wird, d.h. daß diese möglichst gut mit den vorgegebenen Werten Y übereinstimmen.
In der letzten Schicht kann der Fehler direkt bestimmt werden, denn der Wert Y, der in der Ausgabeschicht erwartet wird, ist ja bekannt. Die Gewichtsänderungen der letzten Schicht, Dwjilast, werden durch Ableiten des Fehlers e nach den einzelnen Gewichten bestimmt:

Die führt aufgrund der Kettenregel zu den folgenden Gleichungen. h ist dabei ein Parameter, die Lernrate, dessen Wert vorgegeben werden kann. Er bestimmt, wie rasch ein neuronales Netz lernt. Gewöhnlich wird für ihn ein Wert zwischen 0,1 und 0,9 gewählt.


In den Zwischenschichten ist der Fehler dagegen nicht direkt bekannt, denn man weiß ja gar nicht welche Ausgabewerte Outl aus den Zwischenschichten kommen sollen. Hier wird nun angenommen, daß sich der Fehler aus der darunterliegenden Schicht gleichmäßig über alle Verbindungen zur darüberliegenden Schicht verteilt hat. Damit kann der Fehler in einer Schicht jeweils aus dem Fehler der darunterliegenden Schicht berechnet werden. Dies ist die Grundlage des Backpropagation-Algorithmus: Der Fehler wird durch die einzelnen Schichten zurückgetragen ("backpropagation of errors"), und damit werden die Gewichte der einzelnen Schichten korrigiert.
Insgesamt ergibt sich für die Korrektur der Gewichte einer Schicht die geschlossene Form:

Häufig werden bei der Korrektur der Gewichte auch noch die Änderungen der Gewichte im vorhergehenden Cyclus (previous) mitberücksichtigt. Dies geschieht dadurch, daß die Gleichung noch um den additiven Beitrag mDwjil(previous) erweitert wird.
Der Parameter m ist das Vergessensmoment.
Er bestimmt, wie stark vorhergehende Gewichtsänderungen mitberücksichtigt
werden sollen, d.h. er verleiht dem Lernvorgang ein gewisses Beharrungsvermögen.
Je kleiner m ist, um so rascher werden vorhergehende Änderungen
der Gewichte wieder vergessen. Man kann zeigen, daß die Summe
von h+m ungefähr bei 1 liegen soll.
© Prof. Dr. J. Gasteiger, Dr. Th. Engel, CCC Univ. Erlangen, Thu Apr 15 06:31:58 2004 GMT
BMBF-Leitprojekt Vernetztes Studium - Chemie
|