Das nervt mich schon seit einiger Zeit und ich konnte online keine zufriedenstellenden Antworten finden.
Nach einer Reihe von Vorlesungen zur konvexen Optimierung scheint die Newton-Methode ein weitaus überlegener Algorithmus zu sein als die Gradientenabsenkung, um global optimale Lösungen zu finden, da die Newton-Methode eine Garantie für ihre Lösung, ihre affine Invariante und vor allem ihre Konvergenz bieten kann weit weniger Schritte. Warum werden Optimierungsalgorithmen zweiter Ordnung wie die Newton-Methode bei Problemen mit maschinellem Lernen nicht so häufig eingesetzt wie stochastischer Gradientenabstieg?
Antworten:
Gradientenabstieg maximiert eine Funktion unter Verwendung der Kenntnis ihrer Ableitung. Die Newton-Methode, ein Algorithmus zum Auffinden von Wurzeln, maximiert eine Funktion unter Verwendung der Kenntnis ihrer zweiten Ableitung. Dies kann schneller sein, wenn die zweite Ableitung bekannt und einfach zu berechnen ist (der Newton-Raphson-Algorithmus wird in der logistischen Regression verwendet). Der analytische Ausdruck für die zweite Ableitung ist jedoch häufig kompliziert oder schwer zu handhaben und erfordert viel Rechenaufwand. Numerische Verfahren zum Berechnen der zweiten Ableitung erfordern auch viel Berechnung - wenn Werte zum Berechnen der ersten Ableitung erforderlich sind , sind für die zweite Ableitung erforderlich.N 2N N2
quelle
Mehr Menschen sollten Newtons Methode beim maschinellen Lernen anwenden *. Ich sage dies als jemand mit einem Hintergrund in numerischer Optimierung, der sich in den letzten Jahren mit maschinellem Lernen beschäftigt hat.
Die Nachteile der Antworten hier (und sogar in der Literatur) sind kein Problem, wenn Sie Newtons Methode richtig anwenden. Darüber hinaus verlangsamen die Nachteile, die eine Rolle spielen, den Gradientenabstieg um den gleichen Betrag oder mehr, jedoch durch weniger offensichtliche Mechanismen.
Die Verwendung der Liniensuche mit den Wolfe-Bedingungen oder der Verwendung von oder Vertrauensbereichen verhindert die Konvergenz zu Sattelpunkten. Dies sollte auch bei einer ordnungsgemäßen Implementierung des Gradientenabfalls der Fall sein. Das Papier in referenzierten Cam.Davidson.Pilon Antwort weist darauf hin , Probleme mit „Newton-Verfahren“ in Gegenwart von Sattelpunkten, aber das Update sie befürworten ist auch ein Newton - Verfahren.
Die Verwendung der Newtonschen Methode erfordert nicht die Konstruktion des gesamten (dichten) Hessischen; Sie können das Inverse des Hessischen auf einen Vektor mit iterativen Methoden anwenden, die nur Matrix-Vektor-Produkte verwenden (z. B. Krylov-Methoden wie Konjugatgradient). Siehe zum Beispiel die CG-Steihaug-Trust-Region-Methode.
Sie können Hessische Matrix-Vektor-Produkte effizient berechnen, indem Sie zwei adjungierte Gleichungen höherer Ordnung in derselben Form lösen wie die adjungierte Gleichung, die bereits zur Berechnung des Gradienten verwendet wird (z. B. die Arbeit von zwei Backpropagation-Schritten beim neuronalen Netzwerktraining).
Eine schlechte Konditionierung verlangsamt die Konvergenz iterativer linearer Löser, verlangsamt aber auch den Gradientenabstieg gleichermaßen oder schlechter. Die Verwendung der Newton-Methode anstelle der Gradientenabnahme verschiebt den Schwierigkeitsgrad von der nichtlinearen Optimierungsstufe (wo nicht viel getan werden kann, um die Situation zu verbessern) zur linearen Algebra-Stufe (wo wir sie mit dem gesamten Arsenal numerischer linearer Algebra-Vorkonditionierungstechniken angreifen können).
Außerdem verschiebt sich die Berechnung von "vielen, vielen, billigen Schritten" zu "ein paar kostspieligen Schritten", was mehr Möglichkeiten für Parallelität auf der Unterschrittebene (lineare Algebra) eröffnet.
Für Hintergrundinformationen zu diesen Konzepten empfehle ich das Buch "Numerical Optimization" von Nocedal und Wright.
* Natürlich hilft Ihnen die Newton-Methode nicht mit L1- oder ähnlichen komprimierten Abtast- / spärlichkeitsfördernden Straffunktionen, da ihnen die erforderliche Glätte fehlt.
quelle
Ich habe das kürzlich selbst gelernt - das Problem ist die Vermehrung von Sattelpunkten im hochdimensionalen Raum, zu der Newton-Methoden konvergieren wollen. Siehe diesen Artikel: Identifizieren und Angreifen des Sattelpunktproblems bei der hochdimensionalen nichtkonvexen Optimierung .
quelle
Eine Kombination aus zwei Gründen:
Im Gegensatz dazu führt die Gradientenabstiegsmethode nicht zum Sattelpunkt. Der Gradient ist am Sattelpunkt Null, aber ein winziger Schritt nach außen würde die Optimierung aufheben, wie Sie aus dem obigen Gradienten ersehen können - der Gradient auf der y-Variablen ist negativ.
quelle
Sie haben zwei Fragen gestellt: Warum wenden nicht mehr Menschen die Newtonsche Methode an und warum verwenden so viele Menschen die stochastische Gradientenabnahme? Diese Fragen haben unterschiedliche Antworten, da es viele Algorithmen gibt, die die Rechenlast der Newtonschen Methode verringern, aber häufig besser funktionieren als SGD.
Zweitens werden viele Methoden, nicht nur Gradientenabfahrten, häufiger angewendet als Newton. Sie sind oft Abstriche von Newtons Methode in dem Sinne, dass sie einen Newton-Schritt mit einem geringeren Rechenaufwand pro Schritt approximieren, aber mehr Iterationen benötigen, um zu konvergieren. Einige Beispiele:
Wenn Sie sich überhaupt nicht mit der Approximation von zweiten Ableitungen befassen möchten, ist der Gradientenabstieg ansprechend, da nur Informationen erster Ordnung verwendet werden. Gradient Descent approximiert implizit das inverse Hessische als Lernrate multipliziert mit der Identitätsmatrix. Ich persönlich verwende selten Gradientenabstieg: L-BFGS ist genauso einfach zu implementieren, da nur die objektive Funktion und der Gradient angegeben werden müssen. es hat eine bessere inverse hessische Annäherung als eine Steigungsabnahme; und weil der Gradientenabstieg eine Anpassung der Lernrate erfordert.
Manchmal haben Sie eine sehr große Anzahl von Beobachtungen (Datenpunkte), aber Sie können fast genauso gut aus einer geringeren Anzahl von Beobachtungen lernen. In diesem Fall können Sie "Batch-Methoden" wie den stochastischen Gradientenabstieg verwenden, bei denen Teilmengen der Beobachtungen verwendet werden.
quelle
Die Neigungsrichtung ist billiger zu berechnen, und die Durchführung einer Liniensuche in dieser Richtung ist eine zuverlässigere, stetigere Quelle für den Fortschritt in Richtung eines Optimums. Kurz gesagt, Gradientenabstieg ist relativ zuverlässig.
Newtons Methode ist relativ teuer, da Sie den Hessischen Wert bei der ersten Iteration berechnen müssen. Dann können Sie bei jeder nachfolgenden Iteration entweder den Hessischen Wert vollständig neu berechnen (wie bei der Newton-Methode) oder den Hessischen Wert der vorherigen Iteration (bei den Quasi-Newton-Methoden) "aktualisieren", was billiger, aber weniger robust ist.
Im Extremfall einer sehr gut erzogenen Funktion, insbesondere einer perfekt quadratischen Funktion, ist Newtons Methode der klare Gewinner. Wenn es perfekt quadratisch ist, konvergiert Newtons Methode in einer einzigen Iteration.
Im gegenteiligen Extremfall einer sehr schlecht benommenen Funktion wird der Gradientenabstieg tendenziell siegen. Es wählt eine Suchrichtung aus, durchsucht diese Richtung und unternimmt letztendlich einen kleinen, aber produktiven Schritt. Im Gegensatz dazu wird Newtons Methode in diesen Fällen zum Scheitern neigen, insbesondere wenn Sie versuchen, die Quasi-Newton-Näherungen zu verwenden.
Zwischen Gradientenabstieg und Newtons Methode gibt es Methoden wie den Levenberg-Marquardt-Algorithmus (LMA), obwohl ich die Namen ein wenig verwirrt gesehen habe. Der Kern besteht darin, bei chaotischen und verwirrenden Dingen eine Suche mit Gradienten-Abstiegsinformationen zu verwenden und dann zu einer Suche mit Newton-Methoden zu wechseln, wenn die Dinge linearer und zuverlässiger werden.
quelle
Newtons Methode funktioniert gut, wenn sie sich einer Lösung nähert oder wenn sich der hessische Wert langsam ändert, aber einige Tricks benötigt, um mit mangelnder Konvergenz und Bestimmtheit fertig zu werden.
Oft wird eher eine Verbesserung als eine exakte Lösung angestrebt. In diesem Fall sind die zusätzlichen Kosten von Newton- oder Newton-ähnlichen Methoden nicht gerechtfertigt.
Es gibt verschiedene Möglichkeiten, die oben genannten zu verbessern, z. B. Methoden mit variablen Metriken oder Vertrauensbereichen.
Als Randnotiz, bei vielen Problemen ist die Skalierung ein zentrales Problem, und das Hessische System bietet ausgezeichnete Skalierungsinformationen, wenn auch zu einem Preis. Wenn man sich dem Hessischen annähert, kann es die Leistung oft erheblich verbessern. In gewissem Maße bietet Newtons Methode die "beste" Skalierung, da sie affin invariant ist.
quelle
Es gibt viele Schwierigkeiten bei der Anwendung der Newton-Methode für SGD, insbesondere:
es braucht eine hessische Matrix - wie kann man sie zB aus verrauschten Gefällen mit ausreichender Genauigkeit zu vernünftigen Kosten abschätzen?
Vollhessisch ist zu teuer - wir brauchen eher eine Einschränkung, zB auf einen Unterraum (welcher Unterraum?),
Die Newtonsche Methode zieht direkt mit einem Gefälle von Null an den Punkt, was hier normalerweise ein Sattel ist. Wie kann man sie stattdessen abwehren? ZB sattelfreies Newton kehrt negative Krümmungsrichtungen um, erfordert jedoch die Kontrolle der Vorzeichen von Eigenwerten.
Es wäre gut, dies online zu tun - anstatt viele Berechnungen an einem einzigen Punkt durchzuführen, versuchen Sie, es in viele kleine Schritte aufzuteilen, indem Sie mehr lokale Informationen ausnutzen.
Wir können in kleinen Schritten von 1. Ordnung zu 2. Ordnung übergehen, z. B. durch Hinzufügen einer Aktualisierung von nur 3 Durchschnitten zur Impulsmethode können wir gleichzeitig die Parabel in ihre Richtung anpassen, um eine intelligentere Wahl der Schrittgröße zu erreichen ... Modellierung 2. Ordnung in einem niedrigdimensionalen Unterraum wir can kann die verbleibenden Koordinaten weiterhin für den gleichzeitigen Gradientenabstieg verwenden.
quelle