2 votos

¿Por qué la derivación del softmax para un solo vector me sale a 0?

Hay mucho material que explica cómo calcular la jacobiana para el paso atrás de softmax, pero me parece confuso cómo llegar a los errores reales de la jacobiana. La respuesta obvia sería sumar las filas o las columnas - no importa ya que la matriz es simétrica, pero analíticamente parece que el gradiente sale a $0$ .

\begin{align} \frac{\partial h_i}{ \partial z_j} &= h_i (1 - h_j) &\text{when } i = j \\[10pt] \frac{\partial h_i}{ \partial z_j} &= - h_i h_j &\text{when } i \ne j \end{align}

Simplificando el caso cuando $i=j$ me sale: $h_j(1 - h_j)$

Simplificando el caso cuando $i\ne j$ me sale: $- h_j(\sum h - h_j) = - h_j(1 - h_j)$

Así que sumando estos dos casos, el gradiente con respecto a la entrada debe ser siempre $0$ . Eso tiene cero sentido para mí. ¿En qué me equivoco?

1voto

Marko Grdinic Puntos 121

Realmente se supone que debe salir así. Sin embargo, para obtener el error, la jacobiana no debe sumarse directamente, sino que la matriz se multiplica por el vector de error resultante.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X