Derivat von Softmax in Bezug auf Gewichte


8

Ich bin neu im Deep Learning und versuche, die Ableitung der folgenden Funktion in Bezug auf die Matrix zu berechnen :w

p(a)=ewaxΣdewdx

Unter Verwendung der Quotientenregel erhalte ich:

p(a)w=xewaxΣdewdxewaxΣdxewdx[Σdewdx]2=0

Ich glaube, ich mache etwas falsch, da die Softmax-Funktion üblicherweise als Aktivierungsfunktion beim Deep Learning verwendet wird (und daher nicht immer eine Ableitung von ). Ich habe ähnliche Fragen durchgesehen , aber sie scheinen diesen Teil der Berechnung zu beschönigen.0

Ich würde mich über Hinweise in die richtige Richtung freuen.


1
Ihre Notation funktioniert nicht wirklich, vielleicht weil Sie nicht erklärt haben, was " " ist oder wie die Dimensionen von könnten. Das scheint der Kern Ihres Problems zu sein, denn Sie scheinen als Zahl zu behandeln , aber das macht keinen Sinn. xwx
whuber

Antworten:


13

Die letzte verborgene Ebene erzeugt Ausgabewerte, die einen Vektor . Die ausgegebene neuronale Schicht soll unter Kategorien mit einer SoftMax-Aktivierungsfunktion klassifizieren , die jeder der Kategorien bedingte Wahrscheinlichkeiten (gegeben ) zuweist . In jedem Knoten in der letzten (oder Ausgabe-) Ebene bestehen die voraktivierten Werte (Logit-Werte) aus den Skalarprodukten , wobei . Mit anderen Worten, jede Kategorie,x=xK=1,,kxKwjxwj{w1,w2,,wk}kEs wird ein anderer Vektor von Gewichten darauf zeigen, der den Beitrag jedes Elements in der Ausgabe der vorherigen Ebene (einschließlich einer Vorspannung) bestimmt, eingekapselt in . Die Aktivierung dieser letzten Schicht erfolgt jedoch nicht elementweise (wie zum Beispiel mit einer Sigmoidfunktion in jedem Neuron), sondern durch die Anwendung einer SoftMax-Funktion, die einen Vektor in auf abbildet ein Vektor von Elementen in [0,1]. Hier ist eine erfundene NN zur Klassifizierung von Farben:xRkK

Geben Sie hier die Bildbeschreibung ein

Softmax definieren als

σ(j)=exp(wjx)k=1Kexp(wkx)=exp(zj)k=1Kexp(zk)

Wir wollen die partielle Ableitung in Bezug auf einen Vektor von Gewichten , aber wir können zuerst die Ableitung von in Bezug auf das Logit erhalten, dh :(wi)σ(j)zi=wix

(wix)σ(j)=(wix)exp(wjx)k=1Kexp(wkx)=(wix)exp(wjx)k=1Kexp(wkx)exp(wjx)(k=1Kexp(wkx))2(wix)k=1Kexp(wkx)=δijexp(wjx)k=1Kexp(wkx)exp(wjx)k=1Kexp(wkx)exp(wix)k=1Kexp(wkx)=σ(j)(δijσ(i))

- quotient rule


Vielen Dank und (+1) an Yuntai Kyong für den Hinweis, dass in der vorherigen Version des Beitrags ein vergessener Index vorhanden war und die Änderungen im Nenner des Softmax in der folgenden Kettenregel nicht berücksichtigt wurden ...

Nach der Kettenregel

wiσ(j)=k=1K(wkx)σ(j)wiwkx=k=1K(wkx)σ(j)δikx=k=1Kσ(j)(δkjσ(k))δikx

Kombinieren Sie dieses Ergebnis mit der vorherigen Gleichung:

wiσ(j)=σ(j)(δijσ(i))x

1. Schöne Figur, aber die Erklärung ist verwirrend. "Die letzte verborgene Schicht erzeugt Ausgabewerte, die einen Vektor x⃗ = x bilden." Aber x eher die Eingabe als die Ausgabe? 2. "Die Aktivierung dieser letzten Ebene erfolgt nicht elementweise": Dies ist nützlich, aber einige Einblicke in die Verwendung der Exponentialfunktion sind hilfreich.
coder.in.me

8

Ich habe ein anderes Ergebnis. Außerdem hängt von im Nenner des Softmax ab, sodass nicht sicher ist, ob Antonis Ergebnis korrekt ist.σ(j)wi

wiσ(j)=k(wkx)σ(j)wiwkx=k(wkx)σ(j)δikx=kσ(j)(δjkσ(k))δikx=σ(j)(δijσ(i))x
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.