Glossar

Stochastischer Gradientenabstieg (SGD)

Entdecken Sie, wie der stochastische Gradientenabstieg Modelle für maschinelles Lernen optimiert und effizientes Training für große Datensätze und Deep-Learning-Aufgaben ermöglicht.

Der stochastische Gradientenabstieg (SGD) ist ein grundlegender und weit verbreiteter Optimierungsalgorithmus im maschinellen Lernen (ML). Es handelt sich um eine iterative Methode zum Trainieren von Modellen durch Anpassung ihrer internen Parameter, wie Gewichte und Verzerrungen, um eine Verlustfunktion zu minimieren. Im Gegensatz zum traditionellen Gradientenabstieg, bei dem für jede Aktualisierung der gesamte Datensatz verarbeitet wird, aktualisiert SGD die Parameter nur anhand einer einzigen, zufällig ausgewählten Trainingsstichprobe. Dieser "stochastische" Ansatz macht den Trainingsprozess deutlich schneller und skalierbarer, was besonders bei der Arbeit mit großen Datenmengen wichtig ist. Die verrauschten Aktualisierungen können dem Modell auch helfen, schlechte lokale Minima in der Fehlerlandschaft zu umgehen und möglicherweise eine bessere Gesamtlösung zu finden.

So funktioniert der stochastische Gradientenabstieg

Die Kernidee hinter SGD ist die Annäherung an den wahren Gradienten der Verlustfunktion, der über den gesamten Datensatz berechnet wird, durch Verwendung des Gradienten des Verlusts für eine einzelne Stichprobe. Dieser Gradient für eine einzelne Stichprobe ist zwar eine verrauschte Schätzung, aber sie ist rechnerisch günstig und weist im Durchschnitt in die richtige Richtung. Der Prozess beinhaltet die Wiederholung eines einfachen zweistufigen Zyklus für jede Trainingsstichprobe:

  1. Berechnen Sie den Gradienten: Berechnen Sie den Gradienten der Verlustfunktion in Bezug auf die Parameter des Modells für ein einzelnes Trainingsbeispiel.
  2. Aktualisieren Sie die Parameter: Anpassung der Parameter in der entgegengesetzten Richtung des Gradienten, skaliert mit einer Lernrate. Dadurch wird das Modell in Richtung eines Zustands mit geringerem Fehler für diese spezifische Stichprobe bewegt.

Dieser Zyklus wird für viele Durchläufe über den gesamten Datensatz, die so genannten Epochen, wiederholt, wodurch die Leistung des Modells schrittweise verbessert wird. Die Effizienz von SGD hat es zu einem Eckpfeiler des modernen Deep Learning (DL) gemacht, und es wird von allen wichtigen Frameworks wie PyTorch und TensorFlow unterstützt.

Sgd im Vergleich zu anderen Optimierern

SGD ist eine von mehreren gradientenbasierten Optimierungsmethoden, die jeweils ihre eigenen Kompromisse aufweisen.

  • Batch-Gradientenabstieg: Bei dieser Methode wird der Gradient anhand des gesamten Trainingsdatensatzes berechnet. Sie bietet einen stabilen und direkten Weg zum Minimum, ist aber bei großen Datensätzen extrem langsam und speicherintensiv, was sie für die meisten modernen Anwendungen unpraktisch macht.
  • Mini-Batch Gradientenabstieg: Dies ist ein Kompromiss zwischen Batch GD und SGD. Dabei werden die Parameter anhand einer kleinen, zufälligen Teilmenge (einer "Mini-Batch") der Daten aktualisiert. Es schafft ein Gleichgewicht zwischen der Stabilität von Batch GD und der Effizienz von SGD und ist der in der Praxis am häufigsten verwendete Ansatz.
  • Adam Optimierer: Adam ist ein adaptiver Optimierungsalgorithmus, der für jeden Parameter eine eigene Lernrate beibehält und diese mit fortschreitendem Lernprozess anpasst. Er konvergiert oft schneller als SGD, aber SGD kann manchmal ein besseres Minimum finden und eine bessere Verallgemeinerung bieten, was dazu beiträgt, eine Überanpassung zu verhindern.

Anwendungen in der realen Welt

SGD und seine Varianten sind für das Training einer breiten Palette von KI-Modellen in verschiedenen Bereichen von entscheidender Bedeutung.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert