Lernprozess neuronaler Netze

Vorschau

Bisher haben wir den Aufbau neuronaler Netze kennengelernt, doch wie werden diese mit Daten trainiert? Genau diese Frage soll in der folgenden Lektion genauer erläutert werden.

Lernvorgang

Der Lernvorgang beim Deep Learning besteht darin, dass für beliebige Netze eine möglichst genaue Abbildung von gegebenen Eingabevektoren (z.B. Messdaten) auf gegebene Ausgabevektoren (z.B. Klassen) erreicht wird. Diese Abbildung bezeichnet man als Modell.

Die Herausforderung bei der Erstellung eines Modells besteht darin, dass die kontinuierliche Anpassung der Gewichte und die korrekte Wahl der Aktivierungsfunktionen für die jeweiligen Schichten möglichst viele der Eingabebeispiele (Daten) korrekt klassifizieren bzw. deren Werte ermittelt werden müssen. Damit das Modell seine Aufgabe lösen kann, werden anhand mathematischer Verfahren die Gewichtungen solange korrigiert, bis die erwarteten Ergebnisse unter eine definierte Fehlerschranke fallen. Aber wie lernt ein neuronales Netz aus Daten eigentlich? Das geschieht in dem folgenden iterativen Prozess:

  • Zuerst wird eine Struktur des künstlichen neuronalen Netzes (KNN) bestimmt. Die Bestimmung erfolgt nach Gefühl und basiert dabei auf Erfahrungen bestehender Modelle und deren Adaption.
  • Für den Lernprozess müssen Hyperparameter wie die Anzahl der Epochen festgelegt werden (wir gehen später genauer darauf ein).
  • Die Initialisierung des Netz erfolgt dadurch das Gewichtungen und Bias zufällig belegt werden.
  • Als nächstes werden dem Netz Trainingsdaten in einem Feed-Forward-Schritt als Eingabe in der Eingabeschicht präsentiert.
  • Während des Trainings werden die Ausgabedaten mit den Eingabedaten verglichen und eine Fehlerevaluation durchgeführt.
  • Wenn die Anzahl der Epochen und das Fehlerminimum noch nicht erreicht sind wird weiter angepasst.
  • Die Anpassung erfolgt als Backpropagation-Schritt, bei dem Anpassungen der Fehlerinformation von der Ausgabeschicht zur Eingabeschicht hin erfolgen. Der Backpropagation-Algorithmus verallgemeinert die Delta-Regel für beliebig viele Schichten.
  • Technisch werden dabei zu jeder Epoche, Teilmengen der Trainingsdaten durch das Netz geschleust. Diese Teilmengen nennt man Batch.

Diesen wiederkehrenden Prozess, bis alle definierten Epochen durchlaufen sind oder das Fehlerminimum erreicht wurde, nennt man einen Trainingszyklus.

Gradientenverfahren

Die Hauptidee des Gradientenverfahrens ist es, durch kleine Korrekturen an den Parameter die Fehlerfunktion zu minimieren. Im Prinzip verhält es sich wie bei einem Spaziergang im Gebirge, wobei bei völligem Nebel. Die Strategie ist es durch vorsichtiges Tasten herauszubekommen wo um einen herum der steilste Abstieg nach unten liegt. Schrittweise nähern wir uns dann dem Tal. In einer derartigen Hügellandschaft kann es sein, dass wir nicht den tiefsten Punkt erreichen, sondern zwischen weiteren Hügeln bleiben. Genau so verhält sich auch die Optimierung in neuronalen Netzen.

In der Abbildung oben anbei ist eine Kugel dargestellt, wenn diese zu rollen beginnt wird sie in das nächste Tal rollen. Wir wissen aber nicht ob hinter dem ersten Tal noch ein tiefer gelegenes liegt. Genau das ist die Problemstellung.

Für ein neuronales Netz bedeutet das, dass wir unter Umständen das Modell nochmals neu berechnen müssen, um etwaige bessere Anpassungen zu erreichen. Auch bei uns Menschen ist es ähnlich, erinnern Sie sich doch einfach an das Erlernen von Fahrradfahren. Anfangs ist es noch etwas holprig und von Stürzen begleitet. Durch das erneute Aufsteigen und Fahren wird es aber immer besser. Mit der Zeit reichen dann die Fertigkeiten aus, um heile an sein Ziel zu kommen.

Zurück zu: Machine Learning Diagnostik > 020 Grundlagen