Spiegazione intuitiva della perdita di stima del contrasto del rumore (NCE)?


32

Ho letto di NCE (una forma di campionamento candidato) da queste due fonti:

Tensorflow writeup

Carta originale

Qualcuno può aiutarmi con quanto segue:

  1. Una semplice spiegazione di come funziona NCE (ho trovato quanto sopra difficile da analizzare e capire, quindi qualcosa di intuitivo che porta alla matematica presentata lì sarebbe fantastico)
  2. Dopo il punto 1 sopra, una descrizione naturalmente intuitiva di come questo è diverso dal campionamento negativo. Vedo che c'è un leggero cambiamento nella formula ma non riesco a capire la matematica. Ho una comprensione intuitiva del campionamento negativo nel contesto di word2vec- scegliamo casualmente alcuni campioni dal vocabolario Ve aggiorniamo solo quelli perché |V|sono grandi e questo offre una velocità. Si prega di correggere se sbagliato.
  3. Quando usare quale e come viene deciso? Sarebbe bello se potessi includere esempi (possibilmente applicazioni di facile comprensione)
  4. NCE è meglio del campionamento negativo? Meglio in che modo?

Grazie.


potrebbe essere il mio post può aiutare. nanjiang.quora.com/Noise-contrastive-La stima e gli esperimenti successivi con theano sono disponibili sul mio sito Web github.com/jiangnanHugo/language_modeling. Spero che la mia comprensione sia giusta.
Jiangnan Hugo,

Risposte:


27

Tratto da questo post: https://stats.stackexchange.com/a/245452/154812

Il problema

Ci sono alcuni problemi con l'apprendimento dei vettori di parole usando una rete neurale "standard". In questo modo, i vettori di parole vengono appresi mentre la rete impara a prevedere la parola successiva in base a una finestra di parole (input della rete).

Prevedere la parola successiva è come predire la classe. Cioè, tale rete è solo un classificatore "standard" multinomiale (multi-classe). E questa rete deve avere tanti neuroni di output quante sono le classi. Quando le classi sono parole reali, il numero di neuroni è, beh, enorme.

Una rete neurale "standard" è di solito addestrata con una funzione di costo di entropia incrociata che richiede che i valori dei neuroni di output rappresentino le probabilità - il che significa che i "punteggi" di output calcolati dalla rete per ciascuna classe devono essere normalizzati, convertiti in probabilità effettive per ogni classe. Questa fase di normalizzazione è ottenuta mediante la funzione softmax. Softmax è molto costoso se applicato a un enorme livello di output.

La (a) soluzione

Per affrontare questo problema, ovvero il costoso calcolo del softmax, Word2Vec utilizza una tecnica chiamata stima del contrasto del rumore. Questa tecnica è stata introdotta da [A] (riformulata da [B]), quindi utilizzata in [C], [D], [E] per imparare gli incorporamenti di parole dal testo in linguaggio naturale senza etichetta.

L'idea di base è convertire un problema di classificazione multinomiale (in quanto è il problema di prevedere la parola successiva) in un problema di classificazione binaria. Cioè, invece di usare softmax per stimare una vera distribuzione di probabilità della parola di output, viene invece usata una regressione logistica binaria (classificazione binaria).

Per ogni campione di addestramento, il classificatore avanzato (ottimizzato) viene alimentato da una coppia vera (una parola centrale e un'altra parola che appare nel suo contesto) e un numero di kk coppie corrotte in modo casuale (costituite dalla parola centrale e una parola scelta casualmente dalla vocabolario). Imparando a distinguere le coppie vere da quelle corrotte, il classificatore apprenderà infine le parole vettori.

Questo è importante: invece di prevedere la parola successiva (la tecnica di allenamento "standard"), il classificatore ottimizzato prevede semplicemente se una coppia di parole è buona o cattiva.

Word2Vec personalizza leggermente il processo e lo chiama campionamento negativo. In Word2Vec, le parole per i campioni negativi (usate per le coppie corrotte) sono tratte da una distribuzione appositamente progettata, che favorisce il disegno più frequente di parole meno frequenti.

Riferimenti

[A] (2005) - Stima contrastiva: formazione di modelli log-lineari su dati senza etichetta

[B] (2010) - Stima contrasto-rumore: un nuovo principio di stima per modelli statistici non normalizzati

[C] (2008) - Un'architettura unificata per l'elaborazione del linguaggio naturale: reti neurali profonde con apprendimento multitasking

[D] (2012) - Un algoritmo rapido e semplice per l'addestramento di modelli linguistici probabilistici neurali .

[E] (2013) - Imparare in modo efficiente gli incastri delle parole con una stima del contrasto del rumore .


3

Onestamente non esiste un modo intuitivo per capire perché la perdita di NCE funzionerà senza comprendere a fondo la sua matematica. Per capire la matematica, dovresti leggere il documento originale.

K

(X,y)yKK

ΔSθ0(w,h)=Sθ0(w,h)-logKPn(w)

Pn(w)

Knn=K

I documenti NCE originali hanno saltato molto le derivazioni della prova, quindi è davvero difficile capire NCE. Per capire più facilmente la matematica su NCE, ho un post sul blog su questo che annota la matematica dagli articoli NCE:

https://leimao.github.io/article/Noise-Contrastive-Estimation/ .

Il secondo anno o superiore dovrebbe essere in grado di capirlo.


1

Fondamentalmente, questo sta selezionando un campione dalla vera distribuzione che consiste nella vera classe e in alcune altre etichette di classe rumorose. Quindi prendendo il softmax su di esso.

Questo si basa sul campionamento delle parole dalla vera distribuzione e distribuzione del rumore.

Qui l'idea di base è quella di formare un classificatore di regressione logistica in grado di separare i campioni ottenuti dalla vera distribuzione e quelli ottenuti dalla distribuzione del rumore. Ricorda Quando stiamo parlando dei campioni ottenuti dalla distribuzione vera, stiamo parlando di un solo campione che è la vera classe ottenuta dalla distribuzione del modello.

Qui ho spiegato della perdita di NCE e di come differisce dalla perdita di NCE.

Stima di contrasto del rumore: soluzione per Softmax costoso.


1
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia.
tuomastik,

0

In parole semplici, NCE è solo una funzione di perdita di classificazione multi-etichetta con solo 1 etichetta positiva e k negative.

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.