Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Adam Optimizer

Découvrez Adam pour le deep learning. Découvrez comment il combine momentum et RMSProp pour une convergence plus rapide dans des modèles tels que Ultralytics .

Adam , abréviation de Adaptive Moment Estimation (estimation adaptative du moment), est un algorithme d'optimisation sophistiqué largement utilisé pour entraîner des modèles d'apprentissage profond. Il a révolutionné le domaine en combinant les avantages de deux autres extensions populaires de la descente de gradient stochastique (SGD): l' algorithme de gradient adaptatif (AdaGrad) et la propagation de la moyenne quadratique (RMSProp). En calculant des taux d'apprentissage adaptatifs individuels pour différents paramètres à partir d' estimations des premier et deuxième moments des gradients, Adam aux réseaux neuronaux de converger beaucoup plus rapidement que les méthodes traditionnelles. Sa robustesse et ses exigences minimales en matière de réglage en font le choix par défaut de nombreux praticiens qui se lancent dans un nouveau projet d'apprentissage automatique (ML).

Le fonctionnement d'Adam

À la base, l'entraînement d'un modèle consiste à minimiser une fonction de perte, qui mesure la différence entre les prédictions du modèle et les données réelles. Les algorithmes standard utilisent généralement une taille de pas constante (taux d'apprentissage) pour descendre le « paysage de perte » vers l'erreur minimale. Cependant, ce paysage est souvent complexe, avec des ravins et des plateaux qui peuvent piéger les algorithmes plus simples.

Adam ce problème en conservant deux tampons historiques pour chaque paramètre :

  1. Momentum (premier moment) : similaire à une balle lourde qui roule en descendant une colline, il suit la moyenne mobile des gradients passés afin de maintenir la vitesse dans la direction pertinente.
  2. Variance (deuxième moment) : elle suit la moyenne mobile des gradients au carré, qui met à l'échelle le taux d'apprentissage.

Cette combinaison permet à l'optimiseur de prendre des mesures plus importantes dans les zones plates du paysage et des mesures plus petites et plus prudentes dans les zones escarpées ou bruyantes. Les mécanismes spécifiques sont détaillés dans l'articleAdam fondamental Adam de Kingma et Ba, qui a démontré sa supériorité empirique dans diverses tâches d'apprentissage profond (DL).

Applications concrètes

La polyvalence de Adam a conduit à son adoption dans pratiquement tous les secteurs de l' intelligence artificielle (IA).

Adam SGD

Bien Adam généralement plus Adam , il est important de le distinguer de la descente stochastique du gradient (SGD). SGD les pondérations du modèle à l'aide d'un taux d'apprentissage fixe et est souvent préférée pour les étapes finales de l'entraînement des modèles de détection d'objets de pointe , car elle permet parfois d' obtenir une généralisation (précision finale) légèrement meilleure sur les données de test.

Cependant, Adam « adaptatif », ce qui signifie qu'il gère automatiquement le réglage du taux d'apprentissage. Cela le rend beaucoup plus convivial pour les expériences initiales et les architectures complexes où le réglage SGD difficile. Pour les utilisateurs qui gèrent des expériences sur la Ultralytics , le passage d'un optimiseur à l'autre pour comparer les performances est souvent une étape clé dans le réglage des hyperparamètres.

Mise en œuvre avec Ultralytics

Les frameworks modernes tels que PyTorch et la bibliothèque Ultralytics facilitent l'utilisation Adam . Une variante populaire appelée AdamW (Adam décroissance des poids) est souvent recommandée car elle corrige les problèmes de régularisation de Adam original. Elle est particulièrement efficace pour les dernières architectures telles que YOLO26, qui bénéficie de la stabilité AdamW .

L'exemple suivant montre comment entraîner un modèle YOLO26 à l'aide de l'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")

Pour les développeurs intéressés par les fondements théoriques plus approfondis, des ressources telles que les notes d'optimisation CS231n de Stanford fournissent d'excellentes visualisations Adam à d'autres algorithmes tels que RMSProp et AdaGrad. De plus, la documentationPyTorch fournit des détails techniques sur les arguments et les spécificités de mise en œuvre disponibles pour la personnalisation.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant