Découvrez comment l'optimiseur Adam permet une formation efficace des réseaux neuronaux avec des taux d'apprentissage adaptatifs, une dynamique et des applications réelles dans le domaine de l'IA.
Adam (Adaptive Moment Estimation) est un algorithme d'optimisation largement adopté et 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" par Diederik P. Kingma et Jimmy Ba, Adam combine les avantages de deux autres techniques d'optimisation populaires : AdaGrad (Adaptive Gradient Algorithm) 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.
Adam calcule des taux d'apprentissage adaptatifs pour chaque paramètre sur la base d'estimations des premiers et seconds moments des gradients. Essentiellement, il garde la trace d'une moyenne des gradients passés en décroissance exponentielle (similaire à l'élan) et d'une moyenne des gradients passés au carré en décroissance exponentielle (similaire à AdaGrad/RMSprop).
Par rapport à des algorithmes plus simples comme la descente stochastique de gradient (SGD), qui utilise un taux d'apprentissage unique et fixe (ou un taux 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.
Adam est populaire pour plusieurs raisons :
Adam est un optimiseur de référence pour de nombreux modèles de pointe :
Dans le domaine de la vision par ordinateur, Adam est fréquemment utilisé pour entraîner des réseaux neuronaux convolutionnels (CNN) profonds 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 modèle Ultralytics YOLO pour la détection d'objets dans des images(comme celles de l'ensemble de données COCO) ou la segmentation d'instances peut tirer parti d'Adam pour une convergence efficace pendant la phase d'entraînement. Adam est également utilisé dans l'analyse d'images médicales pour des tâches telles que la détection de tumeurs.
Adam est un optimiseur standard pour la formation de grands modèles de langage (LLM ) tels que les variantes BERT et GPT. Lors de l'apprentissage de modèles pour des tâches telles que la traduction automatique, le résumé de texte ou l'analyse de sentiments, Adam aide à naviguer efficacement dans le paysage complexe des fonctions de perte associées à ces grands modèles(basés sur des transformateurs).
Dans l'écosystème Ultralytics, Adam et sa variante AdamW (Adam with decoupled weight decay) sont des optimiseurs disponibles pour l'apprentissage des modèles YOLO d'Ultralytics. L'utilisation des taux d'apprentissage adaptatifs d'Adam peut accélérer la convergence pendant l'entraînement des modèles de détection d'objet, de segmentation d'instance ou d'estimation de pose comme YOLO11 ou YOLOv10. 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 fournit une alternative robuste, particulièrement utile dans certains scénarios ou lors de l'expérimentation initiale et de l'évaluation du modèle. Vous pouvez 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 par le biais de la formation en nuage. Des frameworks comme PyTorch et TensorFlow fournissent des implémentations standard d'Adam, qui sont utilisées dans le framework Ultralytics. Pour améliorer encore les performances, il convient d'envisager des techniques telles que la distillation des connaissances ou l'exploration de différentes architectures de modèles.