Propagación Hacia Atrás
La propagación hacia atrás, o retropropagación, es el proceso de determinar cómo la función de pérdida cambia con respecto a cada parámetro en la red neuronal. El objetivo es ajustar estos parámetros de manera que se reduzca la pérdida total.
Este proceso se basa en el algoritmo de descenso de gradiente, que utiliza las derivadas de la pérdida con respecto a los valores de preactivación de cada capa (las salidas en bruto antes de aplicar la función de activación) y las propaga hacia atrás a través de la red.
Dado que cada capa contribuye a la predicción final, los gradientes se calculan paso a paso:
- Realizar la propagación hacia adelante para obtener las salidas;
- Calcular la derivada de la pérdida con respecto a la preactivación de la salida;
- Propagar esta derivada hacia atrás a través de las capas utilizando la regla de la cadena;
- Calcular y utilizar los gradientes para los pesos y sesgos para actualizarlos durante el entrenamiento.
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, utilicemos 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, se introducen 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, el primer paso es calcular el gradiente de la pérdida con respecto a las activaciones de la capa de salida, denotado como dan.
Luego, utilizando la regla de la cadena, el gradiente de la pérdida con respecto a las pre-activaciones de la capa de salida se calcula como:
dzn=dan⊙f′n(zn)Aquí, f′n(zn) representa la derivada de la función de activación en la capa n, y el símbolo ⊙ denota la multiplicación elemento a elemento.
El símbolo ⊙ denota la multiplicación elemento a elemento, lo que significa que cada elemento de un vector se multiplica por el elemento correspondiente de otro vector. En contraste, el símbolo ⋅ representa el producto punto, utilizado para la multiplicación estándar de matrices o vectores. El término f′n se refiere a la derivada de la función de activación en la capa de salida.
Este valor indica cuán sensible es la función de pérdida a los cambios en los valores de preactivación de la capa de salida.
Después de calcular dzn, el siguiente paso es calcular los gradientes para los pesos y los sesgos:
dWndbn=dzn⋅(an−1)T,=dznEstos gradientes describen cuánto debe ajustarse cada peso y sesgo en la capa de salida para reducir la pérdida.
Aquí, (an−1)T es el vector de activación transpuesto de la capa anterior. Si el vector original tiene la forma nneurons×1, su transpuesta tiene la forma 1×nneurons.
Para continuar con la retropropagación, se calcula la derivada de la pérdida con respecto a las activaciones de la capa anterior como:
dan−1=(Wn)T⋅dznEsta expresión permite que la señal de error se propague hacia atrás a través de la red, posibilitando el ajuste de las capas anteriores durante el entrenamiento.
Propagació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 proceso se repite para cada capa anterior, paso a paso, hasta que se alcanza la capa de entrada.
Actualización de pesos y sesgos
Después de calcular los gradientes para todas las capas, los pesos y sesgos se actualizan utilizando el algoritmo de descenso de gradiente:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Aquí, α representa la tasa de aprendizaje, que controla cuánto se ajustan los parámetros durante cada paso de entrenamiento.
Aquí, α es la tasa de aprendizaje, un hiperparámetro que determina el tamaño del ajuste aplicado a los pesos y sesgos durante cada paso de actualización.
¡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 propagación hacia atrás, o retropropagación, es el proceso de determinar cómo la función de pérdida cambia con respecto a cada parámetro en la red neuronal. El objetivo es ajustar estos parámetros de manera que se reduzca la pérdida total.
Este proceso se basa en el algoritmo de descenso de gradiente, que utiliza las derivadas de la pérdida con respecto a los valores de preactivación de cada capa (las salidas en bruto antes de aplicar la función de activación) y las propaga hacia atrás a través de la red.
Dado que cada capa contribuye a la predicción final, los gradientes se calculan paso a paso:
- Realizar la propagación hacia adelante para obtener las salidas;
- Calcular la derivada de la pérdida con respecto a la preactivación de la salida;
- Propagar esta derivada hacia atrás a través de las capas utilizando la regla de la cadena;
- Calcular y utilizar los gradientes para los pesos y sesgos para actualizarlos durante el entrenamiento.
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, utilicemos 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, se introducen 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, el primer paso es calcular el gradiente de la pérdida con respecto a las activaciones de la capa de salida, denotado como dan.
Luego, utilizando la regla de la cadena, el gradiente de la pérdida con respecto a las pre-activaciones de la capa de salida se calcula como:
dzn=dan⊙f′n(zn)Aquí, f′n(zn) representa la derivada de la función de activación en la capa n, y el símbolo ⊙ denota la multiplicación elemento a elemento.
El símbolo ⊙ denota la multiplicación elemento a elemento, lo que significa que cada elemento de un vector se multiplica por el elemento correspondiente de otro vector. En contraste, el símbolo ⋅ representa el producto punto, utilizado para la multiplicación estándar de matrices o vectores. El término f′n se refiere a la derivada de la función de activación en la capa de salida.
Este valor indica cuán sensible es la función de pérdida a los cambios en los valores de preactivación de la capa de salida.
Después de calcular dzn, el siguiente paso es calcular los gradientes para los pesos y los sesgos:
dWndbn=dzn⋅(an−1)T,=dznEstos gradientes describen cuánto debe ajustarse cada peso y sesgo en la capa de salida para reducir la pérdida.
Aquí, (an−1)T es el vector de activación transpuesto de la capa anterior. Si el vector original tiene la forma nneurons×1, su transpuesta tiene la forma 1×nneurons.
Para continuar con la retropropagación, se calcula la derivada de la pérdida con respecto a las activaciones de la capa anterior como:
dan−1=(Wn)T⋅dznEsta expresión permite que la señal de error se propague hacia atrás a través de la red, posibilitando el ajuste de las capas anteriores durante el entrenamiento.
Propagació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 proceso se repite para cada capa anterior, paso a paso, hasta que se alcanza la capa de entrada.
Actualización de pesos y sesgos
Después de calcular los gradientes para todas las capas, los pesos y sesgos se actualizan utilizando el algoritmo de descenso de gradiente:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Aquí, α representa la tasa de aprendizaje, que controla cuánto se ajustan los parámetros durante cada paso de entrenamiento.
Aquí, α es la tasa de aprendizaje, un hiperparámetro que determina el tamaño del ajuste aplicado a los pesos y sesgos durante cada paso de actualización.
¡Gracias por tus comentarios!