Derivata della perdita di entropia crociata in word2vec


10

Sto cercando di superare la prima serie di problemi del materiale del corso di classe Stanford cs224d online e sto riscontrando alcuni problemi con il problema 3A: quando si utilizza il modello skip gram word2vec con la funzione di previsione softmax e la funzione di perdita incrociata dell'entropia, noi desidera calcolare i gradienti rispetto ai vettori di parole previsti. Quindi data la funzione softmax:

wio^=Pr(wordio|r^,w)=exp⁡(wioTr^)Σj|V|eXp(wjTr^)

e funzione entropia incrociata:

CE(w,w^)=-ΣKwKlog(wK^)

dobbiamo calcolare ∂CE∂r^

I miei passi sono i seguenti:

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

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

ora dato wk è un vettore caldo ed io sono la classe corretta:

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

∂CE∂r^=−wi+1∑j|V|eXp(wjTr^)Σj|V|eXp(wjTr^)wj

È corretto o potrebbe essere ulteriormente semplificato? Voglio provare ad assicurarmi di essere sulla strada giusta poiché le soluzioni del set di problemi non sono pubblicate online. Inoltre, ottenere correttamente i compiti scritti è importante per poter svolgere correttamente i compiti di programmazione.


Aggiungi il tag di
— autoapprendimento

Il 2 ° segno meno nell'identità del primo registro dovrebbe essere un vantaggio. Ho provato a risolverlo per te ma le modifiche devono essere almeno 6 caratteri: \
— FatalMojo

Risposte:


7

∂CE∂r^=-wio+1Σj|V|eXp(wjTr^)Σj|V|eXp(wjTr^)wj
può essere riscritto come nota, le somme sono entrambe indicizzate da j ma in realtà dovrebbero essere 2 variabili diverse. Questo sarebbe più appropriato che si traduce in
∂CE∂r^=-wio+Σj|V|(exp⁡(wj⊤r^)Σj|V|eXp(wjTr^)⋅wj)
∂CE∂r^=-wio+ΣX|V|(exp⁡(wX⊤r^)Σj|V|eXp(wjTr^)⋅wX)
∂CE∂r^=-wio+ΣX|V|Pr(wordX|r^,w)⋅wX

1
Rilevante, analizza la derivazione in dettaglio nella lezione 2 @ 38:00
— FatalMojo,

Perché le somme dovrebbero essere indicizzate da variabili diverse?
— Yamaneko,

1
Solo per evitare confusione. Matematicamente significa la stessa cosa, ma è buona norma cambiare l'etichetta dell'indice quando si aggiunge una nuova somma.
— FatalMojo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.