Función de costo de entropía cruzada en red neuronal

10

Estoy viendo la función de costo de entropía cruzada que se encuentra en este tutorial :

C=1nx[ylna+(1y)ln(1a)]

¿Qué estamos resumiendo exactamente? Por supuesto, está sobre x , pero y y a no cambian con x . Todas las x son entradas en el uno a . a incluso se define en el párrafo anterior a la ecuación en función de la suma de todas las w 'sy x ' s.

Además, n se define como el número de entradas en esta neurona en particular, ¿correcto? Está redactado como "el número total de elementos de datos de entrenamiento" .


Editar:

¿Estoy en lo cierto al pensar que

C=1nx[ylna+(1y)ln(1a)]

sería la función de costo para toda la red, mientras que

C=[ylna+(1y)ln(1a)]

¿Cuál sería el costo para la neurona individual? ¿No debería estar la suma sobre cada neurona de salida?

Adam12344
fuente

Respuestas:

14

Así es como expresaría la pérdida de entropía cruzada :

L(X,Y)=1ni=1ny(i)lna(x(i))+(1y(i))ln(1a(x(i)))

Aquí, es el conjunto de ejemplos de entrada en el conjunto de datos de entrenamiento, e es el conjunto correspondiente de etiquetas para esos ejemplos de entrada. La representa la salida de la red neuronal dada la entrada .X={x(1),,x(n)}Y={y(1),,y(n)}a(x)x

Cada uno de los es 0 o 1, y la activación de salida generalmente está restringida al intervalo abierto (0, 1) mediante el uso de un sigmoide logístico . Por ejemplo, para una red de una capa (que es equivalente a la regresión logística), la activación estaría dada por donde es un matriz de peso es un vector de sesgo. Para varias capas, puede expandir la función de activación a algo como donde y son la matriz de peso y el sesgo para la primera capa, yy(i)a(x)

a(x)=11+eWxb
Wb
a(x)=11+eWz(x)bz(x)=11+eVxc
Vcz(x) es la activación de la capa oculta en la red.

He utilizado el (i) superíndice para denotar ejemplos porque me pareció bastante efectivo en el curso de aprendizaje automático de Andrew Ng; a veces las personas expresan ejemplos como columnas o filas en una matriz, pero la idea sigue siendo la misma.

lmjohns3
fuente
¡Gracias! Entonces, esto nos daría un solo número para nuestro error para toda la red, en todas nuestras muestras. Para la propagación inversa, necesito encontrar la derivada parcial de esta función wrt la matriz de peso en la capa final. ¿Como podría hacerlo?
Adam12344
¡Hacer backprop es una lata completamente separada de gusanos! La página a la que se vinculó tiene una descripción de los derivados informáticos, etc. y hay muchas preguntas sobre backprop en stackoverflow y este sitio. Intente mirar un poco y luego publique una pregunta por separado específicamente sobre backprop.
lmjohns3
Esto podría ser útil para comprender el backprop que pasa por el respaldo con una red neuronal de cuatro capas con una pérdida de entropía cruzada en detalles sangrientos :) cookedsashimi.wordpress.com/2017/05/06/…
YellowPillow
5

¿Qué estamos resumiendo exactamente?

El tutorial es realmente bastante explícito:

... es el número total de elementos de datos de entrenamiento, la suma es sobre todas las entradas de entrenamiento ...n

La función de costo de neurona única original dada en el tutorial (Ec. 57) también tiene un subíndice debajo de que se supone que sugiere esto. Para el caso de una sola neurona, no hay nada más que resumir además de ejemplos de entrenamiento, ya que ya sumamos todos los pesos de entrada al calcular :xΣa

a=jwjxj.

Más adelante en el mismo tutorial, Nielsen da una expresión para la función de costo para una red de múltiples capas y neuronas múltiples (Ec. 63):

C=1nxj[yjlnajL+(1yj)ln(1ajL)].

En este caso, la suma corre sobre los ejemplos de entrenamiento ( 's) y las neuronas individuales en la capa de salida ( ' s).xj

ali_m
fuente
Gracias por la idea, una pregunta: la última que definiste no es la entropía cruzada categórica, ¿verdad?
Tommaso Guerrini
También dijo en su tutorial que "y a veces puede tomar valores intermedios entre 0 y 1", pero la función que dio está en y y no hubo entrada de activación. ¿Cómo podríamos implementar valores intermedios en la función st?
Feras
En el tutorial de Nielsen, que muestra un perceptrón de una sola capa, a = \ sigma (\ sum_ {j} w_j x_j) porque tiene una función de activación sigmoidea para su capa de salida, no a = \ sum_ {j} w_j x_j
ARAT