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 de gradientSGD est un algorithme d'optimisation d 'optimisation utilisé massivement dans l'apprentissage l 'apprentissage automatique (ML) et l'apprentissage profond (DL). Il agit comme la force motrice de l'apprentissage du modèle, en ajustant de manière itérative les internes du modèle afin de minimiser l'erreur calculée par une calculée par une fonction de perte. Contrairement à la descente de gradient traditionnelle, qui traite l'ensemble des données pour calculer une seule mise à jour, la descente SGD gradient modifie les paramètres du modèle à l'aide d'un seul exemple d'apprentissage sélectionné au hasard. à l'aide d'un seul exemple d'apprentissage sélectionné de manière aléatoire à la fois. Cette approche "stochastique" ou aléatoire permet à l'algorithme d'être efficace sur le plan informatique et très évolutif, créant ainsi une voie praticable pour la formation sur les données volumineuses (big data), où le traitement de l'ensemble des données n'est pas possible. big data où le traitement de l'ensemble des données en une seule fois serait prohibitif pour la mémoire.
L'objectif principal de la formation d'un réseau neuronal est de de naviguer dans un paysage d'erreurs complexe pour trouver le point le plus bas, représentant la plus grande précision. SGD atteint cet objectif par le biais d'un cycle répétitif. Tout d'abord, il calcule le gradient, c'est-à-dire la direction de l'augmentation la plus forte de l'erreur, pour un échantillon spécifique à l'aide de la rétropropagation. échantillon spécifique à l'aide de la rétropropagation. Ensuite, il met à jour les poids dans la direction opposée pour réduire l'erreur.
L'ampleur de cette étape est contrôlée par le taux d'apprentissage, une valeur critique configurée pendant la phase d'apprentissage. d'apprentissage, une valeur critique configurée lors de l 'ajustement des hyperparamètres. Comme SGD utilise des échantillons uniques, le chemin vers le minimum est bruyant et en zigzag plutôt qu'en ligne droite. Ce bruit est souvent Ce bruit est souvent bénéfique, car il aide le modèle à échapper aux minima locaux (solutions sous-optimales) où les algorithmes non stochastiques risquent de rester bloqués. de se bloquer, ce qui lui permet de trouver une meilleure solution globale. Ce processus se répète pendant de nombreuses époques, ou passages complets dans l'ensemble de données, jusqu'à ce que le jusqu'à ce que le modèle converge. Les lecteurs peuvent explorer l'intuition mathématique dans les Stanford CS231n sur l'optimisation.
Il est essentiel de comprendre en quoi les SGD diffèrent des concepts apparentés pour choisir la bonne stratégie pour vos données d'apprentissage. données de formation.
SGD et ses variantes constituent la norme pour la formation des systèmes d'intelligence artificielle modernes dans divers secteurs d'activité.
Le ultralytics permet aux utilisateurs de passer facilement d'un optimiseur à l'autre. Alors qu'AdamW peut être l'AdamW par
par défaut pour certaines tâches, SGD est souvent utilisé pour des réglages fins ou des besoins de recherche spécifiques. L'extrait ci-dessous
montre comment sélectionner explicitement SGD pour l'entraînement d'un modèle.
from ultralytics import YOLO
# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
Ce code initialise un YOLO11 et commence la formation
avec optimizer="SGD". Pour une personnalisation plus poussée, reportez-vous à la section
configuration de l'entraînement au modèle la documentation. Des cadres comme
TensorFlow et
Scikit-learn fournissent également des implémentations robustes de SGD
pour diverses tâches d'apprentissage automatique.