Diferentes definiciones de la función de pérdida de entropía cruzada

12

Comencé a aprender sobre redes neuronales con el tutorial de redes neuronales y aprendizaje de punto com. En particular, en el tercer capítulo hay una sección sobre la función de entropía cruzada, y define la pérdida de entropía cruzada como:

C=1nxj(yjlnajL+(1yj)ln(1ajL))

Sin embargo, al leer la introducción de Tensorflow , la pérdida de entropía cruzada se define como:

C=1nxj(yjlnajL) (cuando se usan los mismos símbolos que arriba)

Luego, buscando alrededor para encontrar lo que estaba pasando, encontré otro conjunto de notas: ( https://cs231n.github.io/linear-classify/#softmax-classifier ) que usa una definición completamente diferente de la pérdida de entropía cruzada, aunque esto tiempo para un clasificador softmax en lugar de una red neuronal.

¿Alguien puede explicarme qué está pasando aquí? ¿Por qué hay discrepancias por cierto? ¿Cómo define la gente la pérdida de entropía cruzada? ¿Hay algún principio general?

Reginald
fuente
Muy relacionado: stats.stackexchange.com/questions/260505/…
Sycorax dice Reinstate Monica el

Respuestas:

18

Estas tres definiciones son esencialmente las mismas.

1) La introducción de Tensorflow ,

C=1nxj(yjlnaj).

2) Para las clasificaciones binarias , se convierte en y debido a las restricciones y , puede reescribirse como que es lo mismo que en el tercer capítulo .j=2

C=1nx(y1lna1+y2lna2)
jaj=1jyj=1
C=1nx(y1lna1+(1y1)ln(1a1))

3) Además, si es un vector único (que es comúnmente el caso de las etiquetas de clasificación) con como el único elemento distinto de cero, entonces la pérdida de entropía cruzada de la muestra correspondiente es yyk

Cx=j(yjlnaj)=(0+0+...+yklnak)=lnak.

En las notas cs231 , la pérdida de entropía cruzada de una muestra se da junto con la normalización de softmax como

Cx=ln(ak)=ln(efkjefj).
dontloo
fuente
0

En el tercer capítulo , la ecuación (63) es la entropía cruzada aplicada a múltiples sigmoides (que pueden no sumar 1) mientras que en la introducción de Tensoflow la entropía cruzada se calcula en una capa de salida softmax.

Como explica dontloo, ambas fórmulas son esencialmente equivalentes para dos clases, pero no lo es cuando se consideran más de dos clases. Softmax tiene sentido para multiclase con clases exclusivas ( es decir, cuando solo hay una etiqueta por muestra, que permite la codificación de etiquetas de un solo uso), mientras que los sigmoides (múltiples) se pueden usar para describir un problema de múltiples etiquetas (es decir, con muestras que posiblemente sean positivas para varias clases)

Vea esta otra respuesta de dontloo también.

xiawi
fuente