Optimierungsproblem: Training von FNNs

Wir werden zeigen, dass das Training eines FNNs ein Optimierungsproblem ist.

Die mathematische Funktion eines FNNs

Ein Feedforward-Neural Network (FNN) realisiert eine Funktion . Z. B. realisiert das folgende FNN eine Funktion

Während des Trainings werden die Parameter (Gewichte und Bias-Werte) so angepasst, dass die Trainingsdatenpaare möglichst gut vorhergesagt werden, wobei und .

Alle Parameter fassen wir zusammen im Tupel .

Die Funktionsgleichung des oben dargestellten FNNs ergibt sich zu

Hierbei ist zu beachten, dass die Eingabeschicht nicht aus Neuronen besteht, sondern nur die Eingaben darstellt. Die Funktionen repräsentieren Netzzugangs-Werte innerhalb der Schicht berechnet

Für die formale Variable der Funktion wird also der Ausgangsvektor der Schicht davor eingestzt:

Die Funktionen sind die Aktivierungsfunktionen der Schicht .

In die Aktivierungsfunktionen werden also die Werte der Netzzugangs-schicht eingesetzt.

Training eines FNNs

Um ein FNN an einen Trainingsdatensatz bestehend aus den Eingaben und den zugehörigen Ausgaaben anzupassen, müssen seine Parameter so angepasst werden, dass es gute Vorhersagen macht. Aus Trainingssicht ist der Optimalfall, das gilt:

Dass dies vermutlich sogar ein Overfitting darstellt, wird im Abschnitt ... analysiert. Ein üblicher Ansatz beim Training neuronaler Netze ist es, zufällige Startwerte für die Parameter zu wählen (mit einer Verteilung die zum jeweiligen Modell und Ziel passt) und diese Paramter dann schrittweise so zu verändern, dass der Vorhergesagte Wert dem Zielwert näher kommt.

Lossfunktion / Kostenfunktion

Hierbei muss festgelegt werden, was unter dem Fehler zu verstehen ist. Für einen einzelnen Eingabevektor kann z. B. die quadierte Metrik der 2er-Norm gewählt werden:

Der Fehler auf dem gesamten Trainingsdatensatz kann dann z. B. als arithmetisches Mittel dieser Einzelkosten gebildet werden:

Dieses konkrete äußere Fehlermaß nennt man MSE (Mean Squared Errors). Mit "außen" ist gemeint, dass es sich in der Verkettung um die äußere Funktion handelt. Das äußere Fehlermaß ist also die Verkettung der Einzelkostenfunktion angewendet auf jede Einzelabweichung mit der Mittelwertbildung und nicht nur die Mittelwertbildung.

Setzt man nun die Funktion des FNNs ein, so erhält man als Gesamtfehler:

Sowohl die Einzelkostenfunktion als auch das Äußeres Fehlermaß "E_c" als auch die Gesamtkostenfunktion des Trainings werden manchmal als Loss-Funktion bezeichnet, so dass man sich dann aus dem Zusammenhang erschließen muss, was gerade gemeint ist. Wir wollen im weiteren aber die Begriffe strikt trennen.

Für gute Trainingsergebnisse muss in der Regel die äußere Fehlerfunktion passend zur Aktivierungsfunktion der Ausgabeschicht gewählt werden:

AufgabeAusgabeaktivierungZielcodierungEinzelkosten
RegressionMSE, MAE, Huber
BinärSigmoidBinary Cross-Entropy
Single-Label, KlassenSoftmaxOne-HotCategorical Cross-Entropy
Multi-Label, KlassenSigmoid je KlasseMulti-HotBinary Cross-Entropy je Klasse

Auf die einzelnen Funktionen und Fälle werden wir noch eingehen.

Optimierungsproblem

Beim Training liegt der Treainingsdatensatz fest vor. Die Parameter sollen hingegen ermittelt werden. Es ist je nach Größe und Topologie des FNNs nicht gesichert, dass es überhaupt einen Satz von Parametern so gibt, dass , und wenn, dann wären die Parameter dadurch i. A. nicht eindeutig bestimmt. Auch soll kein Overfitting angestrebt werden.

Statt dessen wird die Zielfunktion schrittweise "minimiert" bzw. einem Minimum entgegen gestrebt. Hierbei werden in der Funktion des FNNs nicht die Eingaben sondern die Parameter variiert:

Die Zielfunktion bei gegenbenem Trainingsdatensatz ist also eine Funktion in Abhängigkeit von den Parametern:

Das Training des FNNs besteht also darin, Parameter (\theta) zu finden, für die diese Kostenfunktion möglichst klein wird. Das zugehörige Optimierungsproblem lautet daher:

In der Praxis wird dieses Optimierungsproblem meist nicht exakt gelöst. Stattdessen wird mit einem iterativen Optimierungsverfahren, z. B. Gradientenabstieg oder einer Variante davon, ein Parameterwert gesucht, für den hinreichend klein ist.