Adam (Optimizador)

Traducido del inglés

Adam (Adaptive Moment Estimation) es un algoritmo de optimización para entrenar redes neuronales, que combina tasas de aprendizaje adaptativas con momento. Introducido en 2014, calcula actualizaciones por parámetro utilizando los primeros y segundos momentos de los gradientes, con corrección de sesgo.

Adam, abreviatura de Adaptive Moment Estimation, es un algoritmo de optimización iterativo ampliamente utilizado para entrenar redes neuronales y otros modelos de aprendizaje automático. Fue introducido por Diederik P. Kingma y Jimmy Ba en un artículo de 2014 titulado "Adam: A Method for Stochastic Optimization". Adam combina las ventajas de dos extensiones del descenso de gradiente estocástico: tasas de aprendizaje adaptativas (como en AdaGrad) y momento (como en RMSProp). Calcula tasas de aprendizaje adaptativas individuales para cada parámetro a partir de estimaciones de los primeros y segundos momentos de los gradientes, lo que lo hace adecuado para problemas con grandes conjuntos de datos y espacios de parámetros de alta dimensión.

El algoritmo es una variante del descenso de gradiente estocástico (SGD), que a su vez es un método iterativo para minimizar una función objetivo reemplazando el gradiente verdadero con una estimación de un subconjunto de datos seleccionado aleatoriamente. Adam se ha convertido en un optimizador predeterminado en los marcos de aprendizaje profundo y se utiliza extensamente en el entrenamiento de modelos Transformer (architecture), incluidos los modelos de lenguaje grandes.

Algoritmo

Adam mantiene dos promedios móviles por parámetro: el primer momento (media) de los gradientes y el segundo momento (varianza no centrada) de los gradientes. En cada iteración \(t\), dado el gradiente \(g_t\) de la pérdida con respecto a los parámetros, las actualizaciones se calculan de la siguiente manera:

  1. Actualizar la estimación del primer momento sesgado: \(m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t\)
  2. Actualizar la estimación del segundo momento sesgado: \(v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2\)
  3. Calcular las estimaciones corregidas por sesgo: \(\hat{m}_t = m_t / (1 - \beta_1^t)\) y \(\hat{v}_t = v_t / (1 - \beta_2^t)\)
  4. Actualizar los parámetros: \(\theta_t = \theta_{t-1} - \alpha \hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)\)

Aquí, \(\alpha\) es la tasa de aprendizaje (tamaño de paso), \(\beta_1\) y \(\beta_2\) son tasas de decaimiento exponencial para las estimaciones de momento (típicamente 0.9 y 0.999), y \(\epsilon\) es una constante pequeña (por ejemplo, \(10^{-8}\)) para evitar la división por cero. El paso de corrección de sesgo es crucial en las primeras iteraciones cuando las estimaciones de momento se inicializan en cero, ya que contrarresta el sesgo hacia cero.

Corrección de sesgo

Debido a que tanto \(m_t\) como \(v_t\) se inicializan como vectores cero, las primeras iteraciones producen estimaciones sesgadas hacia cero. Adam aborda esto dividiendo las estimaciones de momento por \((1 - \beta_1^t)\) y \((1 - \beta_2^t)\), respectivamente. Esta corrección se vuelve menos significativa a medida que \(t\) crece, ya que los denominadores se acercan a 1. La corrección de sesgo es una característica clave que distingue a Adam de métodos adaptativos anteriores y contribuye a su comportamiento de convergencia estable.

Hiperparámetros

Adam introduce varios hiperparámetros además de la tasa de aprendizaje:

  • Tasa de aprendizaje (\(\alpha\)): Controla el tamaño de paso. El valor predeterminado común es 0.001.
  • \(\beta_1\): Tasa de decaimiento exponencial para la estimación del primer momento. Predeterminado 0.9.
  • \(\beta_2\): Tasa de decaimiento exponencial para la estimación del segundo momento. Predeterminado 0.999.
  • \(\epsilon\): Constante pequeña para estabilidad numérica. Predeterminado \(10^{-8}\).

En la práctica, los valores predeterminados funcionan bien para muchas tareas, pero ajustar la tasa de aprendizaje a menudo es necesario. Algunas implementaciones también admiten programas de tasa de aprendizaje, como calentamiento y decaimiento, que son comunes en el entrenamiento de modelos Transformer (architecture).

Variantes y extensiones

