5

Die Wikipedia page for backpropagation hat diese Forderung:Wie ist Backpropagation gleich (oder nicht) wie umgekehrte automatische Differenzierung?

Der Backpropagation-Algorithmus, um einen Gradienten für die Berechnung wieder entdeckte einige Male gewesen ist, und ist ein Spezialfall einer mehr allgemeinen Technik automatische Differenzierung in dem umgekehrten Akkumulationsmodus aufgerufen .

Kann jemand dies erläutern, um es in Laien auszudrücken? Was unterscheidet die Funktion? Was ist der "Sonderfall"? Werden die adjungierten Werte selbst oder die endgültige Steigung verwendet?

Antwort

5

In Neural Network Training möchten wir eine Reihe von Gewichten w finden, die den Fehler E(N(w,x)-y) minimiert. (x ist der Trainingseingang, y ist der Trainingsausgang, N ist das Netzwerk und E ist eine Fehlerfunktion).

Der Standard Weg, um eine Optimierung wie folgt zu tun, ist Gradientenabstieg, der die Ableitung des Netzwerks verwendet, N' sagen. Wir könnten das Netzwerk als Matrixprodukt darstellen und dies manuell mit Matrix-Kalkül tun, aber wir können auch (automatische) Algorithmen schreiben.

Backpropagation ist ein spezieller solcher Algorithmus, der bestimmte Vorteile hat. Zum Beispiel ist es einfach, die Ableitung nur in Bezug auf eine ausgewählte Stichprobe von Gewichten zu nehmen, wie es für den stochastischen Gradientenabfall erforderlich ist. Es gibt auch an, wie Feed-Forward-Werte (tatsächliche Netzwerkwerte) gespeichert werden, damit sie für die Berechnung der benötigten Derivate leicht zugänglich sind.

Sie sollten den genauen Code für den spezifischen Algorithmus sowohl in Lehrbüchern als auch online finden können.