Kurs:Maschinelles Lernen/Neuronale Netze trainieren

Aus Wikiversity

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.