Optimization Algorithm
Découvre comment les algorithmes d’optimisation comme SGD et AdamW pilotent l’entraînement du ML. Apprends à minimiser la perte et à améliorer les performances de Ultralytics YOLO26 pour les applications d’IA.
Un algorithme d’optimisation sert de moteur de calcul central qui pilote le processus d’entraînement des modèles d’apprentissage automatique (ML) et d’apprentissage profond (DL). Sa responsabilité principale consiste à ajuster itérativement les poids du modèle et les biais internes afin de minimiser l’écart entre les résultats prédits et les cibles réelles. Tu peux visualiser ce processus comme un randonneur qui tente de descendre une montagne brumeuse pour atteindre le point le plus bas de la vallée. L’algorithme d’optimisation agit comme le guide, en déterminant la direction et la longueur du pas que le randonneur doit effectuer pour atteindre le bas, ce qui correspond à l’état où la fonction de perte est minimisée et où l’exactitude prédictive du modèle est maximisée.
Fonctionnement des algorithmes d’optimisation#
L’entraînement d’un réseau neuronal implique un cycle répétitif de prédiction, de calcul de l’erreur et de mise à jour des paramètres. L’algorithme d’optimisation contrôle la phase de « mise à jour » de cette boucle. Une fois qu’un lot de données d’entraînement a été traité, le système calcule un gradient — un vecteur qui pointe dans la direction de l’augmentation la plus forte de l’erreur — à l’aide d’une méthode appelée rétropropagation.
L’optimiseur met ensuite à jour les paramètres du modèle dans la direction opposée à celle du gradient afin de réduire l’erreur. L’amplitude de cette mise à jour est déterminée par un hyperparamètre crucial appelé taux d’apprentissage. Si le pas est trop grand, le modèle risque de dépasser le minimum global ; s’il est trop petit, l’entraînement peut devenir excessivement lent ou rester bloqué dans un minimum local. Des ressources avancées comme les notes d’optimisation de Stanford CS231n proposent des explications techniques plus approfondies sur ces dynamiques.
Types courants d’algorithmes d’optimisation#
Les problèmes différents nécessitent des stratégies différentes. Bien qu’il existe de nombreuses variantes, quelques algorithmes clés dominent le développement moderne de l’IA :
- Descente de gradient stochastique (SGD) : Une approche classique qui met à jour les paramètres à l’aide d’un seul exemple ou d’un petit lot, plutôt que de l’ensemble des données. Cette méthode est efficace sur le plan des calculs et largement utilisée dans des bibliothèques comme Scikit-learn.
- Optimiseur Adam : Adam, qui signifie estimation adaptative des moments, ajuste le taux d’apprentissage individuellement pour chaque paramètre. Il est présenté en détail dans l’article de recherche fondateur sur Adam de Kingma et Ba et constitue souvent le choix par défaut pour l’entraînement généraliste en raison de sa rapidité et de ses propriétés de convergence.
- AdamW : Une variante d’Adam qui dissocie la décroissance des poids de la mise à jour du gradient, ce qui améliore la capacité de généralisation. Cet optimiseur est souvent privilégié pour entraîner des architectures de pointe comme les Transformers et les modèles YOLO26 d’Ultralytics hautes performances.
Applications concrètes#
Les algorithmes d’optimisation opèrent discrètement en arrière-plan de presque toutes les solutions d’IA performantes, en transformant les données en informations exploitables.
-
Véhicules autonomes : Dans les technologies de conduite autonome, les systèmes de détection d’objets doivent reconnaître instantanément les piétons, les feux de signalisation et les autres voitures. Lors de l’entraînement de ces systèmes pour l’IA dans l’automobile, un algorithme d’optimisation traite des millions d’images de routes et ajuste finement le réseau afin de minimiser les erreurs de détection. Cela garantit que la voiture s’arrête de manière fiable lorsqu’elle voit une personne, ce qui contribue à prévenir les accidents.
-
Analyse d’images médicales : Pour les applications d’IA dans le secteur de la santé, comme l’identification de tumeurs sur des IRM, la précision est indispensable. Les optimiseurs guident l’entraînement des réseaux neuronaux convolutionnels (CNNs) afin de distinguer les tissus malins des tissus sains avec une sensibilité élevée, réduisant ainsi le risque de faux négatifs lors de diagnostics critiques.
Distinction entre concepts connexes#
Il est important de différencier l’algorithme d’optimisation des autres composants du processus d’apprentissage afin de bien comprendre le fonctionnement global.
- Algorithme d’optimisation ou fonction de perte : La fonction de perte agit comme un « tableau de scores » en calculant une valeur numérique, telle que l’erreur quadratique moyenne, qui représente le degré d’erreur des prédictions du modèle. L’algorithme d’optimisation est le « stratège » qui utilise ce score pour ajuster les poids et améliorer les performances au tour suivant.
- Algorithme d’optimisation ou réglage des hyperparamètres : L’algorithme d’optimisation apprend les paramètres internes (les poids) pendant les boucles d’entraînement. Le réglage des hyperparamètres consiste à sélectionner les meilleurs paramètres externes — comme le choix de l’optimiseur lui-même, la taille du lot ou le taux d’apprentissage initial — avant le début de l’entraînement. Des outils automatisés comme Ray Tune sont souvent utilisés pour trouver la combinaison optimale de ces paramètres externes.
Implémentation de l’optimisation en Python#
Dans les frameworks modernes, la sélection d’un algorithme d’optimisation s’effectue souvent au moyen d’un seul argument. L’exemple suivant montre comment entraîner un modèle YOLO26 à l’aide de l’optimiseur AdamW dans le package ultralytics. Tu peux également utiliser la plateforme Ultralytics pour gérer ces sessions d’entraînement sans écrire de code.
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimization algorithm
# The optimizer iteratively updates weights to minimize loss on the dataset
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")Pour les personnes qui s’intéressent aux mécanismes de bas niveau, des frameworks comme PyTorch Optimizers et TensorFlow Keras Optimizers proposent une documentation complète sur l’implémentation et la personnalisation de ces algorithmes pour des architectures de recherche personnalisées.









