Pochodna utraty entropii krzyżowej w word2vec

10

Próbuję przejść przez pierwszy zestaw problemów z materiałem do kursu online cs224d klasy Stanford i mam pewne problemy z problemem 3A: Używając modelu pomiń gram word2vec z funkcją przewidywania softmax i funkcją utraty entropii krzyżowej, my chcę obliczyć gradienty w stosunku do przewidywanych wektorów słów. Biorąc pod uwagę funkcję softmax:

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

i funkcja entropii krzyżowej:

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

musimy obliczyć CEr^

Moje kroki są następujące:

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

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

teraz podane wk jest jednym gorącym wektorem, a ja poprawną klasą:

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

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

Czy to jest poprawne, czy może być jeszcze bardziej uproszczone? Chcę się upewnić, że jestem na dobrej drodze, ponieważ rozwiązania problemów nie są publikowane online. Ponadto poprawne wykonanie pisemnych zadań jest ważne dla prawidłowego wykonania zadań programistycznych.

slushi
źródło
Dodaj znacznik do samodzielnej nauki do pytania
Dawny33
2. znak minus w pierwszej tożsamości dziennika powinien być plusem. Próbowałem to naprawić, ale zmiany muszą zawierać co najmniej 6 znaków: \
FatalMojo

Odpowiedzi:

7

CEr^=wi+1j|V|exp(wjTr^)j|V|exp(wjTr^)wj
można przepisać jako uwaga, obie są indeksowane przez j, ale tak naprawdę powinny to być 2 różne zmienne. Byłoby to bardziej odpowiednie co przekłada się na
CEr^=wi+j|V|(exp(wjr^)j|V|exp(wjTr^)wj)
CEr^=wi+x|V|(exp(wxr^)j|V|exp(wjTr^)wx)
CEr^=wi+x|V|Pr(wordxr^,w)wx
FatalMojo
źródło
1
Odpowiedni, szczegółowo omawia to pochodzenie w wykładzie 2 @ 38:00
FatalMojo
Dlaczego sumy powinny być indeksowane według różnych zmiennych?
Yamaneko
1
Aby uniknąć zamieszania. Matematycznie oznacza to to samo, ale dobrą praktyką jest zmiana etykiety indeksu podczas dodawania nowej sumy.
FatalMojo