Frage:
Warum werden numerische Lösungen analytischen Lösungen vorgezogen?
Karnivaurus
2015-09-14 18:37:09 UTC
view on stackexchange narkive permalink

Ich lerne gerade etwas über Optimierung und den Unterschied zwischen einer analytischen und einer numerischen Lösung. Angenommen, es gibt eine Kostenfunktion f (x) , und wir möchten den Wert von x ermitteln, der dies minimiert. In einer analytischen Lösung würden wir in Bezug auf x differenzieren, d. H. df (x) / dx finden. Während wir in einer numerischen Lösung Werte von x ausprobieren und sehen, in welche Richtung wir x ändern müssen, um zur Lösung zu gelangen (Gradientenabstieg).

Es scheint mir, dass die analytische Lösung immer bevorzugt wird, weil sie Ihnen eine genaue Antwort gibt. Sie bleiben nicht in lokalen Minima stecken und können sicher sein, dass Ihre Lösung korrekt ist. Warum verwenden wir nicht immer analytische Lösungen?

Ich verstehe, dass numerische Lösungen die Dinge einfacher machen, weil Sie die analytische Lösung nicht von Hand ausarbeiten müssen, aber es scheint mir, dass Sie etwas von Hand lösen Um eine genaue Antwort zu erhalten, ist es sehr vorzuziehen, dies für eine ungefähre Antwort rechnerisch zu tun. Kann jemand dies für mich klären? Vielen Dank!

