Pérdida logística multinomial vs (entropía cruzada vs error cuadrado)

9

Observé que Caffe (un marco de aprendizaje profundo) utilizó la capa de pérdida Softmax SoftmaxWithLoss como capa de salida para la mayoría de las muestras de modelos .

Hasta donde sé, la capa de pérdida Softmax es la combinación de la capa de pérdida logística multinomial y la capa Softmax .

Desde Caffe, dijeron que

El cálculo del gradiente Softmax Loss Layer es más estable numéricamente

Sin embargo, esta explicación no es la respuesta que quiero, solo explica la combinación de la capa de pérdida logística multinomial y la capa de pérdida de Softmax en lugar de capa por capa. Pero no se compara con otro tipo de función de pérdida.

Sin embargo, me gustaría saber más cuáles son las diferencias / ventajas / desventajas de esta función de 3 errores, que es la pérdida logística multinomial , la entropía cruzada (CE) y el error cuadrado (SE) en la perspectiva de aprendizaje supervisado. ¿Algún artículo de apoyo?

karfai
fuente
1
Solo una pista: supongo que obtendrá una respuesta más rápida si agrega la etiqueta "caffe" a sus preguntas. También publicarlo en stackoverflow en lugar de stackexchange podría darle más atención).
mcExchange
1
La combinación hace que el gradiente sea fácil de calcular, solo y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Respuestas:

11

En mi opinión, la función de pérdida es la función objetivo que queremos que nuestras redes neuronales optimicen sus pesos de acuerdo con ella. Por lo tanto, es específico de la tarea y también de alguna manera empírica. Para ser claros, la pérdida logística multinomial y la pérdida de entropía cruzada son las mismas (consulte http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). La función de costo de la pérdida logística multinomial es así J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

Generalmente se usa para problemas de clasificación. El error cuadrado tiene una ecuación como 12Ni=1Nxi1xi222.

Por lo tanto, generalmente se usa para minimizar el uso de algunos errores de construcción.

EDITAR: @MartinThoma La fórmula anterior de pérdida logística multinomial es solo para el caso binario, para el caso general, debe ser , donde K es el número de categorías.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]

Beahacker
fuente
2
En Caffe, MultinomialLogisticLoss es , entonces, ¿quién se equivoca aquí? 1Nn=1Nlog(pn,ln)
moi
No está mal, son variables binarias, al final, se puede reducir a su formulación. yi
beahacker
Pensé que la pérdida logística multinomail no tenía el segundo summand, por lo queJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma
1
@MartinThoma Mi fórmula es solo para el caso binario, para el caso general, debe serJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker
@beahacker ¿Podría decirme por qué el segundo summand no está incluido en un caso multinominal como lo señala Martin Thoma? Estoy tratando de entender por qué se hace así. Al menos podrías señalarme algún recurso para investigar.
Nandeesh
2

Me gustaría saber más cuáles son las diferencias / ventajas / desventajas de esta función de 3 errores, que es la pérdida logística multinomial, la entropía cruzada (CE) y el error cuadrado (SE) en la perspectiva de aprendizaje supervisado.

La pérdida logística multinomial es en realidad la misma que la entropía cruzada. Mire esta función (la función de costo en softmax ): donde m es el número de muestra, K es el número de clase.

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

La función del indicador ( ) determina si el debajo es 0 o 1 en la definición de entropía cruzada , que está etiquetado como uno de los puntos calientes en los datos de entrenamiento, y es la probabilidad condicional del softmax (q (x) como se muestra a continuación). p ( x ) p ( y ( i ) = k x ( i ) ; θ ) - x p ( x ) log q ( x )1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

Y MSE es principalmente para la situación donde la función de enlace es la función de unidad (la distribución de respuesta sigue una distribución normal), la regresión lineal estándar, mientras que la entropía cruzada es normalmente donde la función de enlace es la función logit. Aquí hay una comparación impresionante a la que puede referirse.

¿Algún artículo de apoyo?

Excepto los que están en los enlaces, le recomiendo este ejemplo: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md

Lerner Zhang
fuente