Domanda

Per word2vec con campionamento negativo, la funzione di costo per una singola parola è il seguente secondo word2vec : $$ E = - log (\ sigma (v_ {w_ {O}} ^ { '} {u_ w_ {I}}).) - \ sum_ {k = 1} ^ log K (\ sigma (-v_ {{k w_ }} ^ { '}. {u_ w_ {I}})) $$

$ v_ {w_ {O}} ^ { '} $ = hidden-> parola di uscita vettore della parola di uscita

$ u_ {w_ {I}} $ = input-> parola nascosta vettore della parola di uscita

$ v_ {w_ {k}} ^ { '} $ = hidden-> parola di uscita vettore della parola campionato negativo

$ \ sigma $ è la funzione sigmoide

E prendendo la derivata rispetto a $ v_ {w_ {O}} ^ { '} {u_ w_ {j}} $ è:.

$ \ Frac {\ partial E} {\ v_ parziale {w_ {j}} ^ { '}. U_ {w_ {I}}} = \ sigma (v_ {w_ {j}} ^ {'}. U_ {w_ { I}}) * (\ sigma (v_ {w_ {j}} ^ { '} {u_ w_ {I}}.) - 1) $ $ Se w_j = w_O $

$ \ Frac {\ partial E} {\ v_ parziale {w_ {j}} ^ { '}. U_ {w_ {I}}} = \ sigma (v_ {w_ {j}} ^ {'}. U_ {w_ { I}}) * \ sigma (-v_ {w_ {j}} ^ { '}. {u_ w_ {I}}) $ $ Se w_j = w_k \ per \ k = 1 ... K $

Quindi possiamo usare regola della catena per ottenere

$ \ frac {\ partial E} {\ v_ parziale {w_ {j}} ^ { '}} = \ frac {\ partial E} {\ v_ parziale {w_ {j}} ^ {'}. U_ {w_ {I}}} * \ frac {\ v_ parziale {w_ {j}} ^ { '}. u_ {w_ {I}}} {\ v_ parziale {w_ {j}} ^ {'}} $

È il mio ragionamento e derivata corretta? Sono ancora nuovo per ML modo che qualsiasi aiuto sarebbe grande!

È stato utile?

Soluzione

Sembra buono con me. Tale derivato è presentata anche nella carta (equazioni 56-58).

La carta si sta collegando al è il tentativo più avanzato - almeno a quanto mi consta - per spiegare come word2vec opere, ma c'è anche un sacco di altre risorse sul tema (basta cercare word2vec su arxiv.org ). Se siete interessati a word2vec, si possono trovare anche interessanti guanto (vedi: Linking guanto con word2vec ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top