Kurs:Maschinelles Lernen/Neuronale Netze trainieren

Vorherige Seite: K4 - Grundidee der Neuronalen Netze
Nächste Seite : K5 - k-Means Algorithmus

Gradientenabstieg Bearbeiten

Auch zum Trainieren Neuronaler Netze kann das Empirische Risiko   bei einem vorliegenden Datensatz mit Hilfe des Gradientenabstiegs trainiert werden. Da die Gewichte der einzelnen Schichten, die Parameter, die varriert werden, darstellen, müssen die Gradienten bzgl. dieser bestimmt werden. Da nun aber das Neuronale Netz durch eine Verkettung von Funktionen beschrieben wird, ist hierfür vor allem die allgemeine Kettenregel

 

benötigt.

Back Propagation Bearbeiten

Um dies an einem Beispiel zu verdeutlichen wird ein Neuronales Netz mit   Schichten betrachtet. In der ersten Schicht wird ein zweidimensionaler Vektor angenommen und auf einen zweidimensionalen Vektor abgebildet  , während die zweite und letzte Schicht einen einen zweidimensionalen Vektor entgegen nimmt und auf ein Zahl   abbildet  .

Zunächst lässt sich der Gradient bzgl. des eindimensionalen Verzerrungswvektors   der letzten Schicht bestimmen. Die Abhängigkeit von diesem Vektor ist im empirischen Risiko im Ausgabewert   vorhanden, so dass zunächst

 

bestimmt werden kann. Da sich   durch

 

mit

 

ausdrücken lässt, kann so der Term

 

gefunden werden. In diesem speziellen Fall lässt sich dieser Term zwar allein durch die Ableitung der Aktivierungsfunktion bestimmen, es soll hier aber zunächst der allgemeinere Ausdruck

 

verwendet werden.

Da die Schicht   einen zweidimensionalen Vektor auf eine Zahl abbildet, können die Gewichte durch einen Vektor   dargestellt werden. Durch eine ähnliche Rechnung, kann so

 

gefunden werden. Hierin fällt auf, dass die ersten beiden Terme bereits für den Gradient bzgl.   bestimmt wurden. Das heißt, wird der Gradient bzgl.   ermittelt und die ersten beiden Terme berechnet, so müssen diese nicht erneut für den Gradienten bzgl.   bestimmt werden. Auf diese Weise lassen sich Ressourcen sparen.

In der Schicht   wird ein zweidimensionaler auf einen zweidimensionalen Vektor abgebildet. Es muss also ein Verzerrungsvektor   betrachtet werden. So kann für den Gradient bzgl. dieses Vektors zunächst der Ausdruck

 

gefunden werden. Da   von   und dieses wiederum von den   abhängt, kann dieser Ausdruck weiter auf

 

umgeformt werden. Auch hieran ist zu erkennen, dass die ersten beiden Terme wieder durch die vorherigen Berechnungen bekannt sind.

Schlussendlich ist noch der Gradient bezüglich der Matrixelemente   zu bestimmen. Mit einer Ähnlichen Rechnung, kann hier der Ausdruck

 

gefunden werden. Auch hier zeigt sich, bis auf die letzte Ableitung, ist der gesamte Term bekannt.

Mit diesen Erkenntnissen lässt sich ein ressourcenschonendes Verfahren zum Trainieren Neuronaler Netze motivieren:

  • In jedem Schritt, werden die aktuellen Gewichte und Daten verwendet und das Ergebnis des Neuronalen Netzes ausgewertet. Das bedeutet, die Daten werden nach vorne durch das Neuronale Netz gegeben, es wird dementsprechend von einem Forward pass gesprochen. Dabei müssen zwangsläufig für alle Schichten   und   bestimmt werden. Diese werden bereits gespeichert.
  • Danach wird das Neuronale Netz rückwärts durchlaufen und mit den gefundenen Werten für   und   ausgewertet. Die einzelnen Terme werden wieder gespeichert und können für Berechnungen weiterer Terme verwendet werden. Es wird hier von der Back Propagation gesprochen.
  • Sind alle Gradienten bestimmt, kann der Gradientenabstieg durchgeführt werden.