Propagación Hacia Atrás
La retropropagación (backprop) es el proceso de calcular cómo la función de pérdida cambia con respecto a cada parámetro en la red. El objetivo es actualizar los parámetros en la dirección que reduce la pérdida.
Para lograr esto, se utiliza el algoritmo de descenso de gradiente y se calculan las derivadas de la pérdida con respecto a los valores de preactivación de cada capa (valores de salida en bruto antes de aplicar la función de activación) y se propagan hacia atrás.
Cada capa contribuye a la predicción final, por lo que los gradientes deben calcularse de manera estructurada:
- Realizar la propagación hacia adelante;
- Calcular la derivada de la pérdida con respecto a la preactivación de salida;
- Propagar esta derivada hacia atrás a través de las capas utilizando la regla de la cadena;
- Calcular los gradientes para los pesos y sesgos para actualizarlos.
Los gradientes representan la tasa de cambio de una función con respecto a sus entradas, es decir, son sus derivadas. Indican cuánto afecta un pequeño cambio en los pesos, sesgos o activaciones a la función de pérdida, guiando el proceso de aprendizaje del modelo mediante el descenso de gradiente.
Notación
Para clarificar la explicación, utilizaremos la siguiente notación:
- Wl es la matriz de pesos de la capa l;
- bl es el vector de sesgos de la capa l;
- zl es el vector de preactivaciones de la capa l;
- al es el vector de activaciones de la capa l;
Por lo tanto, estableciendo a0 como x (las entradas), la propagación hacia adelante en un perceptrón con n capas puede describirse como la siguiente secuencia de operaciones:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Para describir la retropropagación matemáticamente, introducimos las siguientes notaciones:
- dal: derivada de la pérdida con respecto a las activaciones en la capa l;
- dzl: derivada de la pérdida con respecto a las pre-activaciones en la capa l (antes de aplicar la función de activación);
- dWl: derivada de la pérdida con respecto a los pesos en la capa l;
- dbl: derivada de la pérdida con respecto a los sesgos en la capa l.
Cálculo de gradientes para la capa de salida
En la capa final n, primero se calcula el gradiente de la pérdida con respecto a las activaciones de la capa de salida, dan. Luego, utilizando la regla de la cadena, se calcula el gradiente de la pérdida con respecto a las pre-activaciones de la capa de salida:
dzn=dan⊙f′n(zn)El símbolo ⊙ representa la multiplicación elemento a elemento. Dado que trabajamos con vectores y matrices, el símbolo de multiplicación habitual ⋅ representa el producto punto. f′n es la derivada de la función de activación de la capa de salida.
Esta cantidad representa la sensibilidad de la función de pérdida ante cambios en la preactivación de la capa de salida.
Una vez que tenemos dzn, calculamos los gradientes para los pesos y los sesgos:
dWndbn=dzn⋅(an−1)T=dzndonde (an−1)T es el vector transpuesto de activación de la capa anterior. Dado que el vector original es un vector de nneurons×1, el vector transpuesto es de 1×nneurons.
Para propagar esto hacia atrás, se calcula la derivada de la pérdida con respecto a las activaciones de la capa anterior:
dan−1=(Wn)T⋅dznPropagación de Gradientes a las Capas Ocultas
Para cada capa oculta l el procedimiento es el mismo. Dado dal:
- Calcular la derivada de la pérdida con respecto a las preactivaciones;
- Calcular los gradientes para los pesos y los sesgos;
- Calcular dal−1 para propagar la derivada hacia atrás.
Este paso se repite hasta que llegamos a la capa de entrada.
Actualización de pesos y sesgos
Una vez que se han calculado los gradientes para todas las capas, se actualizan los pesos y sesgos utilizando descenso de gradiente:
Wlbl=Wl−α⋅dWl=bl−α⋅dbldonde α es la tasa de aprendizaje, que controla cuánto se ajustan los parámetros.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4
Propagación Hacia Atrás
Desliza para mostrar el menú
La retropropagación (backprop) es el proceso de calcular cómo la función de pérdida cambia con respecto a cada parámetro en la red. El objetivo es actualizar los parámetros en la dirección que reduce la pérdida.
Para lograr esto, se utiliza el algoritmo de descenso de gradiente y se calculan las derivadas de la pérdida con respecto a los valores de preactivación de cada capa (valores de salida en bruto antes de aplicar la función de activación) y se propagan hacia atrás.
Cada capa contribuye a la predicción final, por lo que los gradientes deben calcularse de manera estructurada:
- Realizar la propagación hacia adelante;
- Calcular la derivada de la pérdida con respecto a la preactivación de salida;
- Propagar esta derivada hacia atrás a través de las capas utilizando la regla de la cadena;
- Calcular los gradientes para los pesos y sesgos para actualizarlos.
Los gradientes representan la tasa de cambio de una función con respecto a sus entradas, es decir, son sus derivadas. Indican cuánto afecta un pequeño cambio en los pesos, sesgos o activaciones a la función de pérdida, guiando el proceso de aprendizaje del modelo mediante el descenso de gradiente.
Notación
Para clarificar la explicación, utilizaremos la siguiente notación:
- Wl es la matriz de pesos de la capa l;
- bl es el vector de sesgos de la capa l;
- zl es el vector de preactivaciones de la capa l;
- al es el vector de activaciones de la capa l;
Por lo tanto, estableciendo a0 como x (las entradas), la propagación hacia adelante en un perceptrón con n capas puede describirse como la siguiente secuencia de operaciones:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Para describir la retropropagación matemáticamente, introducimos las siguientes notaciones:
- dal: derivada de la pérdida con respecto a las activaciones en la capa l;
- dzl: derivada de la pérdida con respecto a las pre-activaciones en la capa l (antes de aplicar la función de activación);
- dWl: derivada de la pérdida con respecto a los pesos en la capa l;
- dbl: derivada de la pérdida con respecto a los sesgos en la capa l.
Cálculo de gradientes para la capa de salida
En la capa final n, primero se calcula el gradiente de la pérdida con respecto a las activaciones de la capa de salida, dan. Luego, utilizando la regla de la cadena, se calcula el gradiente de la pérdida con respecto a las pre-activaciones de la capa de salida:
dzn=dan⊙f′n(zn)El símbolo ⊙ representa la multiplicación elemento a elemento. Dado que trabajamos con vectores y matrices, el símbolo de multiplicación habitual ⋅ representa el producto punto. f′n es la derivada de la función de activación de la capa de salida.
Esta cantidad representa la sensibilidad de la función de pérdida ante cambios en la preactivación de la capa de salida.
Una vez que tenemos dzn, calculamos los gradientes para los pesos y los sesgos:
dWndbn=dzn⋅(an−1)T=dzndonde (an−1)T es el vector transpuesto de activación de la capa anterior. Dado que el vector original es un vector de nneurons×1, el vector transpuesto es de 1×nneurons.
Para propagar esto hacia atrás, se calcula la derivada de la pérdida con respecto a las activaciones de la capa anterior:
dan−1=(Wn)T⋅dznPropagación de Gradientes a las Capas Ocultas
Para cada capa oculta l el procedimiento es el mismo. Dado dal:
- Calcular la derivada de la pérdida con respecto a las preactivaciones;
- Calcular los gradientes para los pesos y los sesgos;
- Calcular dal−1 para propagar la derivada hacia atrás.
Este paso se repite hasta que llegamos a la capa de entrada.
Actualización de pesos y sesgos
Una vez que se han calculado los gradientes para todas las capas, se actualizan los pesos y sesgos utilizando descenso de gradiente:
Wlbl=Wl−α⋅dWl=bl−α⋅dbldonde α es la tasa de aprendizaje, que controla cuánto se ajustan los parámetros.
¡Gracias por tus comentarios!