Zeigt der Gradient in Stochastic Gradient Descent (SGD) bei konvexen Problemen immer auf den globalen Extremwert?

25

Bei einer konvexen Kostenfunktion, bei der SGD für die Optimierung verwendet wird, haben wir zu einem bestimmten Zeitpunkt während des Optimierungsprozesses einen Gradienten (Vektor).

Meine Frage ist, angesichts des Punktes auf der Konvexen, zeigt der Gradient nur in die Richtung, in die die Funktion am schnellsten zunimmt / abnimmt, oder zeigt der Gradient immer auf den optimalen / extremen Punkt der Kostenfunktion ?

Ersteres ist ein lokales Konzept, letzteres ist ein globales Konzept.

SGD kann sich schließlich dem Extremwert der Kostenfunktion annähern. Ich wundere mich über den Unterschied zwischen der Richtung des Gradienten bei einem beliebigen Punkt auf der Konvexen und der Richtung, die auf den globalen Extremwert zeigt.

Die Richtung des Gradienten sollte die Richtung sein, in der die Funktion an diesem Punkt am schnellsten zunimmt / abnimmt, oder?

Tyler 玉门 十三 归 归
quelle
6
Sind Sie schon einmal von einem Bergrücken geradeaus bergab gegangen, nur um sich in einem Tal wiederzufinden, das sich bergab in eine andere Richtung fortsetzt? Die Herausforderung besteht darin, sich eine solche Situation mit einer konvexen Topographie vorzustellen: Stellen Sie sich eine Messerschneide vor, bei der der Kamm oben am steilsten ist.
Whuber
4
Nein, weil es sich um eine stochastische Gefälleabfahrt handelt, nicht um eine Gefälleabfahrt. Der springende Punkt bei SGD ist, dass Sie einen Teil der Gradienteninformationen als Gegenleistung für eine höhere Recheneffizienz wegwerfen. Wenn Sie jedoch einen Teil der Gradienteninformationen wegwerfen, erhalten Sie nicht mehr die Richtung des ursprünglichen Gradienten. Dies ignoriert bereits die Frage, ob der reguläre Gradient in die Richtung des optimalen Abstiegs zeigt oder nicht, aber der Punkt ist, selbst wenn der reguläre Gradientabstieg dies tat, es gibt keinen Grund, einen stochastischen Gradientenabstieg zu erwarten, um dies zu tun.
Chill2Macht
3
@ Tyler, warum ist deine Frage speziell nach dem stochastischen Gradientenabstieg ? Stellen Sie sich etwas anderes vor als eine normale Gefälleabfahrt?
Sextus Empiricus
2
Der Gradient zeigt immer in Richtung des Optimums, in dem Sinne, dass der Winkel zwischen dem Gradienten und dem Vektor zum Optimum einen Winkel von weniger als hat und ein infinitesimaler Betrag in Richtung des Gradienten geht Bringen Sie sich dem Optimum näher. π2
Setzen Sie Monica
5
Wenn der Verlauf direkt auf einen globalen Minimierer zeigt, ist die konvexe Optimierung denkbar einfach, da wir dann einfach eine eindimensionale Liniensuche durchführen könnten, um einen globalen Minimierer zu finden. Dies ist zu viel zu hoffen.
littleO

Antworten:

36

Ein Bild sagt mehr als tausend Worte. Im folgenden Beispiel (mit freundlicher Genehmigung von MS Paint, einem praktischen Tool für Amateur- und Profistatistiker) sehen Sie eine konvexe Funktionsfläche und einen Punkt, an dem die Richtung des steilsten Abfalls deutlich von der Richtung zum Optimum abweicht.

Ein Bild einer länglichen konvexen Funktion und Pfeile, die zeigen, dass die Richtung des steilsten Abfalls nicht mit der Richtung zum globalen Optimum übereinstimmt

Im Ernst: Es gibt weit überlegene Antworten in diesem Thread, die ebenfalls eine Aufwertung verdienen.

Jan Kukacka
quelle
27
Und das heutige Gegenbeispiel ist ... eine Avocado!
JDL
11
Sie sehen, dass Sie beim Schneiden einer Avocado in die steilste Abstiegsrichtung schneiden sollten, um die Saat und eine mögliche Verletzung zu vermeiden .
Jan Kukacka
28
  • Gradientenabstiegsmethoden verwenden die Neigung der Oberfläche.
  • Dies wird nicht unbedingt (oder höchstwahrscheinlich auch nicht) direkt auf den Extrempunkt hinweisen.

