ENTRENAMIENTO

Gradient descent

Algoritmo de optimización que ajusta iterativamente los parámetros de un modelo en la dirección opuesta al gradiente del error, hasta encontrar el mínimo que produce las mejores predicciones.

Nivel · intermedio5 min de lecturaActualizado 24 may 2026
También conocido como: Descenso de gradiente, SGD, Adam, Optimizador

Definición

El gradient descent (descenso de gradiente) es el algoritmo de optimización que ajusta los parámetros de un modelo de IA, paso a paso, en la dirección que reduce el error. Es el complemento natural del backpropagation: mientras backprop calcula cuánto debe cambiar cada parámetro, gradient descent decide cómo aplicar ese cambio para mejorar el modelo.

Existe desde el siglo XIX (Cauchy, 1847) en matemáticas. Su aplicación moderna al deep learning es lo que permite entrenar redes de miles de millones de parámetros. La fórmula básica es engañosamente simple:

w_nuevo = w_viejo − learning_rate × gradiente

Donde el learning rate es un número pequeño (típicamente 10⁻⁴ a 10⁻⁶ en LLMs) que controla cuánto se mueve el modelo en cada paso. Es el hiperparámetro más importante y delicado del entrenamiento.

Cómo funciona

La analogía clásica: imagina bajar una montaña con niebla densa. No ves el fondo, pero puedes sentir bajo los pies hacia dónde baja el terreno. Das un paso pequeño en esa dirección. Repites. Con suficientes pasos, llegas a un valle (mínimo del loss).

Más técnicamente:

  1. Calcula el gradiente (vía backpropagation): un vector que indica la dirección de máximo crecimiento del loss.
  2. Invierte el signo: queremos descender, no subir. La dirección de descenso es el opuesto del gradiente.
  3. Escala por el learning rate: para no dar pasos demasiado grandes (sobrepasar el mínimo) ni demasiado pequeños (convergencia lentísima).
  4. Actualiza los pesos: aplica el desplazamiento a cada parámetro.

Repite billones de veces. Cada iteración el loss baja un poquito, hasta estabilizarse en un mínimo.

Variantes principales

A lo largo de las décadas se han desarrollado decenas de variantes. Las más relevantes hoy en deep learning:

  • Batch Gradient Descent: calcula el gradiente sobre el dataset entero antes de actualizar. Estable pero brutalmente lento → casi no se usa.
  • SGD (Stochastic Gradient Descent): actualiza con un solo ejemplo o un batch pequeño. Rápido y ruidoso, ese ruido ayuda a escapar de mínimos locales malos.
  • Mini-batch SGD: el estándar. Batch de 32-4M de ejemplos según el modelo. Combina velocidad y estabilidad.
  • SGD con momentum: añade "inercia" al movimiento. Si vienes bajando consistentemente, sigues bajando aunque el gradiente local sea ruidoso.
  • Adam (Adaptive Moment Estimation): aprende un learning rate distinto para cada parámetro adaptándolo con la historia. El optimizador más usado durante años.
  • AdamW: variante de Adam con weight decay correcto. Es el estándar actual en LLMs.
  • Lion (Google, 2023): alternativa moderna a AdamW, ligeramente más eficiente.
  • Shampoo, Sophia: optimizadores de segundo orden, prometedores pero menos extendidos.

En 2026 el 90% de los LLMs frontera se entrenan con AdamW o variantes muy cercanas.

Learning rate: el hiperparámetro crítico

El learning rate (LR) es el factor más sensible del entrenamiento:

  • LR demasiado bajo: aprendizaje lento, puede no converger en tiempo razonable.
  • LR demasiado alto: el modelo "salta" sobre el mínimo, oscila, o diverge (loss explota a infinito).
  • LR justo: convergencia eficiente al mínimo.

En la práctica no se usa un LR fijo, sino un schedule (programa) que lo cambia durante el entrenamiento:

  • Warmup: empezar muy bajo y subir gradualmente los primeros pasos (estabiliza el inicio).
  • Cosine decay: bajar el LR según una curva coseno hasta el final del entrenamiento.
  • Linear decay, step decay, exponential decay: variantes.
  • Cyclical: oscilar entre valores altos y bajos.

Encontrar el LR óptimo es parte arte, parte ciencia, y suele requerir muchos experimentos.

Ejemplo práctico

Entrenamos un clasificador pequeño para IMDICA que predice si un cliente comprará en los próximos 30 días basándose en su histórico.

  • Modelo: red neuronal de 4 capas con 2M de parámetros.
  • Dataset: 50.000 ejemplos.
  • Batch size: 256.
  • Optimizador: AdamW.
  • Learning rate: 0.001 con cosine decay durante 50 epochs.
  • Steps por epoch: 50.000 / 256 = ~195.
  • Steps totales: 195 × 50 = ~9.750 actualizaciones de gradient descent.

En cada step:

  1. Forward pass sobre 256 ejemplos.
  2. Cálculo de loss (cross-entropy).
  3. Backward pass: gradientes de los 2M parámetros.
  4. AdamW: ajusta los 2M parámetros según gradientes + momentum + adaptive LR.

Tras ~30 epochs el loss se estabiliza. Accuracy típica: 75-85%. El modelo está listo para ayudar al equipo comercial a priorizar leads.

A escala de un LLM frontera: mismo algoritmo, pero con 500.000 steps y trillones de tokens. Months of compute en miles de GPUs.

Errores comunes al hablar de gradient descent

  • Confundir con backpropagation: backprop calcula gradientes, gradient descent los usa. Son complementarios pero distintos.
  • Pensar que "encuentra el óptimo global": encuentra un mínimo local. Que sea bueno o no depende del modelo, datos y suerte.
  • Subestimar el learning rate: un LR mal elegido convierte un entrenamiento bueno en un desastre.
  • No usar warmup: en transformers grandes, el warmup de los primeros 1-5% steps es crítico para estabilidad.
  • "Más epochs = mejor": no. Pasado cierto punto, el modelo se sobreajusta al dataset y empeora en datos nuevos.
  • Usar SGD básico en LLMs: SGD puro no converge bien en transformers. AdamW es prácticamente obligatorio.
  • Cambiar de optimizador esperando milagros: marginal mejor cambiar de Adam a Lion. Mucho más útil mejorar datos o arquitectura.

Cuándo importa entender gradient descent

Sí, profundiza si:

  • Entrenas o fine-tuneas modelos directamente.
  • Debugeas problemas de convergencia (loss que no baja, NaN, oscilaciones).
  • Eliges hiperparámetros de entrenamiento.
  • Investigas en optimizadores o teoría del deep learning.

Es menos crítico si:

  • Solo usas APIs o modelos preentrenados.
  • Tu rol es más de aplicación que de entrenamiento.

Referencias

Tagsiaentrenamientooptimizaciónfundamentos