Descubra cómo el optimizador Adam potencia el entrenamiento eficiente de redes neuronales con tasas de aprendizaje adaptables, impulso y aplicaciones reales en IA.
Adam (Adaptive Moment Estimation) es un sofisticado y ampliamente utilizado algoritmo de optimización diseñado para actualizar los parámetros de una red neuronal durante el proceso de entrenamiento. Combinando las mejores propiedades de otras dos populares extensiones de Descenso Gradiente Estocástico (SGD)-específicamente el Algoritmo de Gradiente Adaptativo (AdaGrad) y la Propagación de la Raíz Cuadrática Media (RMSProp)Adam calcula tasas de aprendizaje adaptativas para cada parámetro individual. adaptativos para cada parámetro individual. Esta capacidad de Esta capacidad le permite manejar gradientes dispersos en problemas ruidosos de manera eficiente, por lo que es una opción predeterminada para el entrenamiento de arquitecturas complejas de aprendizaje profundo (DL). arquitecturas complejas de aprendizaje profundo (AD), incluidos los últimos modelosYOLO11 .
El mecanismo central de Adam consiste en calcular el primer y el segundo momento de los gradientes para adaptar la tasa de aprendizaje de cada peso en el modelo. ritmo de aprendizaje de cada peso de la red neuronal. El "primer momento" como el impulso, que mantiene la optimización moviéndose en la dirección correcta de forma similar a una bola pesada rodando colina abajo. El "segundo momento" rastrea la varianza no centrada, escalando efectivamente el tamaño del paso en función de la magnitud histórica de los gradientes.
Durante la retropropagación, el algoritmo calcula el gradiente de la función de pérdida con respecto a los pesos. A continuación, Adam actualiza las medias móviles exponenciales del gradiente (impulso) y del gradiente al cuadrado (varianza). Estas medias móviles se utilizan para escalar el gradiente actual, asegurando que el modelo da pasos más grandes en direcciones con gradientes consistentes y pasos más pequeños en direcciones con alta varianza. Este proceso se detalla en el Adam de Kingma y Ba.
Para saber cuándo utilizar Adam , hay que compararlo con otros algoritmos habituales en los marcos de en los marcos de aprendizaje automático.
Debido a su robustez y a la mínima necesidad de ajuste de hiperparámetros, Adam se utiliza en diversos ámbitos de alto impacto.
Al utilizar la APIPython Ultralytics , puede seleccionar fácilmente el optimizador Adam para entrenar modelos de detección de objetos, segmentación o estimación de pose. Aunque SGD es la opción predeterminada para muchas configuraciones de YOLO , Adam es una excelente alternativa para conjuntos de datos más pequeños o cuando se prioriza la convergencia rápida. rápida.
El siguiente ejemplo muestra cómo entrenar un YOLO11 utilizando el optimizador Adam :
from ultralytics import YOLO
# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")
Esta flexibilidad permite a investigadores e ingenieros experimentar con optimizador para encontrar la mejor configuración para sus conjuntos de datos específicos.