Adam Optimizer
Explora el optimizador Adam para el aprendizaje profundo. Aprende cómo combina el impulso y RMSProp para lograr una convergencia más rápida en modelos como Ultralytics YOLO26.
El optimizador Adam, abreviatura de estimación de momentos adaptativa, es un sofisticado algoritmo de optimización muy utilizado para entrenar modelos de aprendizaje profundo. Revolucionó el campo al combinar las ventajas de otras dos extensiones populares del descenso de gradiente estocástico (SGD): el algoritmo de gradiente adaptativo (AdaGrad) y la propagación de la media cuadrática (RMSProp). Al calcular tasas de aprendizaje adaptativas individuales para distintos parámetros a partir de estimaciones del primer y segundo momento de los gradientes, Adam permite que las redes neuronales converjan considerablemente más rápido que los métodos tradicionales. Su robustez y sus mínimos requisitos de ajuste lo convierten en la opción predeterminada para muchos profesionales que comienzan un proyecto de aprendizaje automático (ML) nuevo.
Cómo funciona Adam#
En esencia, entrenar un modelo implica minimizar una función de pérdida, que mide la diferencia entre las predicciones del modelo y los datos reales. Los algoritmos estándar suelen utilizar un tamaño de paso constante (tasa de aprendizaje) para descender por el «paisaje de pérdida» hacia el error mínimo. Sin embargo, este paisaje suele ser complejo y presentar barrancos y mesetas que pueden atrapar a los algoritmos más sencillos.
Adam aborda este problema manteniendo dos búferes históricos para cada parámetro:
-
Momento (primer momento): Al igual que una bola pesada que rueda cuesta abajo, realiza un seguimiento de la media móvil de los gradientes anteriores para mantener la velocidad en la dirección pertinente.
-
Varianza (segundo momento): Realiza un seguimiento de la media móvil de los gradientes elevados al cuadrado, que escala la tasa de aprendizaje.
Esta combinación permite al optimizador dar pasos más grandes en las zonas llanas del paisaje y pasos más pequeños y prudentes en las zonas pronunciadas o ruidosas. Los detalles específicos se describen en el artículo de investigación fundamental sobre Adam de Kingma y Ba, que demostró su superioridad empírica en diversas tareas de aprendizaje profundo (DL).
Aplicaciones en el mundo real#
La versatilidad del optimizador Adam ha propiciado su adopción en prácticamente todos los sectores de la inteligencia artificial (AI).
- Procesamiento del lenguaje natural (NLP): Los modelos de lenguaje de gran tamaño, como los Transformadores generativos preentrenados (GPT), dependen en gran medida de Adam (o de su variante AdamW) para el entrenamiento. El algoritmo gestiona eficazmente los gradientes dispersos asociados a vocabularios extensos y conjuntos de datos masivos, lo que permite crear chatbots y sistemas de traducción potentes.
- Visión artificial en sanidad: En el análisis de imágenes médicas, los modelos deben detectar anomalías sutiles, como tumores, en exploraciones de resonancia magnética. Adam ayuda a que las redes neuronales convolucionales (CNNs) converjan rápidamente hacia soluciones de gran precisión, algo fundamental al desarrollar herramientas de diagnóstico para la AI en sanidad.
Adam frente a SGD#
Aunque Adam suele converger más rápido, es importante distinguirlo del descenso de gradiente estocástico (SGD). SGD actualiza los pesos del modelo utilizando una tasa de aprendizaje fija y suele preferirse en las etapas finales del entrenamiento de modelos de detección de objetos de última generación, porque a veces puede lograr una generalización ligeramente mejor (precisión final) en los datos de prueba.
Sin embargo, Adam es «adaptativo», lo que significa que gestiona automáticamente el ajuste de la tasa de aprendizaje. Esto lo hace mucho más fácil de utilizar en experimentos iniciales y arquitecturas complejas en las que ajustar SGD resultaría difícil. Para los usuarios que gestionan experimentos en la plataforma Ultralytics, alternar entre estos optimizadores para comparar el rendimiento suele ser un paso clave del ajuste de hiperparámetros.
Implementación con Ultralytics#
Los frameworks modernos, como PyTorch, y la biblioteca de Ultralytics facilitan el uso de Adam. A menudo se recomienda una variante popular llamada AdamW (Adam con decaimiento de pesos), ya que corrige problemas de regularización del algoritmo Adam original. Esto resulta especialmente eficaz para las arquitecturas más recientes, como YOLO26, que se benefician de la estabilidad que proporciona AdamW.
El siguiente ejemplo muestra cómo entrenar un modelo Ultralytics YOLO26 utilizando el optimizador AdamW:
from ultralytics import YOLO
# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")Para los desarrolladores interesados en los fundamentos teóricos más profundos, recursos como las notas de optimización de Stanford CS231n ofrecen excelentes visualizaciones de cómo se compara Adam con otros algoritmos, como RMSProp y AdaGrad. Además, la documentación del optimizador de PyTorch proporciona detalles técnicos sobre los argumentos y los aspectos específicos de la implementación que se pueden personalizar.






