Glossaire

Descente stochastique de gradient (SGD)

Découvre comment la descente stochastique de gradient optimise les modèles d'apprentissage automatique, permettant une formation efficace pour les grands ensembles de données et les tâches d'apprentissage profond.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

La descente de gradient stochastique, communément appelée SGD, est un algorithme d'optimisation populaire et efficace très utilisé dans l'apprentissage automatique (Machine Learning, ML) et plus particulièrement dans l'apprentissage profond (Deep Learning, DL). Il sert de variante à l'algorithme standard de descente de gradient, mais il est spécifiquement conçu pour la vitesse et l'efficacité lorsqu'il s'agit de très grands ensembles de données. Au lieu de calculer le gradient (la direction de la descente la plus raide pour la fonction de perte) en utilisant l'ensemble des données à chaque étape, SGD approxime le gradient en fonction d'un seul échantillon de données sélectionné au hasard ou d'un petit sous-ensemble appelé mini-lot. Cette approche réduit considérablement les coûts de calcul et les besoins en mémoire, ce qui permet de former des modèles complexes sur des quantités massives de données dans des domaines tels que la vision par ordinateur.

Pertinence de l'apprentissage automatique

La SGD est la pierre angulaire de la formation des modèles d'apprentissage automatique à grande échelle, en particulier les réseaux neuronaux (NN) complexes qui alimentent de nombreuses applications modernes d'IA. Son efficacité le rend indispensable lorsqu'on travaille avec des ensembles de données qui sont trop grands pour tenir en mémoire ou qui prendraient trop de temps à traiter en utilisant la descente de gradient par lots traditionnelle. Des modèles comme Ultralytics YOLO utilisent souvent le SGD ou ses variantes pendant le processus de formation pour apprendre des modèles pour des tâches telles que la détection d'objets, la classification d'images et la segmentation d'images. Les principaux cadres d'apprentissage profond tels que PyTorch et TensorFlow fournissent des implémentations robustes de SGD, soulignant son rôle fondamental dans l'écosystème de l'IA.

Concepts clés

Pour comprendre les SGD, il faut avoir quelques idées de base :

  • Fonction de perte: Une mesure du degré de correspondance entre les prédictions du modèle et les valeurs cibles réelles. SGD vise à minimiser cette fonction.
  • Taux d'apprentissage: Un hyperparamètre qui contrôle la taille du pas effectué lors de chaque mise à jour des paramètres. Il est essentiel de trouver un bon taux d'apprentissage pour que la formation soit efficace. Les programmes de taux d'apprentissage sont souvent utilisés pour l'ajuster pendant la formation.
  • Taille du lot: Le nombre d'échantillons d'apprentissage utilisés dans une itération pour estimer le gradient. Dans le SGD pur, la taille du lot est de 1. Lorsqu'on utilise de petits sous-ensembles, on parle souvent de descente de gradient par mini-lots.
  • Données de formation: L'ensemble de données utilisé pour former le modèle. SGD traite ces données échantillon par échantillon ou par mini-lots. Il est essentiel de disposer de données de haute qualité, ce qui nécessite souvent une collecte et une annotation minutieuses des données.
  • Gradient : Un vecteur indiquant la direction de l'augmentation la plus abrupte de la fonction de perte. SGD déplace les paramètres dans la direction opposée au gradient calculé à partir d'un échantillon ou d'un mini-lot.
  • Époque : Un passage complet sur l'ensemble des données d'apprentissage. La formation comporte généralement plusieurs époques.

Différences par rapport aux concepts apparentés

SGD est un algorithme d'optimisation parmi d'autres, et il est important de le distinguer des autres :

Applications dans le monde réel

L'efficacité du SGD permet de l'utiliser dans de nombreuses applications d'intelligence artificielle à grande échelle :

Exemple 1 : Formation de grands modèles linguistiques (LLM)

La formation de modèles tels que ceux utilisés dans le traitement du langage naturel (NLP) implique souvent des ensembles de données textuelles massives (des milliards de mots). SGD et ses variantes (comme Adam) sont essentiels pour itérer efficacement dans ces données, ce qui permet à des modèles tels que GPT-4 ou ceux que l'on trouve sur Hugging Face d'apprendre la grammaire, le contexte et la sémantique. La nature stochastique permet d'échapper aux mauvais minima locaux dans le paysage complexe des pertes.

Exemple 2 : Formation à la détection d'objets en temps réel

Pour les modèles comme Ultralytics YOLO conçus pour l'inférence en temps réel, la formation doit être efficace. SGD permet aux développeurs d'entraîner ces modèles sur de grands ensembles de données d'images comme COCO ou des ensembles de données personnalisés gérés via des plateformes comme Ultralytics HUB. Les mises à jour rapides permettent une convergence plus rapide par rapport à Batch GD, ce qui est crucial pour itérer rapidement pendant le développement du modèle et le réglage des hyperparamètres. Cette efficacité favorise les applications dans des domaines tels que les véhicules autonomes et la robotique.

Tout lire