Backpropagation
La retropropagación (backpropagation) es el algoritmo que calcula el gradiente de la función de pérdida en una red neuronal mediante la regla de la cadena. Aclaramos una confusión frecuente —calcular el gradiente no es actualizar los pesos, que es tarea del optimizador—, explicamos las pasadas hacia delante y hacia atrás y repasamos su historia.
La retropropagación (backpropagation) es el algoritmo que calcula de forma eficiente el gradiente de la función de pérdida respecto a todos los parámetros de una red neuronal, propagando el error desde la salida hacia atrás mediante la regla de la cadena del cálculo. Es eficiente porque reutiliza los cálculos intermedios en lugar de repetirlos capa por capa.
Calcular el gradiente no es actualizar los pesos
Conviene deshacer una confusión frecuente. La retropropagación solo calcula el gradiente; no actualiza los pesos. Quien actualiza los pesos es el optimizador, que usa ese gradiente: el descenso de gradiente y sus variantes, como SGD, momento o Adam. Dicho de otro modo, la retropropagación es cómo se obtiene el gradiente y el optimizador es qué se hace con él. Confundir ambas cosas es un error común.
Cómo funciona, paso a paso
El entrenamiento alterna dos pasadas. En la pasada hacia delante, se introduce el ejemplo y se propaga por la red hasta la salida, y la función de pérdida mide el error; por el camino se guardan los valores intermedios. En la pasada hacia atrás, se propaga el error desde la salida aplicando la regla de la cadena capa a capa, obteniendo el gradiente de cada peso. Ahí termina la retropropagación; a continuación, el optimizador ajusta los pesos.
Historia
Sus cimientos matemáticos están en la diferenciación en modo inverso descrita por Seppo Linnainmaa en 1970, que Paul Werbos conectó con las redes neuronales en 1974. Pero fue el artículo de Rumelhart, Hinton y Williams en Nature (1986) el que popularizó el algoritmo y mostró que permite a las capas ocultas aprender representaciones útiles. Hoy es la base del entrenamiento del aprendizaje profundo, y los marcos como PyTorch o TensorFlow la implementan mediante autodiferenciación.
Piezas que usan este término
Este artículo se ha elaborado con inteligencia artificial bajo supervisión editorial humana.