Découvrez comment la descente de gradient stochastique optimise les modèles d'apprentissage automatique, permettant un entraînement efficace pour les grands ensembles de données et les tâches de deep learning.
La descente stochastique du gradient (SGD) est un algorithme d'optimisation fondamental largement utilisé dans l'apprentissage automatique et l' apprentissage profond pour entraîner des modèles. Il s'agit d'une variante de la méthode standard de descente du gradient, conçue pour traiter efficacement de grands ensembles de données. Alors que la descente du gradient traditionnelle calcule l'erreur et met à jour les paramètres du modèle en utilisant l' ensemble des données à la fois, SGD les paramètres en utilisant un seul exemple d'entraînement sélectionné au hasard à la fois. Cette approche stochastique, ou aléatoire, réduit considérablement la charge de calcul et permet des itérations plus rapides, ce qui en fait le choix privilégié pour l'entraînement de réseaux neuronaux complexes sur des ensembles de données massifs où le traitement simultané de toutes les données serait impossible en raison des contraintes de mémoire.
Le mécanisme central du SGD à minimiser de manière itérative une fonction de perte, qui mesure la différence entre les prédictions du modèle et les valeurs cibles réelles. Dans une boucle d'apprentissage typique, l'algorithme effectue un passage en avant pour faire une prédiction sur un seul point de données. Il calcule ensuite le gradient, c'est-à-dire la direction de l'augmentation la plus forte de l'erreur, à l'aide de la rétropropagation. Enfin, il met à jour les poids du modèle dans la direction opposée au gradient afin de réduire l'erreur.
Comme SGD qu'un seul échantillon par étape, le chemin vers l'erreur minimale n'est pas une ligne droite, mais plutôt une trajectoire en zigzag ou bruyante. Ce bruit est souvent bénéfique ; il aide le modèle à échapper aux minima locaux (solutions sous-optimales où une descente de gradient standard pourrait se bloquer), lui permettant ainsi de trouver potentiellement une meilleure solution globale. La vitesse et la taille de ces mises à jour sont contrôlées par un hyperparamètre appelé taux d'apprentissage. Trouver le taux d'apprentissage optimal est un élément clé du réglage des hyperparamètres, car un taux trop élevé peut amener le modèle à dépasser le minimum, tandis qu'un taux trop faible entraîne une convergence très lente .
Il est important de distinguer SGD autres stratégies d'optimisation afin de choisir l'outil adapté à votre tâche spécifique d'apprentissage automatique.
SGD le moteur derrière bon nombre des applications d'IA avec lesquelles nous interagissons quotidiennement.
Le ultralytics La bibliothèque simplifie le processus de sélection d'un optimiseur. Alors que les modèles plus récents comme
YOLO26 SGD
ont hautement optimisés, vous pouvez choisir explicitement SGD
pour l'entraînement si votre cas d'utilisation ou votre recherche spécifique l'exige. L'exemple ci-dessous montre comment entraîner un
YOLO11 modèle de classification utilisant SGD.
from ultralytics import YOLO
# Load a pre-trained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Train the model on the MNIST dataset using the SGD optimizer
# The 'optimizer' argument specifies the algorithm
results = model.train(data="mnist", epochs=5, optimizer="SGD", lr0=0.01)
Cet extrait initialise un modèle et lance le
entraînement du modèle processus sur le
MNIST ensemble de données. En définissant
optimizer="SGD", le framework gère automatiquement les calculs complexes de rétropropagation et de mise à jour des paramètres
. Pour des configurations plus avancées, telles que l'ajustement de l'inertie ou de la décroissance des poids, reportez-vous au
guide de configuration de la formation. La compréhension de ces mécanismes sous-jacents
est cruciale pour le débogage et l'amélioration.
indicateurs de performance du modèle.