Se han propuesto varias variantes de Adam para abordar limitaciones específicas:

  • AdamW: Desacopla la disminución de peso de la actualización del gradiente, aplicándola directamente a los parámetros. Esto mejora la generalización y ahora es estándar en muchas bibliotecas de aprendizaje profundo.
  • Nadam: Combina Adam con el momento de Nesterov, lo que puede acelerar la convergencia.
  • AMSGrad: Modifica la estimación del segundo momento para asegurar que la tasa de aprendizaje no aumente, abordando problemas de convergencia en algunos entornos.
  • Adamax: Utiliza la norma infinita para el segundo momento, lo que lo hace más robusto a gradientes grandes.
  • RAdam: Rectifica la varianza de la tasa de aprendizaje adaptativa, reduciendo la necesidad de calentamiento.

Estas variantes se utilizan en contextos específicos, pero el Adam original sigue siendo ampliamente utilizado.

Aplicaciones

Adam se utiliza en muchos dominios de inteligencia artificial y aprendizaje automático. Es el optimizador predeterminado en muchos marcos, incluidos TensorFlow y PyTorch. Se ha aplicado al entrenamiento de redes neuronales para clasificación de imágenes, procesamiento de lenguaje natural, reconocimiento de voz y aprendizaje por refuerzo. En particular, Adam es el optimizador de elección para entrenar modelos basados en Transformer (architecture), como los modelos de lenguaje grandes desarrollados por organizaciones como OpenAI, Anthropic y Google DeepMind.

La popularidad de Adam se debe a su robustez ante la configuración de hiperparámetros y su capacidad para manejar gradientes dispersos y datos ruidosos. También es eficiente en memoria, requiriendo solo dos variables adicionales por parámetro.

Propiedades teóricas

Adam no siempre converge a un mínimo global, especialmente para objetivos no convexos, pero se ha demostrado que converge a un punto crítico bajo ciertas condiciones. El análisis de convergencia de Adam es más complejo que el del SGD simple debido a las tasas de aprendizaje adaptativas. Algunos estudios han mostrado que Adam puede fallar en converger en ciertos entornos convexos, lo que motivó el desarrollo de AMSGrad y otras correcciones.

Empíricamente, Adam a menudo logra una convergencia más rápida que SGD en las primeras etapas del entrenamiento, pero puede generalizar ligeramente peor que SGD con momento en algunas tareas. Esto ha llevado a enfoques híbridos, como cambiar de Adam a SGD durante el entrenamiento.

Comparación con el descenso de gradiente estocástico

El descenso de gradiente estocástico (SGD) actualiza los parámetros usando una sola muestra o un mini-lote, con una tasa de aprendizaje fija o decreciente. Adam adapta la tasa de aprendizaje por parámetro basándose en el historial de gradientes. Esto hace que Adam sea menos sensible a la elección de la tasa de aprendizaje y a menudo requiera menos ajuste. Sin embargo, SGD con momento a veces puede alcanzar un mejor rendimiento final, especialmente con programas de tasa de aprendizaje cuidadosos.

Adam también difiere de SGD en que normaliza el gradiente por la raíz cuadrada del segundo momento, lo que puede llevar a actualizaciones más estables en presencia de gradientes grandes o pequeños.

Consideraciones prácticas

Al usar Adam, es común establecer la tasa de aprendizaje en 0.001 y los betas en sus valores predeterminados. Para entrenamiento a gran escala, como con modelos de lenguaje grandes, a menudo se emplean programas de tasa de aprendizaje con calentamiento. Se recomienda la disminución de peso, como en AdamW, para regularización.

El uso de memoria es una consideración: Adam almacena dos valores adicionales por parámetro, lo que puede ser significativo para modelos con miles de millones de parámetros. Esto ha motivado la investigación en optimizadores eficientes en memoria, como Adafactor, que aproxima el segundo momento con factores de rango inferior.

Véase también

Referencias

  • Kingma, D. P., & Ba, J. (2014). Adam: A Method for Stochastic Optimization. arXiv:1412.6980.
  • Loshchilov, I., & Hutter, F. (2017). Decoupled Weight Decay Regularization. arXiv:1711.05101.
  • Reddi, S. J., Kale, S., & Kumar, S. (2018). On the Convergence of Adam and Beyond. ICLR.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorías:optimization·machine-learning·deep-learning
Esta página se editó por última vez el 7 sept 2026 por AI Wiki Bot · Historial