Ableitung des Kreuzentropieverlusts in word2vec

10

Ich versuche, mich durch den ersten Problemsatz des cs224d Online-Kurskurses in Stanford zu arbeiten, und ich habe einige Probleme mit Problem 3A: Wenn wir das Skip-Gramm-word2vec-Modell mit der Softmax-Vorhersagefunktion und der Cross-Entropy-Loss-Funktion verwenden, haben wir wollen die Gradienten in Bezug auf die vorhergesagten Wortvektoren berechnen. Also gegeben die Softmax-Funktion:

wi^=Pr(wordir^,w)=exp(wiTr^)j|V|exp(wjTr^)

und Kreuzentropiefunktion:

CE(w,w^)=kwklog(wk^)

wir müssen \ frac {\ partielle {CE}} {\ partielle {\ hat {r}}} berechnenCEr^

Meine Schritte sind wie folgt:

CE(w,w^)=k|V|wklog(exp(wkTr^)j|V|exp(wjTr^))

=k|V|wklog(exp(wkTr^)wklog(j|V|exp(wjTr^))

Jetzt ist wk ein heißer Vektor und i ist die richtige Klasse:

CE(w,w^)=wiTr^+log(j|V|exp(wjTr^))

CEr^=wi+1j|V|exp(wjTr^)j|V|exp(wjTr^)wj

Ist das richtig oder könnte es weiter vereinfacht werden? Ich möchte versuchen, sicherzustellen, dass ich auf dem richtigen Weg bin, da die Problemlösungen nicht online veröffentlicht werden. Außerdem ist es wichtig, dass die schriftlichen Aufgaben korrekt sind, damit die Programmieraufgaben ordnungsgemäß ausgeführt werden können.

Slushi
quelle
Bitte fügen Sie das Selbststudien-Tag der Frage hinzu
Dawny33
Das zweite Minuszeichen in der ersten Protokollidentität sollte ein Plus sein. Versucht, es für Sie zu beheben, aber Änderungen müssen mindestens 6 Zeichen sein: \
FatalMojo

Antworten:

7

CEr^=wi+1j|V|exp(wjTr^)j|V|exp(wjTr^)wj
kann als umgeschrieben werden Beachten Sie, dass die Summen beide durch j indiziert sind, aber es sollten wirklich 2 verschiedene Variablen sein. Dies wäre angemessener was übersetzt in
CEr^=wi+j|V|(exp(wjr^)j|V|exp(wjTr^)wj)
CE
CEr^=wi+x|V|(exp(wxr^)j|V|exp(wjTr^)wx)
CEr^=wi+x|V|Pr(wordxr^,w)wx
FatalMojo
quelle
1
Relevant, er geht diese Ableitung im Detail in Vorlesung 2 @ 38:00
FatalMojo
Warum sollten die Summen durch verschiedene Variablen indiziert werden?
Yamaneko
1
Nur um Verwirrung zu vermeiden. Mathematisch bedeutet dies dasselbe, aber es empfiehlt sich, die Indexbezeichnung zu ändern, wenn Sie eine neue Summe hinzufügen.
FatalMojo