Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Algorithme d'optimisation

Découvrez comment les algorithmes d'optimisation améliorent les performances de l'IA et du ML, de la formation des réseaux neuronaux aux applications concrètes dans les domaines de la santé et de l'agriculture.

Un algorithme d'optimisation est le moteur fondamental du processus de formation dans l'apprentissage machine (ML). l 'apprentissage automatique (ML) et l'apprentissage profond (DL). Sa fonction principale consiste à d'ajuster itérativement les paramètres internes d'un modèle - en particulier les les poids et les biais du modèle, afin de minimiser l'erreur produites lors des prédictions. Vous pouvez visualiser ce processus comme un randonneur essayant de trouver le point le plus bas dans un paysage montagneux et brumeux, brumeux et montagneux. L'algorithme d'optimisation guide le randonneur vers le bas, étape par étape, jusqu'à ce qu'il atteigne le fond de la vallée, qui représente l'état de la situation. de la vallée, qui représente l'état où la fonction de perte du modèle est minimisée et où sa précision est optimale. du modèle est minimisée et que sa précision est maximisée. maximale.

Fonctionnement des algorithmes d’optimisation

La formation d'un réseau neuronal implique un cycle continu de prédiction, de calcul des erreurs et de mise à jour des paramètres. cycle continu de prédiction, de calcul des erreurs et de mise à jour des paramètres. L'algorithme d'optimisation régit la phase phase de "mise à jour" de ce cycle. Après que le modèle a traité un lot de données données d'apprentissage, le système calcule la différence entre la sortie prédite et la cible réelle, une valeur quantifiée par la fonction de perte.

En utilisant une technique appelée rétropropagation, l'algorithme calcule le gradient, un vecteur indiquant la direction de l'augmentation la plus forte de l'erreur. Pour réduire l'erreur, l'optimiseur met à jour les poids dans la direction opposée à ce gradient. Pour réduire l'erreur, l'optimiseur met à jour les poids dans la direction opposée à ce gradient. La taille du pas effectué dans cette direction est déterminée par une configuration critique. est déterminée par une configuration critique appelée "taux d'apprentissage". taux d'apprentissage. Il est essentiel de trouver le bon équilibre. un pas trop grand peut dépasser le minimum, tandis qu'un pas trop petit peut entraîner un processus d'apprentissage léthargique léthargique qui nécessite de nombreuses époques pour converger. Des ressources comme les notes d'optimisation de Stanford CS231n fournissent des des informations techniques plus approfondies sur ces dynamiques.

Types courants d'algorithmes d'optimisation

Il n'existe pas d'optimiseur unique, et différents algorithmes offrent des avantages distincts en fonction de l'architecture et des données. l'architecture et des données.

  • Descente stochastique de gradient (SGD): Il s'agit de l'une des approches les plus classiques. Au lieu de calculer le gradient pour l'ensemble des données, SGD met à jour les paramètres à l'aide d'un seul exemple ou d'un petit lot. paramètres à l'aide d'un seul exemple ou d'un petit lot. Bien qu'elle soit efficace sur le plan des calculs, elle peut parfois osciller pendant la formation.
  • Adam Optimizer: Signifiant "Estimation du moment adaptatif", Adam est largement utilisé dans l'intelligence artificielle moderne. Adaptive Moment Estimation, Adam est largement utilisé dans l'IA moderne parce qu'il adapte le taux d'apprentissage pour chaque paramètre individuellement. individuellement. Il combine les avantages de deux autres extensions de SGD, connues sous les noms de AdaGrad et RMSProp, afin d'assurer une convergence plus rapide.
  • AdamW: variante d'Adam qui dissocie la décroissance des poids de la mise à jour du gradient, ce qui permet souvent d'obtenir de meilleures performances en matière de généralisation. souvent une meilleure performance de généralisation. C'est souvent le choix par défaut pour la formation des architectures de pointe comme les Transformers et le Ultralytics YOLO11 d'Ultralytics.

Applications concrètes

Les algorithmes d'optimisation sont les moteurs silencieux de nombreuses solutions d'IA sophistiquées. sophistiquées.

  1. Véhicules autonomes: Dans les les systèmes de voitures autonomes, les modèles de détection d'objets doivent permettre d'identifier les objets qui se trouvent à l'intérieur du véhicule, les modèles de détection d'objets doivent identifier les piétons, les panneaux et les autres véhicules avec une extrême précision. Pendant la phase de formation, un algorithme d'optimisation affine le réseau afin de minimiser les erreurs de détection dans des millions de scénarios de conduite. Cela permet de garantir que systèmes critiques pour la sécurité dans l'industrie automobile L 'IA dans l'automobile fonctionne de manière fiable en temps réel.
  2. Analyse d'images médicales: Lors du développement d'outils pour l'IA dans le domaine de la santé, comme la détection de tumeurs dans les IRM, la précision est primordiale. Les optimiseurs ajustent itérativement un réseau neuronal convolutif (CNN) afin de réduire les faux négatifs et de s'assurer que le modèle apprend à distinguer efficacement les tissus malins des tissus sains. efficacement.

Distinguer les concepts apparentés

Il est utile de différencier les algorithmes d'optimisation des autres termes similaires que l'on trouve dans les flux de travail de l'apprentissage automatique.

  • Algorithme d'optimisation vs. Fonction de perte: La fonction de perte joue le rôle de tableau d'affichage, en calculant une valeur numérique représentant l'erreur (par exemple, l'erreur quadratique moyenne). erreur quadratique moyenne). L'algorithme d'optimisation est le stratège qui utilise ce score pour ajuster les tactiques du modèle (poids) afin d'améliorer le score au prochain tour. pour améliorer le score au prochain tour.
  • Algorithme d'optimisation vs. Ajustement des hyperparamètres: Les algorithmes d'optimisation gèrent l'apprentissage des paramètres internes au cours de la formation. Le réglage des hyperparamètres implique la sélection des meilleurs paramètres externes - tels que le choix de l'optimiseur lui-même, la taille du lot ou le taux d'apprentissage initial - avant le début de la formation. le taux d'apprentissage initial - avant le début de la formation. Des outils tels que Ray Tune sont souvent utilisés pour automatiser la recherche de ces configurations externes. ces configurations externes.

Mise en œuvre de l'optimisation en Python

Lors de l'utilisation de cadres de haut niveau, la sélection d'un algorithme d'optimisation se résume souvent à un seul argument. L'exemple suivant suivant montre comment spécifier l'algorithme AdamW lors de la formation d'un YOLO11 à l'aide du modèle ultralytics l'emballage.

from ultralytics import YOLO

# Load the recommended YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the AdamW optimization algorithm
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")

Pour les chercheurs et les développeurs qui souhaitent mettre en œuvre des boucles personnalisées, des bibliothèques telles que PyTorch et TensorFlow fournissent de vastes collections d'algorithmes d'optimisation d'algorithmes d'optimisation préconstruits qui peuvent être facilement intégrés dans n'importe quelle architecture de modèle.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant