1 votos

Ciertas derivaciones utilizando la regla de la cadena para el algoritmo de retropropagación

Actualmente estoy tratando de enseñarme a mí mismo cómo codificar una red neuronal y quiero una comprensión de las matemáticas tan buena como sea posible para alguien que obtuvo una D- en cálculo hace más de 15 años y no ha tomado una clase de matemáticas desde entonces. Basta con decir que soy un principiante en matemáticas pero he estado leyendo/viendo vídeos durante semanas. Tengo una buena comprensión de gran parte de lo que va en los algoritmos, pero - en gran parte porque lucho con la regla de la cadena - Estoy absolutamente perplejo por el algoritmo de retropropagación, específicamente cómo derivar el término de error.

Todas las ecuaciones que estoy utilizando se pueden encontrar aquí:

Esto es lo que sé:

Esta es la ecuación de error que representa la suma del error al cuadrado. $E = \frac{1}{2} $$ (t_k - a_k)^2 $

En una red neuronal básicamente tienes una salida que está asociada a unos pesos. Queremos cambiar los pesos para reducir el error. $ \bigtriangleup W \propto- \frac{\partial E}{\partial W} $

Bien hasta ahora. ${\partial E}$ no está directamente relacionado con los pesos por lo que entiendo que tenemos que utilizar la regla de la cadena aquí.

E" es una función de $a_k$ que es a su vez una función de una entrada neta ( $net_k$ ) que es en sí misma una función de los pesos. Así que según el enlace en última instancia, la ecuación para la retropropagación es la siguiente:

${\frac{\partial E}{\partial a_k}}\times {\frac{\partial a_k}{\partial net_k}}\times {\frac{\partial net_k}{\partial w_{jk}}} $

Ok, así que tengo ${\frac{\partial E}{\partial a_k}}$ - se utiliza la regla de la potencia. Multiplicas 2 x .5 para que se cancele y la suma también se cancela así que la derivada aquí es sólo $-(t_k - a_k)$ . Hasta ahora he conseguido esto.

Así que $a_k$ es la función de activación que para un sigmoide es ${\frac{1}{1+e^{-z}}}$ y aquí es donde me pierdo. Así que la derivada sigmoidea es $a_k(1-a_k)$ pero no tengo ni idea de por qué. El enlace presenta la ecuación sigmoidea como ${(1+e^{-net_k})^{-1}}$ lo que lleva a ${\frac{\partial a_k}{\partial net_k}} = {\frac{e^{-net_k}}{(1+e^{-net_k})^{2}}}$ pero no entiendo esta derivación. ¿Podría alguien guiarme, posiblemente explicando qué reglas está utilizando para llegar a esto?

Por último, al realizar ${\frac{\partial net_k}{\partial w_{jk}}}$ el artículo dice:

Obsérvese que sólo un término de la suma neta tendrá una derivada distinta de cero: de nuevo la asociada al peso particular que estamos considerando.

Esto significa que ciertos pesos van a tener derivadas de 0 por lo que sólo tenemos que considerar... creo... los pesos en... ¿'j'? Claramente no estoy seguro aquí. Entonces ellos declaran: ${\frac{\partial net_k}{\partial w_{jk}}} = {\frac{\partial(w_{kj}a_j)}{\partial{w_{kj}}} = a_j}$ Conceptualmente entiendo que la idea detrás de las derivadas parciales es tomar lo que no está en la ecuación y tratarlo como una constante, así que en este ejemplo estamos tratando $a_j$ como una constante. ¿Por qué entonces la derivada $a_j$ ? ¿No debería derivarse como 0? Además, ¿dónde han ido a parar las w? ¿Qué tipo de reglas se utilizan en la derivación de estas variables? No estoy seguro de si se utiliza la regla de la potencia/regla del cociente/etc. (obviamente no pero sólo como ejemplos) para obtener este resultado.

Y luego, para obtener el cambio de peso real, sólo tienes que multiplicar todos estos resultados, ¿verdad?

Está claro que soy un absoluto idiota matemático. Si alguien pudiera ponerse a mi nivel y ayudarme, se lo agradecería muchísimo.

1voto

mathreadler Puntos 3517

La derivada de esa sigmoidea es un buen ejemplo de dónde podemos practicar la regla de la cadena.

$$\cases{f(x) = \frac 1 {1+e^{-x}}\\ f(g) =\frac 1 {g}\\g(h) = 1+e^{h(x)}\\ h(x)=-x}$$

$$\frac {\partial{f}}{\partial x} = \frac{\partial f}{\partial g}\times\frac{\partial g}{\partial h}\times \frac{\partial h}{\partial x}$$

El primero es $-1/g^2$ el segundo es $e^{h(x)}$ , tercero $-1$ así que sustituyendo y simplificando

$$-\frac {-e^{-x}} {(1+e^{-x})^2} =\frac {e^{-x}} {(1+e^{-x})^2} $$

Esto es igual si ponemos $x = net_k$ .

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