Genetischer Algorithmus gegen konjugierte Gradientenmethode


8

Ich versuche, einige Kraftfeldparameter in einem molekularen Rahmen zu optimieren, damit das Ergebnis der Simulation der experimentellen Struktur so nahe wie möglich kommt.

In der Vergangenheit habe ich einen genetischen Algorithmus geschrieben, bei dem ich den Parameterraum im Wesentlichen zufällig abtaste, die am besten geeignete Kombination auswähle, Sätze mutierter Parameter erstelle und den Vorgang wiederhole, bis ich die besten Parameter für eine objektive Funktion erhalte. Ich führe auch eine Optimierung des Algorithmus selbst durch, wobei die Verteilung der mutierten Werte optimiert wird, um eine schnellere Konvergenz zu begünstigen.

Mein Berater hat noch nie von genetischen Algorithmen gehört, und ich habe noch nie von den von ihm empfohlenen Methoden gehört: der konjugierten Gradientenmethode und dem Simplex-Algorithmus.

In meiner Situation ist die Zielfunktion eine Funktion der Abweichung jedes Atoms von seinem experimentellen Ort (also eine strukturelle Optimierung). Das System besteht aus 4-10K Atomen. Lohnt es sich, etwas Zeit in das Erlernen von CGM oder des Simplex-Algorithmus zu investieren? Welches von allen dreien ist das Beste für diese Situation?


5
Es lohnt sich immer, sich mit einem neuen Tool vertraut zu machen. (Konjugierte Gradienten- und Simplex-Methoden sind die Arbeitspferde der nichtlinearen bzw. linearen Optimierung und haben eine Vielzahl von Anwendungen.)
Christian Clason

Antworten:


12

Die konjugierte Gradientenmethode ist gut geeignet, um das Minimum einer streng konvexen Funktion zu finden. Dies ist typisch, wenn Sie eine nichtlineare elliptische PDE als Optimierungsproblem umformulieren. Wenn Sie mehr darüber erfahren möchten, empfehlen wir Ihnen, zuerst die CG-Methode für lineare Systeme zu lesen, für die eine Einführung in die konjugierte Gradientenmethode ohne den qualvollen Schmerz eine gute Referenz ist. Leider behandeln es viele Bücher, indem sie den Algorithmus aus dem Hut ziehen, ohne sich darum zu kümmern, ob Sie ihn auf einer intuitiven Ebene verstehen, daher der Titel. Von dort aus ist es kein großer Sprung zu sehen, wie man eine nichtlineare konjugierte Gradientenmethode entwickeln könnte.

Soweit ich über genetische Algorithmen weiß, wären sie besser geeignet, um das globale Minimum einer objektiven Funktion mit vielen lokalen Minima zu finden, was bei molekularen Systemen mit vielen metastabilen Gleichgewichten der Fall sein kann. In diesem Fall ist die Zielfunktion nicht überall konvex, was die Verwendung von CG ausschließt. Die Kosten sind die langsamere Konvergenz randomisierter Algorithmen.

Ob es sich für Sie lohnt, etwas über CG zu lernen, hängt ab von:

  • ob CG überhaupt anwendbar ist oder nicht
  • wie schnell dein Ansatz schon ist
  • wie viel schneller CG sein könnte (meine Vermutung: viel, wenn Sie es verwenden können)
  • Wie viel Zeit werden Sie mit dem Lernen / Codieren von CG verbringen?
  • Wie sehr möchten Sie Ihrem Berater nicht unwissend erscheinen?
  • Wie groß wird Ihr Problem voraussichtlich später?

Meine zwei Cent: Es ist ein ziemlich ordentliches Werkzeug, aber ich benutze es die ganze Zeit, also bin ich voreingenommen.


2
+1 für 'Eine Einführung in die konjugierte Gradientenmethode ohne den qualvollen Schmerz'
Subodh

3

Sie können sich auch CMAES ansehen . Es läuft im Wesentlichen auf CG für konvexe Funktionen hinaus, stellt jedoch einen globalen und robusten Optimierer für andere Arten von Funktionen dar (einschließlich nicht konvexer Funktionen mit mehreren Minima). Ich habe jedoch nicht gesehen, dass es auf etwas angewendet wird, das größer als ein paar hundert Unbekannte ist.

Beachten Sie auch, dass CG in Kombination mit der Tikhonov-Regularisierung angewendet werden kann, wodurch Ihre Funktion in gewisser Weise konvexer und leichter zu minimieren ist, obwohl dies zu Lasten einer gewissen Verzerrung der Lösung geht, was häufig ein akzeptabler Kompromiss ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.