Sehr oft gibt es keine analytische Lösung.Manchmal ist die analytische Lösung auch nicht sehr praktisch.Betrachten Sie $ \ hat \ beta = (X ^ T X) ^ {- 1} X ^ T y $ für die gewöhnliche Regression der kleinsten Quadrate.Dies ist eine exakte analytische Lösung, aber Sie möchten diese Formel niemals für ein Problem mit realer Größe verwenden (beachten Sie, dass es weniger naive Möglichkeiten gibt, $ \ hat \ beta $ analytisch zu erhalten, dies ist jedoch nur ein Beispiel).Im Allgemeinen gibt es Fälle, in denen eine Annäherung zu einem Ergebnis führen kann, das praktisch nicht anders ist, aber viel schneller erhalten werden kann.
Ihre Kostenfunktion ist möglicherweise nicht analytisch, was die Ihnen zur Verfügung stehenden nicht numerischen Methoden möglicherweise einschränkt.Selbst wenn es sich um eine Analyse handelt, kann es schwierig sein, die Lösungen für eine bestimmte Frage analytisch zu finden.Schlimmer noch, wenn Sie eine Analyse bevorzugen, können Sie Ihre Kostenfunktion verzerren, um sie an die mathematischen Werkzeuge anzupassen, die Ihnen zur Verfügung stehen.Infolgedessen finden Sie möglicherweise eine Lösung, die nur unter unrealistischen Annahmen optimal ist: [Wenn Sie nur einen Hammer haben, sieht alles wie ein Nagel aus] (https://en.wiktionary.org/wiki/if_all_you_have_is_a_hammer,_everything_looks_like_a_nail).
Drei antworten:
Gumeo
2015-09-14 19:18:31 UTC
view on stackexchange narkive permalink

Ihre Frage ist interessant, da sie einen Ausgangspunkt für die Optimierung im Allgemeinen darstellt.

Es ist möglicherweise besser, mit einem konkreten Beispiel für die Existenz einer analytischen Lösung zu beginnen. Wenn Sie sich Ihr Standardpolynom 2. Grades ansehen, ist $ f (x) = ax ^ 2 + bx + c $. Sie haben eine Formel für die Nullen der Funktion, die eine analytische Lösung darstellt. Wenn Sie ein Polynom der Ordnung 5 oder höher haben, gibt es keine solche Formel.

Dies ist natürlich kein Optimierungsproblem wie beim Minimieren oder Maximieren einer Funktion, aber wenn Sie feststellen, wo die Ableitung Null ist, suchen Sie im Wesentlichen nach einer Null einer Funktion, nämlich der Ableitung.

Es scheint also, dass Sie ein Problem mit Stift und Papier nicht immer lösen können. Dies hängt auch vom Ausmaß des Problems ab. Manchmal müssen Sie Milliarden von Parametern schätzen, und es ist für einen Menschen einfach nicht möglich, eine analytische Lösung zu erarbeiten oder sogar herauszufinden, ob sie existiert.

Im Fall von gewöhnlichen kleinsten Quadraten oder der Anpassung von a lineares Modell gibt es eine analytische Lösung. Es ist jedoch sehr einfach, das Modell geringfügig zu ändern, sodass es keine solche Lösung gibt (zumindest keine, die wir kennen). Ein Beispiel hierfür ist das Lasso.

Die Verwendung numerischer Methoden ist also völlig gerechtfertigt, sowohl durch die Tatsache, dass eine analytische Lösung möglicherweise nicht existiert, als auch durchführbar ist Erarbeiten Sie eine solche Lösung.

Tolga Birdal
2018-11-07 05:40:53 UTC
view on stackexchange narkive permalink

Ich werde hier eine weitere Perspektive hinzufügen, die die hessischen Methoden zweiter Ordnung berücksichtigt. Um die Konvergenz zu beschleunigen, greifen gradientenbasierte Löser häufig auf Liniensuchtechniken wie Armijo, L-BFGS usw. zurück. Diese werden normalerweise dem naiven Gradientenabstieg vorgezogen (wenn wir heutzutage keine tiefen Netzwerke trainieren). Ansätze der L-BFGS-Familie entscheiden sich für eine positive eindeutige Annäherung an das inverse Hessische (siehe BFGS-Rekursion). Natürlich möchten wir, wann immer möglich, einen analytisch berechneten Hessischen liefern, dessen Inverse positiv definitiv sein muss. Für eine große Anzahl von Problemen ist diese Menge jedoch unbegrenzt und daher können Optimierer von der Stange die Situation nicht bewältigen. Es gibt Methoden wie den Schritt Moré und Sorensen Trust Region, aber eine allgemein akzeptierte Lösung ist bei weitem nicht vorhanden.

Dies ist der Grund, warum beispielsweise ausgereifte Optimierer wie Ceres Solver keine analytischen Hessen zulassen, sondern numerisch angenäherte bevorzugen.

Aksakal
2015-09-14 20:18:24 UTC
view on stackexchange narkive permalink

Es gibt viele Gründe, die normalerweise um eine Hauptüberlegung herum tanzen: Bequemlichkeit.

Wie Sie bereits erwähnt haben, ist es oft viel einfacher, die numerische Lösung als die analytische zu verwenden. Angenommen, Sie haben eine Funktion $ f (x_1, x_2, \ dots, x_n) $. Wenn es sich um einen komplizierten Ausdruck handelt, kann es umständlich und fehleranfällig sein, $ \ bigtriangledown {f} $ abzurufen und zu codieren. Ich meine die Tippfehler, nicht die numerischen Fehler. Im multivariaten Fall ist dies eher ein Problem. Stellen Sie sich vor, Sie codieren alle Hessen! Ich denke, dass die Wahrscheinlichkeit, einen Fehler in analytischen Hessen einzuführen, ziemlich hoch ist.

Daher könnte der Nutzen der Verwendung von analytischem Ausdruck sehr gering sein, insbesondere bei multivariaten Analysen. Sie machen also all diese Probleme durch, um in vielen Fällen im Grunde das gleiche Ergebnis wie die numerische Approximation zu erhalten.

Tatsächlich codiere ich analytische Ausdrücke für Ableitungen nur dann, wenn dies unbedingt erforderlich ist. Dies ist normalerweise nur dann der Fall, wenn numerische Ableitungen hinsichtlich der Genauigkeit weitaus schlechter sind.

Geschwindigkeit ist normalerweise nicht der Faktor. Es ist selten, dass numerische Ableitungen langsamer sind als analytische.

Ich habe mich nur auf die numerischen Ableitungen konzentriert, da sie immer analytisch existieren, solange $ f (.) $ Existiert. Bei anderen Problemen wie dem Lösen von Gleichungen, der Integration und der Optimierung besteht das Problem bei analytischen Lösungen darin, dass sie nicht immer existieren oder sehr schwer zu finden sind, d. H. Durchführbarkeit.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...