6 votos

No puedo entender la demostración de la primera ecuación de retropropagación en el libro de redes neuronales de Nielsen

Estoy leyendo el capítulo Prueba de las cuatro ecuaciones fundamentales del libro "Redes Neuronales y Aprendizaje Profundo" y creo que tengo una idea general sobre la retropropagación y las matemáticas involucradas, pero hay una parte que no logro entender:

Comencemos con la Ecuación (BP1), que da una expresión para el error de salida, $\delta^L$. Para demostrar esta ecuación, recordemos que por definición \begin{eqnarray} \delta^L_j = \frac{\partial C}{\partial z^L_j}. \tag{36}\end{eqnarray} Aplicando la regla de la cadena, podemos reexpresar la derivada parcial anterior en términos de derivadas parciales con respecto a las activaciones de salida, \begin{eqnarray} \delta^L_j = \sum_k \frac{\partial C}{\partial a^L_k} \frac{\partial a^L_k}{\partial z^L_j}, \tag{37}\end{eqnarray} donde la suma es sobre todas las neuronas $k$ en la capa de salida. Por supuesto, la activación de salida $a^L_k$ de la neurona $k^{\rm th}$ depende solo de la entrada ponderada $z^L_j$ para la neurona $j^{\rm th}$ cuando $k=j$. Y así $\partial a^L_k / \partial z^L_j$ se anula cuando $k!=j$. Como resultado, podemos simplificar la ecuación anterior a \begin{eqnarray} \delta^L_j = \frac{\partial C}{\partial a^L_j} \frac{\partial a^L_j}{\partial z^L_j}. \tag{38}\end{eqnarray}

No entiendo por qué, en la segunda ecuación, está sumando sobre todas las neuronas $k$ en la capa de salida. Intuitivamente habría obtenido directamente la tercera ecuación a partir de la primera aplicando la regla de la cadena, considerando solo la activación de salida $a^L_j$. Entiendo que $C$ es una función que depende de todas las activaciones de salida, así que tal vez la razón es porque en su expresión $C = \frac{1}{2} \sum_j (y_j-a^L_j)^2$ está la suma. Sin embargo, siento que me estoy perdiendo algo.

8voto

Javier Tirado Puntos 33

Esto se debe a que el autor está considerando en esa parte que la función de activación de una neurona $j$ solo depende del valor de $z_j^L$. Esto sucede, por ejemplo, con las funciones de activación sigmoidal o ReLU.

Sin embargo, al usar funciones de activación como Softmax (descritas en Capítulo 3.1.4), tenemos que: $$a_j^L = \frac{e^{z_j^L}}{\sum_k e^{z_k^L}}$$ Aquí podemos ver que $\partial a_j^L/\partial z_k^L \neq 0$ (o equivalentemente: $\partial a_k^L/\partial z_j^L \neq 0$) para $k\neq j$, por lo que el cálculo correcto de $\delta_j^L$ es la ecuación dada por el autor: $$ \delta_j^L=\sum_k\frac{\partial C}{\partial a_k^L}\frac{\partial a_k^L}{\partial z_j^L} $$

Por lo tanto, para resumir, la ecuación anterior es la expresión general de $\delta_j^L$, sin embargo, si usamos ciertas funciones de activación, se puede simplificar a la ecuación $(38)$ de la pregunta.

4voto

Sí, en este caso, es obvio. El autor simplemente está escribiendo una ecuación general para tomar derivadas en un entorno multivariado. Si $f(x,y)$ es una función de $x,y$ y buscamos la derivada de $f$ respecto a $t$, es costumbre escribir lo siguiente: $$\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}$$

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