Entdecken Sie, wie Stochastic Gradient Descent Modelle für maschinelles Lernen optimiert und so effizientes Training für große Datensätze und Deep-Learning-Aufgaben ermöglicht.
Der stochastische GradientenabstiegSGD) ist ein Eckpfeiler Optimierungsalgorithmus, der in den Bereichen maschinellem Lernen (ML) und tiefes Lernen (DL). Er fungiert als treibende Kraft treibende Kraft beim Modelltraining, indem er iterativ die internen Modellgewichte und Verzerrungen, um den durch eine Verlustfunktion der durch eine Verlustfunktion berechnet wird. Im Gegensatz zum traditionellen Gradientenabstieg, der den gesamten Datensatz verarbeitet, um eine einzige Aktualisierung zu berechnen, ändert SGD die Modellparameter jeweils nur ein einziges, zufällig ausgewähltes Trainingsbeispiel verwendet. Dieser "stochastische" oder zufällige Ansatz Dieser "stochastische" oder zufällige Ansatz macht den Algorithmus rechnerisch effizient und hochgradig skalierbar und schafft einen gangbaren Weg für das Training mit Daten, bei denen die gleichzeitige Verarbeitung des gesamten Datensatzes zu speicherintensiv wäre.
Das Hauptziel des Trainings eines neuronalen Netzes besteht darin durch eine komplexe Fehlerlandschaft zu navigieren, um den niedrigsten Punkt zu finden, der die höchste Genauigkeit darstellt. SGD erreicht dies durch einen sich wiederholenden Zyklus. Zunächst wird der Gradient - die Richtung des steilsten Anstiegs des Fehlers - für eine bestimmte Probe bestimmte Probe mit Hilfe von Backpropagation. Dann werden werden die Gewichte in die entgegengesetzte Richtung aktualisiert, um den Fehler zu verringern.
Die Größe dieses Schritts wird durch die Lernrate gesteuert, ein kritischer Wert, der während der Abstimmung der Hyperparameter festgelegt wird. Da SGD mit einzelne Stichproben verwendet, ist der Weg zum Minimum eher verrauscht und zickzackförmig als eine gerade Linie. Dieses Rauschen ist oft vorteilhaft, da es dem Modell hilft, lokale Minima - suboptimale Lösungen, in denen nicht-stochastische Algorithmen stecken bleiben könnten - zu umgehen. so dass es eine bessere globale Lösung finden kann. Dieser Prozess wiederholt sich über viele Epochen oder komplette Durchläufe durch den Datensatz, bis das Modell konvergiert. Die Leser können die mathematische Intuition in den Stanford CS231n Optimierung Notizen.
Zu verstehen, wie sich SGD von verwandten Konzepten unterscheidet, ist entscheidend für die Auswahl der richtigen Strategie für Ihre Trainingsdaten.
SGD und seine Varianten sind der Standard für das Training moderner KI-Systeme in verschiedenen Branchen.
Die ultralytics Bibliothek ermöglicht es den Benutzern, einfach zwischen den Optimierern zu wechseln. Während AdamW die
Standard für einige Aufgaben ist, wird SGD häufig für Feinabstimmungen oder spezielle Forschungsanforderungen verwendet. Der folgende Ausschnitt
zeigt, wie man SGD explizit für das Training eines Modells auswählt.
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)
Dieser Code initialisiert eine YOLO11 Modell und beginnt die Ausbildung
mit optimizer="SGD". Weitere Anpassungen finden Sie im Abschnitt
Konfiguration der Modellschulung Dokumentation. Frameworks wie
TensorFlow und
Scikit-learn bieten auch robuste Implementierungen von SGD
für verschiedene Aufgaben des maschinellen Lernens.