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 sophistiqué et largement utilisé. d 'optimisation sophistiqué et largement utilisé, conçu pour mettre à jour les paramètres d'un réseau neuronal pendant le processus de formation. les paramètres d'un réseau neuronal au cours du processus d'apprentissage. En combinant les meilleures propriétés de deux autres populaires de descente stochastique de gradient (SGD), à savoir l'algorithme de gradient adaptatif (AdaGrad) et la propagation quadratique moyenne (RMSProp), Adam calcule des taux d'apprentissage adaptatifs pour chaque paramètre individuel. d'apprentissage adaptatifs pour chaque paramètre individuel. Cette capacité Cette capacité lui permet de traiter efficacement les gradients épars sur des problèmes bruyants, ce qui en fait un choix par défaut pour la formation d'architectures complexes d'apprentissage profond (DL). des architectures complexes d'apprentissage profond (DL), y compris les derniers modèlesYOLO11 .
Le mécanisme de base d'Adam consiste à calculer les premiers et seconds moments des gradients afin d'adapter le taux d'apprentissage pour chaque poids dans l'échantillon. d'apprentissage pour chaque poids du réseau réseau neuronal. Vous pouvez considérer le "premier moment" comme l'élan qui maintient l'optimisation dans la bonne direction, à l'instar d'une balle lourde qui descend une colline. qui dévale une colline. Le "deuxième moment" suit la variance non centrée, en échelonnant efficacement la taille de pas en fonction de l'ampleur historique des gradients.
Lors de la rétropropagation, l'algorithme calcule le gradient de la fonction de perte par rapport aux poids. poids. Adam met ensuite à jour les moyennes mobiles exponentielles du gradient (momentum) et du gradient au carré (variance). Ces moyennes mobiles sont utilisées pour mettre à l'échelle le gradient actuel, en veillant à ce que le modèle fasse des pas plus importants dans les directions dans les directions où les gradients sont cohérents et des pas plus petits dans les directions où la variance est élevée. Ce processus est décrit en détail dans le document de recherche original Adam par Kingma et Ba.
Pour savoir quand utiliser Adam , il faut le comparer à d'autres algorithmes couramment utilisés dans les cadres d'apprentissage automatique. dans les cadres d'apprentissage machine (ML).
En raison de sa robustesse et de son besoin minimal de réglage des hyperparamètres de réglage des hyperparamètres, Adam est utilisé dans divers domaines à fort impact.
Lorsque vous utilisez l'APIPython d'Ultralytics , vous pouvez facilement sélectionner l'optimiseur Adam pour l'entraînement des modèles de détection d'objet, de segmentation ou d'estimation de la pose. Bien que SGD soit l'optimiseur par défaut pour de nombreuses configurations YOLO , Adam est une excellente alternative pour les petits ensembles de données ou lorsque la convergence rapide est prioritaire. convergence rapide.
L'exemple suivant montre comment former un YOLO11 à l'aide de l'optimiseur 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")
Cette flexibilité permet aux chercheurs et aux ingénieurs d'expérimenter configurations de l'optimiseur afin de trouver la meilleure pour leurs ensembles de données spécifiques.