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.
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.
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.
Les algorithmes d'optimisation sont les moteurs silencieux de nombreuses solutions d'IA sophistiquées. sophistiquées.
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.
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.