Del misterio al dominio: el motor de las redes neuronales. Publicado originalmente en Towards AI.
Creada con DALL-E 3 | Todas las imágenes de ecuaciones fueron creadas por el autor
Backpropagation significa «propagación hacia atrás de los errores». Es un algoritmo de aprendizaje supervisado que minimiza los errores de predicción de una red neuronal.
En esencia, aplica la regla de la cadena para calcular los gradientes de la función de pérdida respecto a los parámetros del modelo. Tiene dos fases:
- Propagación hacia delante. Una entrada atraviesa las capas de la red y genera una predicción, que se compara con la etiqueta real para calcular el error.
- Propagación hacia atrás. Partiendo de ese error, se recorren las capas en sentido inverso para calcular cómo ajustar los pesos y minimizar la pérdida mediante algoritmos como el descenso de gradiente.
Propagación hacia delante | Fuente: 3Blue1Brown
Propagación hacia delante y hacia atrás | Fuente: 3Blue1Brown
Backpropagation es, esencialmente, una aplicación de la regla de la cadena para calcular el gradiente de cada peso de la red.
Antes de profundizar, hay que entender esos dos conceptos.
1. Regla de la cadena
La regla de la cadena permite derivar funciones compuestas; es especialmente útil cuando unas funciones están anidadas dentro de otras.
Supongamos que y = g(u) y u = f(x), de modo que y = g(f(x)). La regla de la cadena calcula la derivada de y respecto a x considerando la función intermedia u.
Puede extenderse a más funciones. Si y depende de u, u depende de v y v depende de x:
Ejemplo
Dadas las siguientes funciones:

Buscamos la derivada de y respecto a x.
Paso 1: calcular du/dx.

Paso 2: calcular dy/du.

Paso 3: aplicar la regla de la cadena.
Paso 4: sustituir los resultados.

Paso 5: sustituir u por su función original de x.

La derivada final indica cómo un cambio pequeño en x afecta a y a través de u.
2. Gradiente
Para una función de una sola variable, una derivada expresa la pendiente de la recta tangente. Para una función de múltiples variables, usamos el gradiente, su generalización.
El gradiente indica la dirección de máximo crecimiento y su magnitud representa la velocidad de aumento en esa dirección.
Si x = (x1, x2, …, xn), el gradiente de f se denota por ∇f:
Consideremos esta función y calculemos su gradiente en (1, 2):
Primero calculamos las derivadas parciales:

Después las evaluamos en (1, 2):

El gradiente es ∇f(1,2) = (10,6). Por cada unidad que aumentamos en x, la función sube 10; por cada unidad en y, sube 6.
La magnitud del gradiente representa la pendiente. Para (10,6):
Moverse desde (1,2) en la dirección (10,6) incrementa aproximadamente f(x,y) en 11,66 unidades por cada paso pequeño.
Regla de la cadena y gradiente en backpropagation
Una red neuronal es una enorme función compuesta de muchas neuronas conectadas.
Funciones dentro de las capas de una red neuronal | Fuente
Cada capa construye sobre la información de la anterior hasta llegar a la salida. La regla de la cadena permite descomponer ese recorrido y el gradiente explica el impacto de cada peso en la pérdida total.
Por ejemplo, para saber cómo un peso de la primera capa afecta a la pérdida final, hay que seguir su efecto sobre la salida de la primera capa, luego sobre la segunda, la tercera y así hasta la salida.
Representación de pesos de red neuronal | Fuente
El proceso completo
Paso 1: propagación hacia delante. Pasamos una entrada por la red y obtenemos las activaciones de cada capa.
Paso 2: pérdida. Calculamos la diferencia entre la predicción y el objetivo real con una función de pérdida.
Paso 3: propagación hacia atrás. Para cada peso calculamos cuánto cambia la pérdida si cambia ese peso:
Al expandir el gradiente con la regla de la cadena, aparece un producto de gradientes desde la salida hasta la capa que contiene el peso.
Paso 4: ajustar los pesos. Con los gradientes, ajustamos los pesos en la dirección que reduce la pérdida, normalmente con descenso de gradiente, Adam o RMSprop. Repetimos el proceso para cada peso.
Ejemplo de backpropagation
Imaginemos una red feedforward simple: una capa de entrada con cuatro neuronas y una sola neurona de salida.

Paso 1: propagación hacia delante
Dado un vector de entrada x, la suma ponderada de la neurona de salida es:
Tras la función de activación, la salida es:
Paso 2: función de pérdida
Supongamos que usamos el error cuadrático medio (MSE):
Paso 3: backpropagation
Para ajustar los pesos, calculamos la derivada de la pérdida respecto a cada peso usando la regla de la cadena:
Al multiplicar los términos obtenemos el gradiente para el peso wi:
Paso 4: actualización de pesos
Actualizamos wi con descenso de gradiente, donde α es la tasa de aprendizaje:
El proceso se repite para w1, w2, w3 y w4.
Backpropagation | 3Blue1Brown
Bibliografía
- Kostadinov, S. (2019). Understanding Backpropagation Algorithm. Towards Data Science.
- Wikipedia: Backpropagation
- 3Blue1Brown: But what is backpropagation really doing?
- Andrej Karpathy: Backpropagation, Neural Networks 1
¡Gracias por leer! Si te ha gustado el artículo, puedes dejar hasta 50 aplausos y seguirme en Medium para estar al día de las próximas publicaciones.