In diesem Exkurs möchten wir eine Idee davon geben, wie die Trainingsphase als Optimierungsaufgabe formuliert werden kann. Dieser Abschnitt dient als weiterführende Hintergrundinformation, die Inhalte sind weder zum Verständnis der nachfolgenden Abschnitte notwendig noch werden sie in den Lernzielkontrollen abgefragt. Vorausgesetzt werden mathematische Kenntnisse wie Summenschreibweise, Vektoren, Funktionen mit mehreren Variablen sowie Gradienten.
Falls du an dem Exkurs kein Interesse hast, kannst du diesen Abschnitt direkt überspringen. Du solltest den Abschnitt aber dennoch als erledigt markieren.
Exemplarisch betrachten wir ein neuronales Netz bestehend aus zwei Eingangsneuronen (x- und y-Koordinaten) sowie drei Ausgangsneuronen (rot, grün und blau):
Die einzelnen Datensätze der Trainingsmenge seien gegeben durch einen Vektor mit fünf Einträgen:
Dabei sind und die Werte der Eingangsneuronen (Koordinaten der Punkte) und das (bekannte) Klassifikationsergebnis wird folgendermaßen beschrieben: Genau eine der drei Variablen ist 1, die anderen beiden sind 0. Dabei ist genau die Variable gleich 1, welche das Klassifikationsergebnis beschreibt. Beispielsweise bedeutet
dass die Eingangsdaten bzw. der Punkt zur Klasse blau gehört.
Das Ziel der Trainingsphase ist es, die Gewichte bis sowie die Schwellwerte bis derart zu bestimmen, sodass die Klassifikationsaufgabe (bezogen auf die Trainingsdaten) möglichst gut gelöst wird.
Unter Verwendung einer geeigneten Aktivierungsfunktion gilt also im besten Falle für alle Trainingsdaten :
Allerdings wird es im Allgemeinen gar nicht möglich sein, dass diese drei Gleichungen für alle Trainingsdaten (bzw. Punkte) exakt erfüllt sind. Stattdessen sollen die Gewichte und Schwellwerte derart bestimmt werden, sodass die Summe der quadratischen Abweichungen über allen Trainingsdaten möglichst klein ist. Unter Verwendung von
sind die Gewichte bis sowie die Schwellwerte bis derart zu bestimmen, sodass
möglichst klein ist. Dabei ist die Summe über alle Objekte der Trainingmenge zu verstehen. Wir haben somit eine Optimierungsaufgabe bezüglich der Zielfunktion
hergeleitet. Nun gibt es unterschiedliche Verfahren der nichtlinearen Optimierung, sodass ein (zumindest lokales) Minimum dieser Funktion bestimmt werden kann. Bei neuronalen Netzen kommt hier unter dem Begriff Backpropagation häufig das Gradientenabstiegsverfahren zum Einsatz. Dieses setzt jedoch voraus, dass die Zielfunktion stetig differenzierbar ist. Und das ist der Fall, falls als Aktivierungsfunktion die Sigmoid-Funktion (oder eine andere stetig differenzierbare Funktion) verwendet wird.
Um schließlich die Idee des Gradientenabstiegsverfahrens zu veranschaulichen, zeigt die folgende Abbildung eine (stetig differenzierbare) Funktion mit einer Variablen (z.B. ein Gewicht):
Um ausgehend von einem Startwert (rote Punkte) Schritt für Schritt einem (lokalen) Minimum näherzukommen, wird die Ableitung (bzw. der Gradient) bestimmt. Nun zeigt der negative Gradient stets in Richtung des steilsten Abstiegs (schwarze Pfeile), im Eindimensionalen ebenso wie im Mehrdimensionalen. Um einem (lokalen) Minimum näherzukommen, müssen wir uns also (gemäß einer Lernrate oder Schrittweite) in Richtung des steilsten Abstiegs bewegen. Diese Vorgehensweise wird Schritt für Schritt wiederholt, wobei es durchaus vorkommen kann, dass wir uns zwischenzeitlich auch ein wenig verschlechtern. Dies hat jedoch den Vorteil, dass das Verfahren nicht im erstbesten lokalen Minimum hängenbleibt.
Zusammenfassend haben wir einen Eindruck davon gewonnen, wie die Trainingsphase eines neuronalen Netzes durchgeführt werden kann. Die Vorgehensweise lässt sich auf beliebig komplexe Netze übertragen.
Da es sich beim Gradientenabstiegsverfahren um ein iteratives Verfahren handelt, ist die Anzahl der Iterationen ein wesentlicher Parameter der Trainingsphase. Und genau darauf gehen wir im folgenden Abschnitt ein.