El descenso de gradiente es el motor que hace que una red neuronal aprenda. Cada vez que un modelo mejora una predicción, por dentro está aplicando la misma idea: medir cuánto se equivoca, calcular hacia dónde crece ese error y mover los pesos en la dirección opuesta. Este artículo explica esa mecánica con la regla de actualización, el papel del gradiente y un ejemplo numérico paso a paso. La misma explicación está disponible en inglés.

Fórmula clave $w \leftarrow w-\eta \nabla L$

Puntos clave

  • El descenso de gradiente es un algoritmo de optimización que ajusta los pesos de una red para reducir la función de pérdida $L$.
  • La regla central es $w \leftarrow w-\eta \nabla L$: cada peso se mueve un poco en sentido contrario al gradiente.
  • El gradiente $\nabla L$ apunta hacia donde el error crece más rápido; por eso restamos, para bajar en lugar de subir.
  • La tasa de aprendizaje $\eta$ fija el tamaño del paso: demasiado grande y el entrenamiento se dispara, demasiado pequeña y tarda una eternidad.
  • El método lo formuló Augustin-Louis Cauchy en 1847, y hoy entrena modelos de 175.000 millones de parámetros como GPT-3.

¿Qué es el descenso de gradiente?

El descenso de gradiente es un método iterativo para encontrar el mínimo de una función. En una red neuronal esa función es la pérdida $L$, que mide la distancia entre lo que predice el modelo y la respuesta correcta. Entrenar consiste en buscar los pesos $W$ y sesgos $b$ que hacen $L$ lo más pequeña posible.

La idea es sencilla: empiezas con pesos aleatorios, calculas cuánto te equivocas y corriges un poco. Repites ese ciclo miles o millones de veces. Como resume Sebastian Ruder, «el descenso de gradiente es la forma preferida de optimizar redes neuronales y muchos otros algoritmos de aprendizaje automático, aunque a menudo se usa como una caja negra». Este artículo abre esa caja. Para situarlo dentro del conjunto, puedes volver al mapa de las matemáticas de las redes neuronales.

La regla de actualización de los pesos

Toda la mecánica cabe en una línea:

$$w \leftarrow w-\eta \nabla L$$

Se lee así: el nuevo valor del peso $w$ es su valor actual menos la tasa de aprendizaje $\eta$ multiplicada por el gradiente de la pérdida respecto a ese peso. La flecha indica que asignamos el resultado de vuelta a $w$. En una red con millones de parámetros, esta operación se aplica a cada uno de ellos en cada paso.

El signo menos es lo importante. El gradiente señala la subida, así que restarlo nos lleva cuesta abajo, hacia menos error. Este cálculo de los gradientes capa por capa es lo que hace la retropropagación, que a su vez se apoya en las derivadas parciales y el gradiente.

El signo menos no es un detalle: si sumaras el gradiente en vez de restarlo tendrías ascenso de gradiente y el modelo empeoraría en cada paso.

El papel del gradiente

El gradiente $\nabla L$ es un vector con una derivada parcial por cada peso. Cada componente responde a la pregunta: si muevo este peso una pizca, ¿cuánto sube o baja el error? Reunidas, todas esas respuestas forman la dirección de máxima subida de la pérdida.

Como queremos bajar, tomamos la dirección contraria. Ahí está el nombre del método: descendemos siguiendo el gradiente. Cuando el gradiente se acerca a cero, la pendiente es casi plana y hemos llegado a un mínimo, el punto donde el error deja de mejorar.

La analogía de la montaña

Imagina que estás en la ladera de una montaña con niebla espesa y quieres llegar al valle. No ves el fondo, pero sí notas la inclinación bajo tus pies. Una estrategia razonable es dar un paso en la dirección de mayor pendiente hacia abajo, mirar de nuevo y repetir.

Eso es exactamente el descenso de gradiente. La montaña es la superficie de la pérdida, tu posición son los pesos actuales y la inclinación es el gradiente. El tamaño de cada paso es la tasa de aprendizaje $\eta$. Si das zancadas enormes puedes saltarte el valle y acabar más arriba en la ladera opuesta; si das pasos minúsculos llegarás, pero tras muchísimas iteraciones. En la práctica se prueban valores como $0{,}1$, $0{,}01$ o $0{,}001$ hasta dar con el que baja rápido sin desestabilizarse.

Hay un matiz honesto: la superficie de una red no es un valle limpio en forma de cuenco. Es no convexa, con muchos valles y sillas. El descenso de gradiente encuentra un mínimo bueno, pero no garantiza el mejor de todos. En redes grandes eso basta para obtener modelos excelentes.

Ejemplo paso a paso

Veámoslo con una pérdida diminuta de un solo peso: $L(w) = w^2$. Su derivada es $\nabla L = 2w$, así que la regla queda $w \leftarrow w-\eta \cdot 2w$. Fijamos $\eta = 0{,}1$ y arrancamos en $w = 4$.

  1. Paso inicial: $w = 4$, pérdida $L = 16$.
  2. Primera actualización: $w \leftarrow 4-0{,}1 \cdot 2 \cdot 4 = 4-0{,}8 = 3{,}2$.
  3. Segunda: $w \leftarrow 3{,}2-0{,}1 \cdot 2 \cdot 3{,}2 = 3{,}2-0{,}64 = 2{,}56$.
  4. Tercera: $w \leftarrow 2{,}56-0{,}512 = 2{,}048$.

El peso se acerca a 0 (el mínimo real) de forma cada vez más lenta, porque el gradiente encoge según nos acercamos. Con unas 30 iteraciones estaríamos prácticamente en el fondo. Esta misma danza ocurre a la vez para cada peso de una red, coordinada por la regla de la cadena. Para grupos de ejemplos se usan variantes por lotes pequeños, típicamente de 50 a 256 muestras por paso.

Ver las siguientes iteraciones

Cada paso multiplica el peso por $0{,}8$, porque $w-0{,}1 \cdot 2w = 0{,}8\,w$. Así que la sucesión es geométrica: $w_n = 4 \cdot 0{,}8^{\,n}$. Continuando desde $2{,}048$ obtenemos $1{,}6384$, luego $1{,}31072$, después $1{,}048576$… Tras 30 pasos, $w \approx 4 \cdot 0{,}8^{30} \approx 0{,}005$, prácticamente en el mínimo.

Preguntas frecuentes

¿Por qué restamos el gradiente en lugar de sumarlo?

Porque el gradiente apunta hacia donde la pérdida crece más rápido. Nuestro objetivo es reducir el error, no aumentarlo, así que nos movemos en sentido opuesto. Sumarlo sería descenso de gradiente al revés: haría que el modelo empeorase paso a paso.

¿Qué pasa si la tasa de aprendizaje es demasiado alta?

El entrenamiento se vuelve inestable. Con pasos demasiado grandes, el modelo salta de un lado a otro del valle sin asentarse, y la pérdida puede crecer sin control hasta divergir. Por eso se ajusta con cuidado y a veces se reduce a lo largo del entrenamiento.

¿El descenso de gradiente siempre encuentra la mejor solución?

No siempre. La superficie de error de una red es no convexa, con múltiples mínimos locales y puntos de silla. El método garantiza llegar a un mínimo, pero no necesariamente al global. En la práctica, los mínimos que encuentra suelen ser lo bastante buenos.

Conclusión

El descenso de gradiente reduce el aprendizaje a una receta clara: mide el error, calcula el gradiente y da un paso pequeño cuesta abajo con w ← w − η · ∇L. Toda la sofisticación posterior, desde el momentum hasta Adam, no son más que formas más listas de elegir esa dirección y ese tamaño de paso. El siguiente escalón natural es entender cómo se calcula el gradiente en cada capa con las derivadas parciales y el gradiente.

Fuentes

  1. Deep Learning (Goodfellow, Bengio y Courville)
  2. An overview of gradient descent optimization algorithms (Sebastian Ruder)
  3. Descenso del gradiente (Wikipedia)

Ruta: Entrenamiento: descenso de gradiente y retropropagación