¿Cuál es la intuición detrás de la propagación hacia atrás?

Considere el caso más simple con solo dos capas (una entrada + una salida) y solo un nodo en cada una. En otras palabras, [matemática] y = wx [/ matemática] donde [matemática] x [/ matemática] es el valor de entrada, [matemática] y [/ matemática] es el valor de salida y [matemática] w [/ matemática] es El peso que está tratando de estimar.

Aunque este caso es trivial y se puede calcular directamente, adoptemos el enfoque general de inmediato, que se denomina descenso de gradiente . Su objetivo es encontrar el valor óptimo de [math] w [/ math] para que [math] wx [/ math] esté lo más cerca posible de [math] y [/ math] (recuerde que dados múltiples ejemplos no es necesariamente posible ajustar todos los puntos con una [matemática] w [/ matemática]).

Ahora, si tuviera más capas de entrada, nada cambiaría porque su salida es simplemente una combinación lineal, lo que significa que el efecto de un peso en la salida no tiene nada que ver con otros pesos.

De manera similar, con múltiples salidas, dado que cada una vendrá con su conjunto de conexiones distintas para cada salida, encontrar valores de conexión para cualquier salida no tendrá nada que ver con otras salidas.

Finalmente, la propagación hacia atrás. Esto es cuando tienes varias capas. La intuición aquí es que primero calcula los valores de su penúltima capa para que actúen como entradas a las salidas finales. Luego resuelve el problema de dos capas como se describió anteriormente.

Luego, una vez que arregle sus penúltimos pesos, los trata como salidas de la capa antes de eso y así sucesivamente hasta que encuentre los pesos de la primera capa. Cuando hace todo esto e itera como parte de su proceso de descenso de gradiente, se le ocurre un conjunto convergente (con suerte) de pesos de tal manera que sus salidas finales dadas las entradas de la capa inferior estén lo más cerca posible de la realidad para todos. de tus ejemplos

Traté de evitar ecuaciones y cualquier matemática subyacente, excepto el concepto de combinación lineal. Avíseme si puedo simplificar o aclarar algo.

Se sigue directamente de la regla de la cadena.

Si toma la derivada del error total con respecto a los pesos de una sola neurona, obtendrá exactamente la fórmula que utiliza la retropropagación:

[matemáticas] \ frac {d} {d \ theta_g} L (f (g (h (x)))) = \ frac {d} {df} L (f (g (h (x))))) \ frac {d} {dg} f (g (h (x)) \ frac {d} {d \ theta_g} g (h (x)) [/ math]

donde calculamos la derivada con respecto a los pesos [math] \ theta_g [/ math] de la capa [math] g [/ math], la segunda capa (como ejemplo).

La propagación hacia atrás es solo un descenso de gradiente con funciones encadenadas.

Evitaré las matemáticas aquí. En términos simples, mayor la magnitud de una variable mayor debería ser la parte de su cambio en cada iteración. La retropropagación simple dice que no cambie el peso de cada neurona por igual. El cambio debe ser una proporción de su valor.

Si observa una neurona en particular, no verá su participación en la pérdida total. Desde este punto de vista, es más como una propiedad emergente. Para profundizar en google para sistemas adaptativos complejos.

Regla de cadena más programación dinámica.