Wenn Hessisch so gut für die Optimierung ist (siehe zB Newtons Methode ), warum dann dort aufhören? Verwenden wir die dritte, vierte, fünfte und sechste Ableitung. Warum nicht?
Wenn Hessisch so gut für die Optimierung ist (siehe zB Newtons Methode ), warum dann dort aufhören? Verwenden wir die dritte, vierte, fünfte und sechste Ableitung. Warum nicht?
Antworten:
Ich interpretiere die Frage als "Warum verwendet Newtons Methode nur erste und zweite Ableitungen, keine dritten oder höheren Ableitungen?"
Tatsächlich hilft es in vielen Fällen, zur dritten Ableitung zu wechseln. Ich habe es schon mal mit benutzerdefinierten Sachen gemacht. Im Allgemeinen erhöht die Verwendung höherer Ableitungen die Komplexität der Berechnungen - Sie müssen alle Ableitungen finden und berechnen, und für multivariate Probleme gibt es viel mehr dritte Ableitungen als erste Ableitungen! - Das überwiegt bei weitem die Einsparungen bei der Schrittzahl, die Sie erhalten, wenn überhaupt. Wenn ich zum Beispiel ein dreidimensionales Problem habe, habe ich drei erste Ableitungen, sechs zweite Ableitungen und zehn dritte Ableitungen. Wenn ich also zu einer Version dritter Ordnung gehe, verdopple ich die Anzahl der Auswertungen, die ich durchführen muss (von 9 auf 19), ganz zu schweigen von der erhöhten Komplexität der Berechnung der Schrittrichtung / -größe, wenn ich diese Auswertungen durchgeführt habe, die Anzahl der Schritte, die ich ausführen muss, wird sich jedoch mit ziemlicher Sicherheit nicht halbieren.
Ich verstehe den statistischen Aspekt dieser Frage nicht wirklich, daher beantworte ich den Optimierungsteil.
So ziemlich jede Antwort hier konzentriert sich auf nur die Iteration Kosten und ignoriert die Iteration Zählung . Aber beide sind wichtig. Eine Methode, die in 1 Nanosekunde iteriert, aber Iterationen benötigt, um zu konvergieren, hilft Ihnen nichts. Und eine Methode, die in die Luft geht, hilft auch nicht, egal wie billig ihre Iteration ist.
Lassen Sie uns herausfinden, was los ist.
Zum Teil, weil (und das gilt auch für die 2. Ordnung, aber dazu gleich mehr):
Andererseits explodieren sie leichter, wenn sie weiter vom Optimum entfernt sind!
(Natürlich ist dies nicht immer der Fall; z. B. konvergiert ein Quadrat mit der Newtonschen Methode in einem Schritt. Für beliebige Funktionen in der realen Welt, die keine guten Eigenschaften haben, gilt dies jedoch im Allgemeinen .)
Das heißt, wenn Sie weiter vom Optimum entfernt sind, möchten Sie im Allgemeinen eine Methode niedriger Ordnung (sprich: Methode erster Ordnung). Nur wenn Sie in der Nähe sind, möchten Sie die Reihenfolge der Methode erhöhen.
Um zu sehen, warum, müssen Sie zuerst verstehen, was "quadratische Konvergenz" bedeutet .
Mathematisch bedeutet quadratische Konvergenz, dass, wenn Ihr Fehler bei der Iteration , das Folgende für eine Konstante :
Im Klartext bedeutet dies, dass, sobald Sie sich dem Optimum nähern (wichtig!), Jeder zusätzliche Schritt die Anzahl der Stellen der Genauigkeit verdoppelt .
Warum? An einem Beispiel ist es leicht zu erkennen: Für und haben Sie , usw., was lächerlich schnell ist . (Es ist super-exponentiell !)
Tatsächlich tun dies die Leute oft, wenn Derivate zweiter Ordnung zu teuer werden. Die lineare Konvergenz kann jedoch sehr langsam sein. Beispiel: Wenn Sie haben, benötigen Sie möglicherweise 10.000.000 Iterationen mit linearer Konvergenz, um , aber nur 23 Iterationen mit quadratischer Konvergenz. Sie sehen also, warum es einen drastischen Unterschied zwischen linearer und quadratischer Konvergenz gibt. Dies gilt beispielsweise nicht für Konvergenz 2. und 3. Ordnung (siehe nächster Absatz).
Wenn Sie sich mit Informatik auskennen, werden Sie verstehen, dass mit Konvergenz 2. Ordnung das Problem bereits gelöst ist . Wenn Sie nicht wissen, warum, dann ist dies der Grund: Es ist nicht sinnvoll, die Anzahl der Stellen bei jeder Iteration zu verdreifachen, anstatt sie zu verdoppeln - was bringt es Ihnen? Immerhin hat in einem Computer sogar eine double
-Präzisionszahl eine Genauigkeit von 52 Bit, was ungefähr 16 Dezimalstellen entspricht.
Vielleicht wird die Anzahl der Schritte, die Sie benötigen, von 16 auf 3 verringert ... was sich großartig anhört, bis Sie erkennen, dass es den Preis kostet, bei jeder Iteration dritte Ableitungen berechnen zu müssen , was den Fluch der Dimensionalität darstellttrifft dich hart. Für ein dimensionales Problem haben Sie nur den Faktor bezahlt , um den Faktor , was dumm ist. Und in der realen Welt haben Probleme mindestens Hunderte von Dimensionen (oder sogar Tausende oder sogar Millionen), nicht nur ! Sie erhalten also einen Faktor von vielleicht 20, wenn Sie beispielsweise einen Faktor von 20.000 zahlen ... kaum ein weiser Kompromiss.
Die andere Hälfte ist, dass Sie im Allgemeinen ein schlechteres Verhalten bekommen, wenn Sie weit vom Optimum entfernt sind, was sich im Allgemeinen nachteilig auf die Anzahl der Iterationen auswirkt, die Sie ausführen müssen.
Im Allgemeinen sind Methoden höherer Ordnung als 2 eine schlechte Idee. Natürlich können , wenn Sie weitere hilfreiche Annahmen auf den Tisch bringen (zB vielleicht Ihre Daten nicht mit einem hohen Grad Polynom ähneln, oder Sie haben Möglichkeiten, die Lage der optimalen begrenzt, etc.), dann können Sie vielleicht feststellen , dass sie Eine gute Idee - aber das ist eine problemspezifische Entscheidung und keine allgemeine Faustregel.
Sogar das Berechnen von Hessisch ist ein ziemlicher Arbeitsaufwand:
Nun sehen Sie , wie die dritte Ableitung aussieht: Dies ist eine dreidimensionale Matrix. So sehen seine Elemente aus:
Sixth des Derivats wird sechs dimensionale Matrix sein:
In der Regel ist der Kompromiss nicht günstig, um höher als nach Hessisch zu streben. Ich meine den Kompromiss zwischen dem potenziellen Geschwindigkeitsgewinn durch Verwendung von Approximationen höherer Ordnung und der Rauschverstärkung. Sie haben immer Rauschen in Eingaben, weil es sich um statistische Anwendungen handelt. Dieses Rauschen wird durch die Ableitungen verstärkt.
Wenn Sie Golf spielen, besteht die Analogie bei der Optimierung darin, zuerst zu schwingen, um zum Grün zu gelangen, und sich nicht zu sehr um ein Loch zu sorgen. Sobald wir auf dem Grün sind, schlagen wir ein Loch.
Wenn Sie die Effektivität solcher Algorithmen analysieren, erhalten Sie normalerweise Ergebnisse wie einen Schritt eines Algorithmus vierter Ordnung, der ungefähr dieselbe Effektivität wie zwei Schritte eines Algorithmus zweiter Ordnung aufweist.
Die Wahl des zu verwendenden Algorithmus ist also relativ einfach: Wenn ein Schritt des Algorithmus vierter Ordnung doppelt so viel Arbeit oder mehr als ein Schritt des Algorithmus zweiter Ordnung erfordert, sollten Sie stattdessen den letzteren verwenden.
Das ist die typische Situation für diese Art von Methoden: Der klassische Algorithmus hat das optimale Verhältnis von Arbeit zu Effektivität für allgemeine Probleme. Während es gelegentlich Probleme gibt, bei denen ein Ansatz höherer Ordnung ungewöhnlich einfach zu berechnen ist und die klassische Variante übertreffen kann, sind sie relativ selten.
Sie können sich die Reihenfolge der Ableitungen als die Reihenfolge einer polynomialen Annäherung an die Funktion vorstellen. Die meisten Optimierungsroutinen beruhen auf Konvexität. Ein quadratisches Polynom ist überall konvex / konkav, wohingegen ein Polynom 3. Ordnung oder höher nicht überall konvex ist. Aus diesem Grund basieren die meisten Optimierungsroutinen auf sukzessiven Approximationen von konvexen Funktionen mit Quadratik. Eine quadratische Annäherung, die konvex ist, erfordert, dass eine positive Bestimmtheitsbedingung auferlegt wird, damit das Quadrat konvex ist.
Lassen Sie mich hier die einzige sein, die Methoden 3. Ordnung für die SGD-Konvergenz verteidigt, aber definitiv nicht im gesamten Raum, was Koeffizienten benötigen würde , sondern zB in nur einer Richtung, die nur einen einzigen zusätzlichen Koeffizienten benötigt, wenn bereits Modell 2. Ordnung in diese Richtung.
Warum kann ein Modell 3. Ordnung in einer Richtung vorteilhaft sein? Zum Beispiel, weil die zweite Ableitung nahe Null in dieser Richtung im Grunde genommen zwei alternative Szenarien bedeutet: Plateau oder Wendepunkt - nur die erstere erfordert eine größere Schrittgröße, und die dritte Ableitung ermöglicht es, sie zu unterscheiden.
Ich glaube, wir werden uns hybriden Mehrfachordnungsmethoden zuwenden: Methode 2. Ordnung in einem niedrigdimensionalen Unterraum, z. B. aus PCA der letzten Gradienten, was noch einen freien gleichzeitigen Gradientenabstieg 1. Ordnung in Richtung eines Teils des Gradienten erlaubt, der orthogonal zu diesem Unterraum ist ... und zusätzlich Ich würde zB ein Modell 3. Ordnung für eine einzelne relevanteste Richtung hinzufügen.