Glossaire

Adam Optimizer

Apprends comment l'optimiseur Adam permet une formation efficace des réseaux neuronaux avec des taux d'apprentissage adaptatifs, un élan et des applications réelles dans l'IA.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

Adam (Adaptive Moment Estimation) est un algorithme d'optimisation largement adopté et très utilisé dans l'apprentissage profond (DL) et l'apprentissage automatique (ML). Il est conçu pour mettre à jour efficacement les poids du réseau pendant le processus de formation en adaptant le taux d'apprentissage pour chaque paramètre individuellement. Présenté dans l'article"Adam : A Method for Stochastic Optimization" de Diederik P. Kingma et Jimmy Ba, Adam combine les avantages de deux autres techniques d'optimisation populaires : AdaGrad (Algorithme de gradient adaptatif) et RMSprop(Root Mean Square Propagation). Cette combinaison le rend particulièrement efficace pour la formation de grands réseaux neuronaux avec de nombreux paramètres et des ensembles de données complexes.

Comment fonctionne Adam

Adam calcule des taux d'apprentissage adaptatifs pour chaque paramètre en se basant sur les estimations des premiers et seconds moments des gradients. Essentiellement, il garde la trace d'une moyenne de décroissance exponentielle des gradients passés (semblable à l'élan) et d'une moyenne de décroissance exponentielle des gradients carrés passés (semblable à AdaGrad/RMSprop).

  • L'élan : Il permet d'accélérer la descente de gradient dans la direction concernée et d'amortir les oscillations, ce qui conduit à une convergence plus rapide.
  • Taux d'apprentissage adaptatif : Il ajuste le taux d'apprentissage pour chaque poids en fonction de la fréquence et de l'importance des mises à jour historiques. Les paramètres recevant des mises à jour importantes ou fréquentes obtiennent des taux d'apprentissage plus petits, tandis que ceux dont les mises à jour sont petites ou peu fréquentes obtiennent des taux plus importants. Ceci est particulièrement utile pour les problèmes avec des gradients épars ou des données bruyantes.
  • Correction du biais : Adam comprend un mécanisme pour contrecarrer le biais initial vers zéro dans les estimations du moment, en particulier pendant les premières étapes de la formation, lorsque les moyennes de décroissance sont encore en train de s'initialiser.

Par rapport à des algorithmes plus simples comme la descente stochastique de gradient (SGD), qui utilise un taux d'apprentissage unique et fixe (ou qui décroît selon un calendrier), l'adaptation par paramètre d'Adam permet souvent de progresser plus rapidement dans la recherche d'une bonne solution, en particulier avec des paysages de pertes complexes.

Les avantages d'Adam

Adam est populaire pour plusieurs raisons :

  • Efficacité informatique : Il nécessite relativement peu de mémoire et est efficace sur le plan informatique.
  • Bonne performance par défaut : Les hyperparamètres par défaut fonctionnent souvent bien dans un large éventail de problèmes, ce qui réduit la nécessité d'un réglage approfondi des hyperparamètres.
  • Adaptation aux problèmes de grande envergure : Il donne de bons résultats sur les problèmes avec de grands ensembles de données et des espaces de paramètres à haute dimension, courants dans la vision artificielle (CV) et le traitement du langage naturel (NLP).
  • Traite les objectifs non stationnaires : Elle est bien adaptée aux problèmes où la fonction objective change au fil du temps.
  • Efficace avec les gradients épars : Les taux d'apprentissage adaptatifs conviennent aux scénarios dans lesquels les gradients sont épars.

Exemples concrets

Adam est un optimiseur incontournable pour de nombreux modèles de pointe :

Exemple 1 : Vision par ordinateur

Dans le domaine de la vision par ordinateur, Adam est fréquemment utilisé pour former des réseaux neuronaux convolutionnels profonds (CNN) pour des tâches telles que la classification d'images, la détection d'objets et la segmentation d'images. Par exemple, l'entraînement d'un Ultralytics YOLO pour détecter des objets dans des images(comme celles de l'ensemble de données COCO) ou effectuer une segmentation d'instance peut tirer parti d'Adam pour une convergence efficace pendant la phase d'apprentissage. Il est également utilisé dans l'analyse d'images médicales pour des tâches telles que la détection de tumeurs.

Exemple 2 : Traitement du langage naturel

Adam est un optimiseur standard pour la formation de grands modèles de langage (LLM) tels que les variantes BERT et GPT. Lors de la formation de modèles pour des tâches telles que la traduction automatique, le résumé de texte ou l'analyse des sentiments, Adam aide à naviguer efficacement dans le paysage complexe des fonctions de perte associées à ces grands modèles(basés sur des transformateurs).

Utilisation en Ultralytics YOLO

Au sein de l'écosystème Ultralytics , Adam et sa variante AdamW (Adam with decoupled weight decay) sont des optimiseurs disponibles pour l'entraînement des modèlesYOLO 'Ultralytics . L'utilisation des taux d'apprentissage adaptatifs d'Adam peut accélérer la convergence lors de l'apprentissage de modèles de détection d'objets, de segmentation d'instances ou d'estimation de la pose tels que YOLO11 Alors que SGD est souvent l'optimiseur par défaut et recommandé pour certains modèles YOLO en raison d'une généralisation finale potentiellement meilleure(évitant le surajustement), Adam offre une alternative robuste, particulièrement utile dans certains scénarios ou lors de l'expérimentation initiale et de l'évaluation du modèle. Tu peux facilement configurer l'optimiseur et d'autres paramètres d'entraînement. Des outils comme Ultralytics HUB rationalisent le processus, permettant aux utilisateurs de former des modèles à l'aide de divers optimiseurs, y compris Adam, soit localement, soit via la formation dans le nuage. Des outils comme PyTorch et TensorFlow fournissent des implémentations standard d'Adam, qui sont utilisées dans le cadre d'Ultralytics . Pour améliorer encore les performances, il faut envisager des techniques telles que la distillation des connaissances ou l'exploration de différentes architectures de modèles.

Tout lire