Perdita logistica multinomiale vs (Cross Entropy vs Square Error)


9

Ho osservato che Caffe (un framework di apprendimento profondo) utilizzava lo strato di perdita di Softmax SoftmaxWithLoss come strato di output per la maggior parte dei campioni di modello .

Per quanto ne so, il livello Softmax Loss è la combinazione di Multinomial Logistic Loss Layer e Softmax Layer .

Dal Caffe, lo dissero

Il calcolo del gradiente dello strato di perdita di Softmax è più numericamente stabile

Tuttavia, questa spiegazione non è la risposta che desidero, la spiegazione è semplicemente confrontare la combinazione di Multinomial Logistic Loss Layer e Softmax Loss layer anziché layer per layer. Ma non confrontare con altri tipi di funzioni di perdita.

Tuttavia, vorrei sapere di più quali sono le differenze / i vantaggi / gli svantaggi di queste 3 funzioni di errore che sono la perdita logistica multinomiale , l' entropia incrociata (CE) e l' errore quadrato (SE) nella prospettiva dell'apprendimento supervisionato? Qualche articolo di supporto?


1
Solo un suggerimento: suppongo che otterrai una risposta più veloce se aggiungi il tag "caffe" alle tue domande. Anche pubblicarlo su StackOverflow invece che su StackExchange potrebbe dargli più attenzione).
mcExchange,

1
La combinazione semplifica il calcolo del gradiente, giusto y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Risposte:


11

A mio avviso, la funzione di perdita è la funzione oggettiva che vogliamo che le nostre reti neurali ottimizzino i suoi pesi in base ad essa. Pertanto, è specifico del compito e anche in qualche modo empirico. Per essere chiari, la perdita logistica multinomiale e la perdita di entropia incrociata sono le stesse (si prega di consultare http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). La funzione di costo della perdita logistica multinomiale è come questa J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

Di solito è usato per problemi di classificazione. L' errore quadrato ha un'equazione come 12Ni=1Nxi1xi222.

Pertanto, viene solitamente utilizzato per ridurre al minimo l'utilizzo di alcuni errori di costruzione.

EDIT: @MartinThoma La formula di perdita multinomiale della logistica sopra è solo per il caso binario, per il caso generale, dovrebbe essere , dove K è il numero di categorie.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]


2
In Caffe, MultinomialLogisticLoss è , quindi chi ha torto qui? 1Nn=1Nlog(pn,ln)
moi,

Non è sbagliato, sono variabili binarie, alla fine, può essere ridotto nella tua formulazione. yi
Beahacker,

Pensavo che la perdita logistica multinomail fosse senza il secondo summand, quindiJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma il

1
@MartinThoma La mia formula è solo per il caso binario, per il caso generale, dovrebbe essereJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker

@beahacker Potresti dirmi perché il secondo summand non è incluso nel caso multinominale, come sottolineato da Martin Thoma. Sto cercando di capire perché è fatto così. Almeno potresti indicarmi qualche risorsa da esaminare.
Nandeesh,

2

Vorrei sapere di più quali sono le differenze / i vantaggi / gli svantaggi di queste 3 funzioni di errore che sono la perdita logistica multinomiale, l'entropia incrociata (CE) e l'errore quadrato (SE) nella prospettiva dell'apprendimento supervisionato?

La perdita logistica multinomiale è attivamente uguale all'entropia incrociata. Guarda questa funzione (la funzione di costo in softmax ): dove m è il numero del campione, K è il numero della classe.

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

La funzione indicatore ( ) determina se il soffietto è 0 o 1 nella definizione di entropia crociata , che è etichettato come uno caldo nei dati di addestramento, e è la probabilità condizionale della softmax (q (x) come mostrato di seguito). 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

E MSE è principalmente per la situazione in cui la funzione di collegamento è la funzione di unità (la distribuzione della risposta segue una distribuzione normale), la regressione lineare standard, mentre l'entropia incrociata è normalmente per dove la funzione di collegamento è la funzione logit. Ecco un fantastico confronto a cui puoi fare riferimento.

Qualche articolo di supporto?

Tranne quelli nei link, ti ​​consiglio questo esempio: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md

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.