Eine intuitive Ansicht ist, sich einen Abstiegsweg vorzustellen, der ein gekrümmter Weg ist. Siehe zum Beispiel die folgenden Beispiele.

Als Analogie: Stellen Sie sich vor, ich verbinde Ihnen die Augen und stelle Sie irgendwo auf einen Berg mit der Aufgabe, zum äußersten (Tief-) Punkt zurückzukehren. Wenn Sie auf dem Hügel nur lokale Informationen haben, wissen Sie nicht , in welche Richtung sich der Grund des Sees befindet.

Wenn Sie von Konvexität ausgehen können

  • Dann wissen Sie, dass es nur einen extremen Punkt gibt.
  • Dann wissen Sie, dass Sie mit Sicherheit den äußersten Punkt erreichen werden, solange Sie sich nach unten bewegen.
  • Und dann wissen Sie auch, dass der Winkel zwischen der steilsten Abstiegsrichtung und der optimalen Richtung immer höchstens beträgtπ/2 , wie in den Kommentaren von Solomonoffs Geheimnis erwähnt.

konvex

Ohne Konvexität

  • Der Winkel kann π/2 überschreiten . Im Bild unten wird dies durch Zeichnen eines Pfeils in Abstiegsrichtung für einen bestimmten Punkt hervorgehoben, bei dem die endgültige Lösung hinter der Linie senkrecht zur Abstiegsrichtung liegt.

    Bei dem konvexen Problem ist dies nicht möglich. Sie könnten dies auf die Isolinien für die Kostenfunktion beziehen, die eine Krümmung in derselben Richtung aufweisen, wenn das Problem konvex ist.

nicht konvex

In Stochastic Gradient Descent

  • Sie folgen der steilsten Richtung für einen einzelnen Punkt (und Sie machen wiederholt einen Schritt für einen anderen Punkt). Im Beispiel ist das Problem konvex, es kann jedoch mehrere Lösungen geben. Im Beispiel befinden sich die Extremwerte auf einer Linie (anstelle eines einzelnen Punkts), und von diesem bestimmten Standpunkt aus könnte man sagen, dass die steilste Abstiegsrichtung direkt auf das "Optimum" zeigen kann (obwohl es nur das Optimum für die Funktion ist des jeweiligen Trainingsbeispielpunktes)

einziger Punkt

Unten sehen Sie eine weitere Ansicht für vier Datenpunkte . Jedes der vier Bilder zeigt die Oberfläche für einen anderen einzelnen Punkt. Für jeden Schritt wird ein anderer Punkt ausgewählt, entlang dessen der Gradient berechnet wird. Dies bedeutet, dass es nur vier Richtungen gibt, in denen ein Schritt ausgeführt wird, die Schrittgröße jedoch abnimmt, wenn wir uns der Lösung nähern.

stochastischer Gradientenabstieg



Die obigen Bilder beziehen sich auf 4 Datenpunkte, die von der Funktion generiert wurden:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

was in ... endet:

  • S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


Geschrieben von StackExchangeStrike


Sextus Empiricus
quelle
17

Der steilste Abstieg kann ineffizient sein, selbst wenn die Zielfunktion stark konvex ist.

Normaler Gefälle-Abstieg

Ich meine "ineffizient" in dem Sinne, dass der steilste Abstieg Schritte unternehmen kann, die wild vom Optimum abweichen, auch wenn die Funktion stark konvex oder sogar quadratisch ist.

f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

α=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

das zeigt diesen wild oszillierenden Fortschritt in Richtung des Minimums.

Bildbeschreibung hier eingeben

θ(x(i),x)(x(i),x(i+1))

Bildbeschreibung hier eingeben

x2x12f(x)

Der direkte Weg zum Minimum wäre, sich "diagonal" statt auf diese Weise zu bewegen, die stark von vertikalen Schwingungen dominiert wird. Allerdings enthält der Gradientenabstieg nur Informationen über die lokale Steilheit, sodass er "nicht weiß", dass die Strategie effizienter ist, und unterliegt den Launen des Hessischen mit Eigenwerten auf verschiedenen Skalen.

Stochastische Gefälleabfahrt

