Trainingsphase

Zur Wiederholung: Ist ein Datensatz zum Trainieren und Testen eines neuronalen Netzes zur Lösung einer Klassifikationsaufgabe bekannt, so werden die Objekte (Zeilen) des Datensatzes zufällig aufgeteilt in Trainingsdaten und Testdaten. Die Trainingsdaten werden dann verwendet, um das neuronale Netz zu trainieren. Dies bedeutet, dass die Gewichte und Schwellwerte des neuronalen Netzes derart bestimmt werden, sodass die Ausgangssignale der am neuronalen Netz ausgewerteten Eingangssignale möglichst dem jeweils gewünschten Ausgangssignal entsprechen.

Die Trainingsphase ist ein iterativer Prozess: Es werden zahlreiche Rechen- bzw. Iterationsschritte wiederholt durchgeführt, in denen die Gewichte und Schwellwerte jeweils leicht angepasst werden. Erst wenn eine ausreichend große Anzahl an Iterationsschritten durchgeführt wurde und die Gewichte und Schwellwerte bezogen auf die Trainingsdaten möglichst gut eingestellt sind, sollte die Trainingsphase beendet werden.

Aufgrund der Komplexität können wir an dieser Stelle nicht genauer darauf eingehen, welche mathematischen Berechnungen in jedem Iterationsschritt durchgeführt werden. Für Fortgeschrittene in einem Satz: Es handelt sich im Wesentlichen um ein nichtlineares Optimierungsproblem, welches mit einem Gradientenabstiegsverfahren iterativ gelöst wird.

Nicht nur nach der Trainingsphase, sondern nach jedem beliebigen Iterationsschritt können die Testdaten verwendet werden, um das neuronale Netz zu testen. Dabei wird gezählt, wie viele Testobjekte korrekt klassifiziert werden (wobei wie gehabt als Ergebnis des neuronalen Netzes jeweils die Farbe bzw. das Neuron gewählt wird, das den größten Wert hat).

Wichtig ist schließlich noch folgende Bemerkung:

In jedem Iterationsschritt spielen zufällige Entscheidungen eine Rolle. Das ist einer von mehreren Gründen dafür, dass sich die Vorhersagegenauigkeit eines neuronalen Netzes zwischenzeitlich durchaus verschlechtern kann, wobei sie sich auf lange Sicht gesehen im Durchschnitt jedoch verbessern sollte.

Alles das, war zuvor beschrieben wurde, demonstriert die folgende Anwendung. Dazu wurde wie im vorherigen Abschnitt beschrieben ein Datensatz bestehend aus 2000 Punkten erzeugt, der zufällig in Trainings- und Testdaten aufgeteilt wird (jeweils 1000 Punkte). Es lässt sich beobachten, wie sich die Gewichte und Schwellwerte verändern und wie groß der Anteil der korrekt klassifizierten Testdaten ist. Ein abschließender Hinweis dazu:

Beim Initialisieren (d.h. vor dem ersten Iterationsschritt der Trainingsphase) werden sämtliche Gewichte und Schwellwerte des neuronalen Netzes auf einen zufälligen Zahlenwert zwischen -1 und 1 gesetzt.

Anwendung
Es wird ein neuronales Netz zur Klassifikation von Punkten wie zuvor beschrieben trainiert und getestet.
Aufgabe
  1. Mache dich mit der Anwendung zuvor vertraut. Führe eine erste Trainingsphase durch und schaue, ob du verstehst, was genau dargestellt wird. Falls nicht, lies dir die Hinweise zuvor nochmals in Ruhe durch.
  2. Führe mehrfach einen Neustart und eine jeweils ausreichend lange Trainingsphase durch. Was ist das beste Ergebnis, das du erreichen konntest (bezogen auf den Anteil der korrekt klassifizierten Testobjekte)? Wie viele Iterationsschritte waren dafür notwendig?
Quiz
Visualisierung