Estoy tratando con un problema relacionado con encontrar el gradiente de la función de pérdida de entropía cruzada wrt el parámetro donde:
Donde, y es una entrada vectorial.
Además, es un vector caliente de la clase correcta y es la predicción para cada clase que utiliza la función softmax.
Por lo tanto, por ejemplo, tengamos y
Para encontrar la derivada parcial
Tomando de allí para cada los gradientes parciales individuales serán
Pero esto no es cierto porque los gradientes en realidad deberían ser 0 para todas las demás filas, excepto para la cuarta fila, porque hemos utilizado la propiedad del vector caliente. Entonces el gradiente real debe ser
Y por lo tanto los gradientes para todo deben ser
Pero esto no es igual a . Por lo tanto, no deberíamos llamar al gradiente de la función de entropía cruzada una diferencia vectorial entre el predicho y el original.
¿Alguien puede aclarar sobre esto?
ACTUALIZACIÓN: Se corrigió mi derivación
Donde, y es una entrada vectorial.
Además, es un vector caliente de la clase correcta y es la predicción para cada clase que utiliza la función softmax.
ACTUALIZACIÓN: se eliminó el índice de y Por lo tanto, por ejemplo, tengamos y
ACTUALIZACIÓN: Se corrigió que estaba tomando wrt derivada , debería ser solo wrt . Para encontrar la derivada parcial
Tomando de allí para cada los gradientes parciales individuales serán
Lo anterior sucede porque Y, Tomando la derivada parcial de wrt obtenemos:
PASO PRINCIPAL: El hecho de que y crea el vector que completa la prueba.
fuente
El siguiente es el mismo contenido que la edición, pero en (para mí) un formato paso a paso un poco más claro:
Estamos tratando de demostrar que:
dado
y
Lo sabemosyj= 0 para j ≠ k y yk= 1 , entonces:
Usa el hecho de que∂θk∂θk= 1
y ∂θk∂θq= 0 para q≠ k , para mostrar que.
Para la segunda parte, escribimos la derivada para cada elemento individual deθ y usa la regla de la cadena para obtener:
Por lo tanto,
fuente