SGD hat die gleichen Eigenschaften, mit der Ausnahme, dass die Aktualisierungen verrauscht sind, was bedeutet, dass die Konturoberfläche von einer Iteration zur nächsten unterschiedlich aussieht und daher auch die Farbverläufe unterschiedlich sind. Dies impliziert, dass der Winkel zwischen der Richtung des Gradientenschritts und dem Optimum ebenfalls Rauschen aufweist - stellen Sie sich dieselben Diagramme mit etwas Jitter vor.

Mehr Informationen:


Diese Antwort leiht dieses Beispiel und diese Figur aus Neural Networks Design (2. Aufl.), Kapitel 9 von Martin T. Hagan, Howard B. Demuth, Mark Hudson Beale und Orlando De Jesús.

Sycorax sagt Reinstate Monica
quelle
13

Die lokal steilste Richtung stimmt nicht mit der globalen optimalen Richtung überein. Wenn dies der Fall wäre, würde sich Ihre Gradientenrichtung nicht ändern. Denn wenn Sie sich immer Ihrem Optimum nähern, zeigt Ihr Richtungsvektor immer auf das Optimum. Das ist aber nicht der Fall. Wenn ja, warum sollten Sie sich dann die Mühe machen, Ihren Gradienten bei jeder Iteration zu berechnen?

gunes
quelle
3

Die anderen Antworten heben einige lästige Probleme mit der Konvergenzrate für GD / SGD hervor, aber Ihr Kommentar "SGD kann irgendwann konvergieren ..." ist nicht immer korrekt (ignorieren Sie pedantische Verwendungsbemerkungen zum Wort "can", da es so aussieht, als ob Sie es gemeint hätten "werden").

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

Ich bin mir nicht sicher, ob Konvexität ausreicht, um ein für allgemeine SGD-Zustände übliches schlechteres Verhalten zu verhindern. Wenn Sie jedoch Funktionen zulassen, die für Ihre Kostenfunktion sogar so komplex sind wie Kubikwerte, kann SGD auf einer dichten Teilmenge der Domäne herumspringen und nirgendwo konvergieren oder nähern Sie sich einem beliebigen Zyklus.

±

Das Interessante an der gesamten Situation ist, dass es unzählige Funktionen gibt (wie SGD), die willkürliche konvexe Funktionen als Eingaben verwenden und dann eine Aktualisierungsregel ausgeben, die immer schnell zum globalen Minimum konvergiert (falls vorhanden). Auch wenn es konzeptionell eine Menge davon gibt, haben unsere besten Versuche zur konvexen Optimierung alle pathologische Gegenbeispiele. Irgendwie widerspricht die Idee einer einfachen / intuitiven / performanten Update-Regel der Idee einer nachweislich korrekten Update-Regel.

Hans Musgrave
quelle
1
β=1
1
Beachten Sie, dass der SGD-Konvergenznachweis eine abnehmende Schrittgröße voraussetzt ...
Jan Kukacka
@ MartijnWeterings Gute Beobachtung. Ich denke, mein Beispiel zeigt tatsächlich die richtige Richtung. Sollte ich es mit einem 2D-Beispiel aktualisieren, das niemals in die richtige Richtung weist und auseinander läuft?
Hans Musgrave
β=1β>0βf(x,α)=α2αxβ.
fβ
2

Vielleicht müssen die Antworten auf diese Frage schnell aktualisiert werden. Es scheint, dass SGD auch im nicht-konvexen Fall ein globales Minimum ergibt (konvex ist nur ein Sonderfall davon):

SGD erreicht globales Minimum beim Deep Learning über den Star-Convex-Pfad, anonyme Autoren , Artikel im Doppelblind-Review beim ICLR 2019

https://openreview.net/pdf?id=BylIciRcYQ

Die Autoren stellen die Konvergenz von SGD zu einem globalen Minimum für nicht konvexe Optimierungsprobleme fest, die üblicherweise beim Training von neuronalen Netzen auftreten. Das Argument nutzt die folgenden zwei wichtigen Eigenschaften aus: 1) Der Trainingsverlust kann (ungefähr) den Wert Null erreichen. 2) SGD folgt einem sternkonvexen Pfad. In einem solchen Kontext zeigt sich, dass SGD, obwohl es lange Zeit als randomisierter Algorithmus galt, auf intrinsisch deterministische Weise zu einem globalen Minimum konvergiert.

Dies sollte jedoch mit einem Körnchen Salz eingenommen werden. Das Papier wird noch geprüft.

Der Begriff des sternenkonvexen Pfades gibt einen Hinweis darauf, wohin der Gradient bei jeder Iteration weisen würde.

Tolga Birdal
quelle