Neuronale Netze einfach erklärt

Seite 3: Training

Inhaltsverzeichnis

Die Frage ist jetzt, woher weiß das Netz, ob ein Hund oder eine Katze auf dem Bild ist? Wo ist diese Information gespeichert? Hier kommt den Gewichten zwischen den einzelnen Neuronen die entscheidende Rolle zu. Diese bestimmen, wieviel Informationen wohin weitergegeben werden und was letztlich nach vielen Rechenschritten an den Ausgangsneuronen ausgegeben wird. Die Gewichte enthalten quasi die Koeffizienten (oder Parameter) des Algorithmus, während der Algorithmus durch die Art der Vernetzung der Neuronen und deren Aktivierungsfunktion festgelegt ist. Die spannende Frage ist: wie werden die Gewichte ermittelt?

Genau dies geschieht im sogenannten Training, welches im Folgenden vorgestellt wird. Gehen wir zunächst einmal davon aus, dass alle Gewichte zufällig initialisiert wurden. Das bedeutet auch, das bei einem Eingangsbild auch ein zuerst zufälliges Ergebnis an den Ausgangsneuronen ankommt. In unserem Beispiel von Hund und Katze zeigen die Ausgangsneuronen also einen beliebigen Wert zwischen 0 und 1 an.

Jetzt benötigen wir die gelabelten Trainingsdaten, die wir uns im ersten Teil des Make-Artikels "KI für den ESP32" erzeugt haben. Wenn ich ein solches bekanntes Bild berechnen lasse, dann weiß ich, welches der korrekte Ausgangswert sein soll. Wenn man den errechneten Wert (zunächst erstmal zufällig) mit dem korrekten Ausgangswert vergleiche, kann ich die Abweichung beziehungsweise den Fehler berechnen. Anhand der Abweichungen kann man zunächst die Gewichte zwischen der letzten internen Schicht und den Ausgangsneuronen so anpassen, dass dieser Fehler kleiner wird.

Man kann auch die Fehler der letzten internen Neuronen berechnen und auf diesem Weg die Gewichte zur vorletzten Schicht anpassen und deren Fehler berechnen usw. Dies wiederholt man solange, bis man an den Eingangsneuron angekommen ist. Man durchläuft also das neuronale Netz entgegen der ursprünglichen Berechnung und korrigiert die Verbindungsgewichte. Man spricht hier von Backpropagation.

Wenn man diesen Ablauf nun auf mehrere Bilder immer wieder iterativ anwendet, so werden die Verbindungsgewichte zwischen den Neuronen immer weiter so angepasst, dass der Gesamtfehler (gemittelt über alle Bilder) immer kleiner wird. Prinzipiell kann der Fehler aber auch größer werden.