Wie kann der stochastische Gradientenabstieg das Problem eines lokalen Minimums vermeiden?

18

Ich weiß, dass der stochastische Gradientenabstieg ein zufälliges Verhalten hat, aber ich weiß nicht warum.
Gibt es eine Erklärung dafür?

SunshineAtNoon
quelle
10
Was hat Ihre Frage mit Ihrem Titel zu tun?
Neil G

Antworten:

21

Der Algorithmus für den stochastischen Gradienten (SG) verhält sich wie ein Algorithmus für das simulierte Tempern (SA), bei dem die Lernrate des SG mit der Temperatur des SA zusammenhängt. Die Zufälligkeit oder das Rauschen, das durch SG eingeführt wird, ermöglicht es, lokalen Minima zu entkommen, um ein besseres Minimum zu erreichen. Natürlich hängt es davon ab, wie schnell Sie die Lernrate senken. Lesen Sie Abschnitt 4.2 des Stochastischen Gradientenlernens in neuronalen Netzen (pdf) , in dem es ausführlicher erläutert wird.

Clara
quelle
4
Sehen Sie sich auch Abschnitt 4.1 nicht an, in dem der zweite Satz sich auf einen begrenzten Fall nichtkonvexer Funktionen bezieht und besagt, dass er nur (mit unendlichen Abtastwerten) zu einem Punkt mit Gradient 0 konvergiert. Er kann kein globales Minimum oder sogar ein Maximum sein . SGD ist aus praktischen Gründen, wie zum Beispiel dem verteilten Lernen, interessanter, nicht sicher, dass es das lokale Minimum "vermeiden" wird.
nil
2

Beim stochastischen Gradientenabstieg werden die Parameter für jede Beobachtung geschätzt, im Gegensatz zur gesamten Stichprobe beim regulären Gradientenabstieg (Batch-Gradientenabstieg). Das gibt ihm eine Menge Zufälligkeit. Der Pfad des stochastischen Gefälleabstiegs verläuft über mehrere Orte und "springt" daher eher aus einem lokalen Minimum heraus und findet ein globales Minimum (Anmerkung *). Der stochastische Gradientenabstieg kann jedoch im lokalen Minimum stecken bleiben.

Hinweis: Es ist üblich, die Lernrate konstant zu halten. In diesem Fall konvergiert der stochastische Gradientenabstieg nicht. es wandert nur um den gleichen Punkt. Wenn jedoch die Lernrate mit der Zeit abnimmt, beispielsweise in umgekehrter Beziehung zur Anzahl der Iterationen, würde der stochastische Gradientenabstieg konvergieren.

Akavall
quelle
Es ist nicht wahr, dass der stochastische Gradientenabstieg nicht wirklich konvergiert und sich nur um einen bestimmten Punkt wundert. Dies wäre der Fall, wenn die Lernrate konstant gehalten würde. Die Lernraten tendieren jedoch zu Null, weil auf diese Weise der Algorithmus, wenn er nahe am Minimum einer konvexen Funktion liegt, aufhört zu schwingen und konvergiert. Der Schlüssel für den Beweis der Konvergenz des stochastischen Gradienten sind die Bedingungen, die für die Reihe der Lernraten gelten. Siehe die Gleichungen (6) und (27) des Originalpapiers von Robbins und Monro.
Clara
2

Wie bereits in den vorherigen Antworten erwähnt, weist der stochastische Gradientenabstieg eine viel rauschintensivere Fehleroberfläche auf, da Sie jede Stichprobe iterativ auswerten. Während Sie in jeder Epoche einen Schritt in Richtung des globalen Minimums beim Batch-Gradientenabstieg machen (über das Trainingsset gehen), müssen die einzelnen Schritte Ihres stochastischen Gradientenabstiegsgradienten je nach ausgewerteter Stichprobe nicht immer auf das globale Minimum zeigen.

Um dies anhand eines zweidimensionalen Beispiels zu veranschaulichen, finden Sie hier einige Abbildungen und Zeichnungen aus Andrew Ngs Maschinellem Lernkurs.

Erster Gefälleabstieg:

Bildbeschreibung hier eingeben

Zweitens stochastischer Gefälleabstieg:

Bildbeschreibung hier eingeben

Der rote Kreis in der unteren Abbildung soll veranschaulichen, dass der stochastische Gradientenabstieg im Bereich um das globale Minimum "ständig aktualisiert" wird, wenn Sie eine konstante Lernrate verwenden.

Im Folgenden finden Sie einige praktische Tipps für den Fall, dass Sie eine stochastische Gradientenabnahme verwenden:

1) Mische das Trainingsset vor jeder Epoche (oder Iteration in der "Standard" -Variante)

2) Verwenden Sie eine adaptive Lernrate, um näher am globalen Minimum zu "glühen"


quelle
Warum sollten Sie das Trainingsset vor jeder Epoche neu mischen? Der Algorithmus von SGD wählt die Trainingsbeispiele zufällig aus.
Vladislavs Dovgalecs
Das Mischen ist im Grunde eine Möglichkeit, diese Trainingsmuster zufällig auszuwählen. In meinen Implementierungen formische ich normalerweise das Trainingsset vor jeder Epoche und gehe dann einfach das gemischte Set durch
2
Hm, auf Wikipedia wird der SGD-Algorithmus als "ersatzlos" beschrieben, Bottou beschreibt ihn jedoch so, wie Sie es getan haben (Bottou, Léon. "Maschinelles Lernen in großem Maßstab mit stochastischem Gradientenabstieg." Proceedings of COMPSTAT'2010. Physica-Verlag HD, 2010. 177-186.), Und ich glaube hier würde ich Bottou eher vertrauen als diesem Wikipedia-Eintrag.
4
@xeon Sehen Sie sich dieses Papier an , das besagt , dass eine ersatzlose Probenahme besser ist. Meines Erachtens ist das ersatzlose Vorgehen in der Regel empirisch überlegen, aber theoretische Analysen standen bis vor kurzem nicht zur Verfügung.
Dougal
1
@xeon Ich habe mir gerade meine PDF-Folien aus Andrew Ngs Kurs angesehen und es scheint, als hätte er sie auf Wikipedia (der "ersatzlosen" Variante) nicht so beschrieben wie Bottou. Ich habe hier