Das Bild zeigt eine typische Ebene irgendwo in einem Feed-Forward-Netzwerk:
ist der Aktivierungswert des -Neurons in der -Schicht.
ist das Gewicht, das das Neuron in der Schicht mit dem Neuron in der Schicht verbindet.
ist der Wert der Voraktivierungsfunktion für das Neuron in der Schicht . Manchmal wird dies als "logit" bezeichnet, wenn es mit logistischen Funktionen verwendet wird.
Die Feed-Forward-Gleichungen lauten wie folgt:
Der Einfachheit halber wird die Vorspannung als Dummy-Aktivierung von 1 eingeschlossen und implizit in Iterationen über .
Ich kann die Gleichungen für die Rückausbreitung in einem vorwärtsgerichteten neuronalen Netzwerk unter Verwendung der Kettenregel und der Identifizierung einzelner Skalarwerte im Netzwerk ableiten (tatsächlich mache ich dies oft als Papierübung nur zum Üben):
Gegeben als Gradient der Fehlerfunktion in Bezug auf eine Neuronenausgabe.
1.
2.
3.
So weit, ist es gut. Es ist jedoch oft besser, diese Gleichungen unter Verwendung von Matrizen und Vektoren zur Darstellung der Elemente abzurufen. Ich kann das tun, aber ich bin nicht in der Lage, die "native" Darstellung der äquivalenten Logik in der Mitte der Ableitungen herauszufinden. Ich kann herausfinden, wie die Endformen aussehen sollten, indem ich auf die skalare Version zurückgreife und überprüfe, ob die Multiplikationen die richtigen Dimensionen haben, aber ich habe keine Ahnung, warum ich die Gleichungen in diese Formen einfügen soll.
Gibt es tatsächlich eine Möglichkeit, die tensorbasierte Ableitung der Rückausbreitung nur unter Verwendung von Vektor- und Matrixoperationen auszudrücken, oder geht es darum, sie an die obige Ableitung anzupassen?
Verwenden der Spaltenvektoren , , und der Gewichtsmatrix plus Bias-Vektor , dann sind die Feed-Forward-Operationen:
Dann sieht mein Ableitungsversuch folgendermaßen aus:
1.
2.
3.
Wobei die elementweise Multiplikation darstellt. Ich habe mich nicht darum gekümmert, eine Voreingenommenheitsgleichung zu zeigen.
Wo habe ich hingelegt ??? Ich bin mir nicht sicher, wie ich von den Feed-Forward-Operationen und der Kenntnis der linearen Differentialgleichungen den richtigen Weg einschlagen soll, um die richtige Form der Gleichungen zu ermitteln. Ich könnte nur einige partielle abgeleitete Begriffe aufschreiben, habe aber keine Ahnung, warum einige eine elementweise Multiplikation verwenden sollten, andere eine Matrixmultiplikation, und warum die Multiplikationsreihenfolge wie gezeigt sein muss, außer dass dies am Ende eindeutig das richtige Ergebnis liefert .
Ich bin mir nicht einmal sicher, ob es eine reine Tensorableitung gibt oder ob es sich nur um eine "Vektorisierung" des ersten Satzes von Gleichungen handelt. Aber meine Algebra ist nicht so gut und ich bin daran interessiert, es auf jeden Fall herauszufinden. Ich denke, es könnte mir eine gute Verständnisarbeit in z. B. TensorFlow bringen, wenn ich diese Operationen besser verstehen würde, indem ich mehr mit Tensoralgebra denke.
Entschuldigung für Ad-hoc / falsche Notation. Ich verstehe jetzt, dass dank Ehsans Antwort besser geschrieben istWas ich wirklich wollte, ist eine kurze Referenzvariable, die im Gegensatz zu den ausführlichen partiellen Ableitungen in die Gleichungen eingesetzt werden kann.