El descenso de gradiente es un algoritmo de optimización iterativo utilizado para minimizar una función de pérdida ajustando repetidamente los parámetros de un modelo en la dirección opuesta al gradiente, el vector de derivadas parciales que apunta hacia el aumento más pronunciado de la pérdida. Es el mecanismo fundamental mediante el cual la mayoría de los sistemas modernos de aprendizaje automático y aprendizaje profundo aprenden de los datos, sustentando el entrenamiento de todo, desde regresiones lineales simples hasta modelos con cientos de miles de millones de parámetros.
Historia
El método precede a la computación: el matemático francés Augustin-Louis Cauchy describió una versión de la minimización basada en gradientes en 1847. Su forma estadística, la aproximación estocástica, fue formalizada por Herbert Robbins y Sutton Monro en 1951. El descenso de gradiente se volvió central para la IA una vez que se combinó con retropropagación en la década de 1980 como la forma estándar de calcular gradientes de manera eficiente a través de redes neuronales multicapa, y su dominio práctico creció junto con la disponibilidad de grandes conjuntos de datos y hardware GPU capaz de ejecutar los muchos pasos de actualización pequeños que requiere el método.
Variantes
El descenso de gradiente por lotes calcula el gradiente sobre un conjunto de datos completo antes de cada actualización, lo cual es preciso pero lento y consume mucha memoria para conjuntos de datos grandes. El descenso de gradiente estocástico (SGD) actualiza los parámetros usando un ejemplo, o más comúnmente un "mini-lote" pequeño, a la vez, intercambiando algo de precisión por paso por actualizaciones mucho más frecuentes y una mejor escalabilidad. Los métodos de momento acumulan un promedio móvil de gradientes pasados para suavizar actualizaciones ruidosas y acelerar la convergencia en direcciones consistentes. Los métodos adaptativos, más notablemente Adam, introducido por Diederik Kingma y Jimmy Ba en 2014, mantienen tasas de aprendizaje por parámetro basadas en estimaciones de los primeros y segundos momentos del gradiente, y Adam o sus variantes son el optimizador predeterminado para entrenar casi todos los modelos de lenguaje grandes contemporáneos.
Consideraciones prácticas
La tasa de aprendizaje, que escala el tamaño de cada paso de actualización, es el hiperparámetro más consecuente en el descenso de gradiente: demasiado alta y el entrenamiento diverge u oscila, demasiado baja y el entrenamiento es impracticablemente lento o se queda atascado en regiones pobres del paisaje de pérdida. Los entrenamientos modernos suelen usar un programa de tasa de aprendizaje que se calienta gradualmente y luego decae a lo largo del entrenamiento. Debido a que las superficies de pérdida de las redes profundas son extremadamente de alta dimensión y no convexas, el descenso de gradiente en la práctica no encuentra un mínimo global verdadero; en cambio, se basa en la observación empírica de que muchos mínimos locales encontrados por el descenso de gradiente en redes sobreparametrizadas generalizan bien, un fenómeno que aún no se explica completamente desde la teoría. El descenso de gradiente también es vulnerable a problemas como gradientes que se desvanecen o explotan en arquitecturas muy profundas o recurrentes, lo que motivó innovaciones como los mecanismos de compuerta del LSTM y, más tarde, las conexiones residuales utilizadas en las arquitecturas transformer.
Relación con otros conceptos
El descenso de gradiente es con lo que se minimiza la función de pérdida de una red, pero por sí solo no es suficiente para producir un modelo útil: sin técnicas como la regularización, el descenso de gradiente llevará felizmente la pérdida de entrenamiento hacia cero memorizando el conjunto de entrenamiento, un modo de fallo conocido como sobreajuste. En el aprendizaje por refuerzo, los métodos basados en gradientes se adaptan para optimizar la recompensa esperada de un agente en lugar de una pérdida etiquetada fija, formando la base de los algoritmos de gradiente de política utilizados en sistemas como los entrenados con RLHF.