Glossaire

Descente stochastique de gradient (SGD)

Découvrez 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.

La descente stochastique de gradient (SGD) est un algorithme d'optimisation fondamental et largement utilisé dans l'apprentissage automatique (ML). Il s'agit d'une méthode itérative utilisée pour former des modèles en ajustant leurs paramètres internes, tels que les poids et les biais, afin de minimiser une fonction de perte. Contrairement à la descente de gradient traditionnelle, qui traite l'ensemble des données pour chaque mise à jour, la méthode SGD met à jour les paramètres en utilisant un seul échantillon de formation sélectionné de manière aléatoire. Cette approche "stochastique" rend le processus de formation nettement plus rapide et plus évolutif, ce qui est particulièrement important lorsque l'on travaille avec des données volumineuses. Les mises à jour bruitées peuvent également aider le modèle à échapper à des minima locaux médiocres dans le paysage des erreurs et à trouver potentiellement une meilleure solution globale.

Fonctionnement de la descente stochastique de gradient

L'idée de base du SGD est d'approximer le véritable gradient de la fonction de perte, qui est calculé sur l'ensemble des données, en utilisant le gradient de la perte pour un seul échantillon. Bien que ce gradient pour un seul échantillon soit une estimation bruyante, il est peu coûteux en termes de calcul et, en moyenne, va dans la bonne direction. Le processus consiste à répéter un cycle simple en deux étapes pour chaque échantillon d'apprentissage :

  1. Calculer le gradient : Calculer le gradient de la fonction de perte par rapport aux paramètres du modèle pour un seul exemple d'apprentissage.
  2. Mettre à jour les paramètres : Ajuster les paramètres dans la direction opposée au gradient, en fonction d'un taux d'apprentissage. Cela permet de faire évoluer le modèle vers un état où l'erreur est moindre pour cet échantillon spécifique.

Ce cycle est répété pendant de nombreuses passes sur l'ensemble du jeu de données, appelées époques, ce qui permet d'améliorer progressivement les performances du modèle. L'efficacité du SGD en a fait la pierre angulaire de l'apprentissage profond moderne, et il est pris en charge par tous les principaux frameworks tels que PyTorch et TensorFlow.

Sgd contre d'autres optimiseurs

SGD est l'une des nombreuses méthodes d'optimisation basées sur le gradient, chacune ayant ses propres compromis.

  • Descente de gradient par lots: Cette méthode calcule le gradient en utilisant l'ensemble des données d'apprentissage. Elle fournit un chemin stable et direct vers le minimum, mais elle est extrêmement lente et gourmande en mémoire pour les grands ensembles de données, ce qui la rend impraticable pour la plupart des applications modernes.
  • Descente en gradient par mini-lots: Il s'agit d'un compromis entre la descente de gradient par lots et la descente de gradient par lots. Elle met à jour les paramètres en utilisant un petit sous-ensemble aléatoire (un "mini-lot") des données. Elle équilibre la stabilité de la descente de gradient par lots et l'efficacité de la descente de gradient par lots et est l'approche la plus couramment utilisée dans la pratique.
  • Optimiseur Adam: Adam est un algorithme d'optimisation adaptatif qui maintient un taux d'apprentissage distinct pour chaque paramètre et l'ajuste au fur et à mesure que l'apprentissage progresse. Il converge souvent plus rapidement que SGD, mais SGD peut parfois trouver un meilleur minimum et offrir une meilleure généralisation, ce qui permet d'éviter le surajustement.

Applications dans le monde réel

Le SGD et ses variantes sont essentiels pour l'entraînement d'un large éventail de modèles d'intelligence artificielle dans différents domaines.

  • 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, l'entraînement 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 par des plateformes comme Ultralytics HUB. Les mises à jour rapides permettent une convergence plus rapide que la méthode Batch GD, ce qui est essentiel 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.
  • Formation de grands modèles de langage (LLM) : La formation de modèles pour le traitement du langage naturel (NLP) implique souvent d'énormes ensembles de données textuelles. SGD et ses variantes sont essentiels pour itérer à travers ces données de manière efficace, permettant aux modèles tels que GPT-4 ou ceux trouvés sur Hugging Face d' apprendre la grammaire, le contexte et la sémantique. La nature stochastique permet d'éviter les mauvais minima locaux dans le paysage complexe des pertes, un défi courant dans l'apprentissage des grands réseaux neuronaux. Ce processus est fondamental pour des tâches telles que la traduction automatique et l'analyse des sentiments.

Rejoindre la communauté Ultralytics

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

S'inscrire
Lien copié dans le presse-papiers