next up previous contents
Nächste Seite: Statische Netzwerke mit interner Aufwärts: Statische Netzwerke Vorherige Seite: Statische Netzwerke   Inhalt

Statische Netze ohne Rückkopplung

Zunächst definieren wir, was wir bei einem gegebenen Netz unter einer Lage verstehen.

Die erste Lage ist die Menge aller Eingabeknoten. Die $n$-te Lage ist die Menge aller Knoten, zu denen ausgehend von der ersten Lage mindestens ein Kantenpfad der Länge $n-1$ führt, aber kein Kantenpfad der Länge $m \geq n$.

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 $R^m$ wird an der aus $m$ Knoten bestehenden Eingabelage angelegt, die Aktivation der Eingabeknoten ist gleich ihrer Eingabe. In sukzessiver Manier berechnet jeder Knoten $k$ einer Lage $n$ die gewichtete Summe der Aktivationen von Knoten aus Lagen mit Nummern kleiner als $n$ (sofern er von diesen Verbindungen erhält), und übergibt das Resultat einer monoton wachsenden differenzierbaren Aktivierungsfunktion, welche zur Berechnung der Knotenausgabe von $k$ 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 $x$ in der Ausgabelage und dem durch einen wohlinformierten Lehrer definierten gewünschten Ausgabevektor $d$ offenbar. Das Problem besteht nun darin, eine Fehlerfunktion zu minimieren, die diese Diskrepanz zum Ausdruck bringt. Typischerweise verwendet man als Fehlerfunktion $ \Vert d -x \Vert^{2}$ und berechnet ihren Gradienten bezüglich der Gewichte. Eine Lernregel kommt zur Anwendung und wirkt sich auf die Gewichte aus:


\begin{displaymath}\triangle w = -\eta
\left(
\frac{\partial \Vert d -x \Vert^{2}}{\partial w}
\right)^T . \end{displaymath}

Dabei ist $w$ der Gewichtsvektor des Netzes, $\triangle w$ ist die von der Lernregel induzierte Gewichtsänderung, und $\eta$ 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 $k$ einer Lage $n$ die gewichtete Summe der Fehlersignale von Knoten aus Lagen mit Nummern größer als $n$. Um sein eigenes Fehlersignal zu erhalten, multipliziert $k$ 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.


next up previous contents
Nächste Seite: Statische Netzwerke mit interner Aufwärts: Statische Netzwerke Vorherige Seite: Statische Netzwerke   Inhalt
Juergen Schmidhuber 2003-02-20


Related links in English: Recurrent neural networks - Subgoal learning - Reinforcement learning and POMDPs - Reinforcement learning economies - Selective attention
Deutsche Heimseite