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?
quelle
Antworten:
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.
Im Ernst: Es gibt weit überlegene Antworten in diesem Thread, die ebenfalls eine Aufwertung verdienen.
quelle
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
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.
In Stochastic Gradient Descent
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.
Die obigen Bilder beziehen sich auf 4 Datenpunkte, die von der Funktion generiert wurden:
was in ... endet:
Geschrieben von StackExchangeStrike
quelle
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.
das zeigt diesen wild oszillierenden Fortschritt in Richtung des Minimums.
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:
Können wir die Analyse eines neuronalen Netzwerks anwenden, um den Gradientenabstieg zu verbessern?
Warum sind Derivate zweiter Ordnung bei der konvexen Optimierung nützlich?
Wie kann eine Änderung der Kostenfunktion positiv sein?
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.
quelle
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?
quelle
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").
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.
quelle
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):
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.
quelle