Ausgehend von der letzten Schicht differenziert ein „Rückwärtsdurchlauf“ die Verlustfunktion, um zu berechnen, wie jeder einzelne Parameter des Netzwerks zum Gesamtfehler für eine einzelne Eingabe beiträgt.
Um auf unser früheres Beispiel des Klassifizierungsmodells zurückzukommen: Wir beginnen mit den 5 Neuronen in der letzten Schicht, die wir Schicht L nennen. Der Softmax-Wert jedes Ausgabeneurons stellt die Wahrscheinlichkeit (von 1) dar, dass eine Eingabe zu ihrer Kategorie gehört. In einem perfekt trainierten Modell hätte das Neuron, das die korrekte Klassifizierung darstellt, einen Ausgabewert nahe 1 und die anderen Neuronen einen Ausgabewert nahe 0.
Im Moment konzentrieren wir uns auf die Ausgabeeinheit, die die korrekte Vorhersage darstellt, die wir Lc nennen.Die Aktivierungsfunktion von Lcist eine zusammengesetzte Funktion, die viele verschachtelte Aktivierungsfunktionen des gesamten neuronalen Netzes von der Eingabeschicht bis zur Ausgabeschicht enthält. Die Minimierung der Verlustfunktion würde bedeuten, dass im gesamten Netz Anpassungen vorgenommen werden müssten, die den Output der Aktivierungsfunktion von Lc näher an 1 bringen.
Um dies zu tun, müssen wir wissen, wie sich eine Änderung in den vorherigen Schichten auf die eigene Ausgabe von Lc auswirkt. Mit anderen Worten, wir müssen die partiellen Ableitungen der Aktivierungsfunktion von Lc finden.
Die Ausgabe der Aktivierungsfunktion von Lc hängt von den Beiträgen ab, die sie von Neuronen in der vorletzten Schicht erhält, die wir Schicht L-1 nennen.Eine Möglichkeit, die Ausgabe von Lc zu ändern, besteht darin, die Gewichtungen zwischen den Neuronen in L-1 und Lc zu ändern. Indem wir die partielle Ableitung jeder L-1-Gewichtung in Bezug auf die anderen Gewichtungen berechnen, können wir sehen, wie das Erhöhen oder Verringern einer von ihnen die Ausgabe von Lc näher an (oder weiter entfernt von) 1 bringt.
Aber das ist nicht die einzige Möglichkeit, die Ausgabe von Lc zu verändern. Die Beiträge, die Lc von L-1-Neuronen erhält, werden nicht nur durch die Gewichtungen bestimmt, die auf die Ausgabewerte von L-1 angewendet werden, sondern durch die tatsächlichen Ausgabewerte (vor der Gewichtung) selbst. Die Ausgabewerte der L-1-Neuronen wiederum werden durch Gewichtungen beeinflusst, die auf die Eingaben angewendet werden, die sie von L-2 erhalten.Wir können also die Aktivierungsfunktionen in L-1 differenzieren, um die partiellen Ableitungen der Gewichtungen zu finden, die auf die Beiträge von L-2 angewendet werden. Diese partiellen Ableitungen zeigen uns, wie sich jede Änderung an einer L-2-Gewichtung auf die Ausgaben in L-1 auswirkt, was sich anschließend auf den Ausgangswert von Lc und damit auf die Verlustfunktion auswirken würde.
Nach der gleichen Logik könnten wir auch die Ausgabewerte beeinflussen, die L-1-Neuronen von L-2-Neuronen erhalten, indem wir die Beiträge anpassen, die L-2-Neuronen von Neuronen in L-3 erhalten. Wir finden also die partiellen Ableitungen in L-3 und so weiter, wobei wir diesen Prozess rekursiv wiederholen, bis wir die Eingabeschicht erreicht haben. Wenn wir fertig sind, haben wir den Gradienten der Verlustfunktion: einen Vektor ihrer partiellen Ableitung für jeden Gewichtungs- und Verzerrungsparameter im Netz.
Wir haben jetzt einen Vorwärts- und einen Rückwärtsdurchlauf für ein einzelnes Trainingsbeispiel abgeschlossen. Unser Ziel ist es jedoch, das Modell so zu trainieren, dass es gut auf neue Eingaben verallgemeinert werden kann. Dazu muss es an einer großen Anzahl von Datenpunkten trainiert werden, die die Vielfalt und den Umfang der Eingaben widerspiegeln, für die das Modell nach dem Training Vorhersagen machen soll.