Adaptive Gradientenabstiegsschrittgröße, wenn Sie keine Liniensuche durchführen können

9

Ich habe eine Zielfunktion E von einem Wert abhängt ϕ(x,t=1.0), wobei ϕ(x,t) die Lösung für eine PDE ist. Ich optimiere E durch Gradientenabstieg auf den Anfangszustand der PDE: ϕ(x,t=0.0) . Das heißt, ich aktualisiere ϕ(x,t=0.0)und dann muss die PDE integriert werden, um meinen Rest zu berechnen. Das heißt, wenn ich eine Liniensuche nach der Schrittgröße des Gradientenabfalls durchführen würde (nenne es α ), müsste ich für jeden möglichen Wert von α die PDE erneut integrieren.

In meinem Fall wäre das unerschwinglich teuer. Gibt es eine andere Option für die Schrittgröße des adaptiven Gradientenabstiegs?

Ich suche hier nicht nur nach mathematisch prinzipiellen Schemata (obwohl das natürlich besser ist, wenn etwas existiert), sondern würde mich über alles freuen, was im Allgemeinen besser ist als eine statische Schrittgröße.

Vielen Dank!

NLi10Me
quelle
Ich glaube nicht, dass ich die Art und Weise, wie ich die PDE integriere, im Moment ändern möchte, da dies für mich eine wichtige Neufassung des Codes wäre. Es ist auch nicht so sehr, dass die PDE schwierig ist, sondern dass ich sie in der Raumzeit in einem sehr dichten Gitter lösen muss, da ich eine sehr hohe numerische Genauigkeit benötige.
NLi10Me
Andererseits scheint die BB-Methode (mit der ich nicht vertraut war) ziemlich gut zu sein; Alles, was ich tun muss, ist, den Zustand und den Gradienten der vorherigen Iteration zu verfolgen, und ich erhalte eine Annäherung zweiter Ordnung ... das scheint sehr schön zu sein. Die Ableitung nimmt jedoch ein konvexes Quadrat an und mein Problem ist es mit ziemlicher Sicherheit nicht. Ich finde aber sicherlich auch eher lokale als globale Minima (und bin damit zufrieden). Wissen Sie, wie gut BB bei sehr hochdimensionalen Problemen abgeschnitten hat?
NLi10Me
Ich denke, was ich mit lokalen Minima gemeint habe, ist, dass in der Nähe eines lokalen Minimums keine Funktion ungefähr quadratisch ist? Ich denke, mein Anfangszustand liegt nahe genug an einem Minimum, da ich in vielen Fällen selbst bei der statischen Schrittgröße eine reibungslose Konvergenz erhalte. Also, obwohl es sehr hochdimensional ist und im Allgemeinen, wenn Sie den gesamten Suchraum betrachten, das Problem nicht konvex / nicht quadratisch ist, könnte BB dennoch eine gute Wahl ohne Zeilensuche sein? ϕ(0)(x,t=0.0)
NLi10Me
Die anderen "Bestandteile" von sind experimentelle Bilddaten. ϕ ( x , t = 1,0 ) versucht, ein Bild so zu verzerren, dass es mit dem anderen "übereinstimmt" (gemessen anhand einer passenden Funktion wie der über Voxel integrierten L2-Norm). Bei einigen Bildpaaren erhalte ich eine reibungslose Konvergenz mit der statischen Schrittgröße (meiner aktuellen Wahl). Bei anderen Bildpaaren schwinge ich stark. Das System muss vollständig automatisiert sein, damit ich die Schrittgröße für problematische Bildpaare nicht von Hand bearbeiten kann. Eϕ(x,t=1.0)
NLi10Me
Richtig, ich muss das adjungierte System lösen, um den Gradienten zu erhalten (was ein fieseres System ist und länger dauert). Ok, ich denke ich werde BB mit Backtracking Line Suche versuchen. Vielen Dank sehr viel für den Rat; Meine Berater sind oft schwer zu finden und viele von ihnen interessieren sich weniger für die Implementierung als nur für das Modell. Ich finde, dass die numerischen Methoden die entscheidende Komponente sind, um zu demonstrieren, ob ein Modell überhaupt gut ist oder nicht. Nochmals vielen Dank, ich weiß das wirklich zu schätzen.
NLi10Me

Antworten:

15

Ich beginne mit einer allgemeinen Bemerkung: Informationen erster Ordnung (dh die Verwendung von nur Verläufen, die die Steigung codieren) können nur Richtungsinformationen liefern: Sie können Ihnen sagen, dass der Funktionswert in Suchrichtung abnimmt, jedoch nicht für wie lange . Um zu entscheiden, wie weit die Suchrichtung gehen soll, benötigen Sie zusätzliche Informationen (Gradientenabstieg mit konstanten Schrittlängen kann selbst bei konvexen quadratischen Problemen fehlschlagen). Dafür haben Sie grundsätzlich zwei Möglichkeiten:

  1. Verwenden Sie Informationen zweiter Ordnung (die die Krümmung codieren), z. B. mithilfe der Newton-Methode anstelle des Gradientenabfalls (für den Sie immer die Schrittlänge ausreichend nahe am Minimierer liegt).1
  2. Versuch und Irrtum (womit ich natürlich die Verwendung einer richtigen Zeilensuche wie Armijo meine ).

Wenn Sie beim Schreiben keinen Zugriff auf zweite Ableitungen haben und die Bewertung der Zielfunktion sehr teuer ist, besteht Ihre einzige Hoffnung darin, Kompromisse einzugehen: Verwenden Sie genügend ungefähre Informationen zweiter Ordnung, um eine gute Kandidatenschrittlänge zu erhalten, sodass eine Linie entsteht Die Suche erfordert nur Auswertungen (dh höchstens ein (kleines) konstantes Vielfaches des Aufwands, den Sie zur Bewertung Ihres Gradienten benötigen).O(1)

Eine Möglichkeit ist die Verwendung von Barzilai-Borwein-Schrittlängen (siehe z. B. Fletcher: Zur Barzilai-Borwein-Methode . Optimierung und Steuerung mit Anwendungen, 235–256, Appl. Optim., 96, Springer, New York, 2005 ). Die Idee ist, eine endliche Differenznäherung der Krümmung entlang der Suchrichtung zu verwenden, um eine Schätzung der Schrittgröße zu erhalten. Wählen Sie insbesondere beliebig, setzen Sie g 0 : = f ( x 0 ) und dann für k = 0 , . . . ::α0>0g0:=f(x0)k=0,...

  1. Setze und x k + 1 = x k + s ksk=αk1gkxk+1=xk+sk
  2. Bewerten Sie und setzen Sie y k = g k + 1 - g kgk+1=f(xk+1)yk=gk+1gk
  3. Setze αk+1=(yk)Tyk(yk)Tsk

f(xk+1)f(xk)σk(0,αk1)γ ( 0 , 1 ) M M. = 10

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
γ(0,1)MM=10

Ein alternativer (und meiner Meinung nach viel besserer) Ansatz wäre die Verwendung dieser Finite-Differenzen-Näherung bereits bei der Berechnung der Suchrichtung. Dies wird als Quasi-Newton-Methode bezeichnet . Die Idee ist, schrittweise eine Approximation des Hessischen unter Verwendung von Gradientendifferenzen zu erstellen . Zum Beispiel könnten Sie (die Identitätsmatrix) nehmen und für lösen und setze mit wie oben und . (Dies wird als Broyden-Update bezeichnetH 0 = I d k = 0 , H k s k = - g k , H k + 1 = H k + ( y k - H k s k ) T ( s k ) T.2f(xk)H0=Idk=0,

(1)Hksk=gk,
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+skund wird in der Praxis selten verwendet; Ein besseres, aber etwas komplizierteres Update ist das BFGS-Update , für das ich - und weitere Informationen - auf Nocedal und Wrights Buch Numerical Optimization verweise .) Der Nachteil ist, dass a) dies die Lösung eines linearen Systems in jedem Schritt erfordern würde (aber Nur von der Größe des Unbekannten, was in Ihrem Fall eine Anfangsbedingung ist, sollte der Aufwand durch das Lösen von PDEs dominiert werden, um den Gradienten zu erhalten. Außerdem gibt es Aktualisierungsregeln für Approximationen des inversen Hessischen, für die nur eine einzige Matrix berechnet werden muss -vector product) und b) Sie benötigen noch eine Zeilensuche, um Konvergenz zu gewährleisten ...

Glücklicherweise gibt es in diesem Zusammenhang einen alternativen Ansatz, der jede Funktionsbewertung nutzt. Die Idee ist, dass für symmetrisch und positiv definit (was für das BFGS-Update garantiert ist) das Lösen von der Minimierung des quadratischen Modells In einer Vertrauensbereichsmethode würden Sie dies mit der zusätzlichen Einschränkung tun , wobei ein entsprechend gewählter Vertrauensbereichsradius ist (der die Rolle der Schrittlänge ). Die Schlüsselidee besteht nun darin, diesen Radius basierend auf dem berechneten Schritt adaptiv auszuwählen. Insbesondere betrachten Sie das Verhältnis Hk(1)

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
der tatsächlichen und vorhergesagten Verringerung des Funktionswerts. Wenn sehr klein ist, war Ihr Modell schlecht, und Sie verwerfen und versuchen es erneut mit . Wenn nahe bei , ist Ihr Modell gut und Sie setzen und erhöhen . Andernfalls setzen Sie einfach und lassen Ruhe. Um den tatsächlichen Minimierer von zu berechnenρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s)Es gibt verschiedene Strategien, um zu vermeiden, dass das vollständig eingeschränkte Optimierungsproblem gelöst werden muss. Mein Favorit ist Steihaugs abgeschnittene CG-Methode . Für weitere Einzelheiten verweise ich erneut auf Nocedal und Wright.
Christian Clason
quelle
Ich schaue mir das gerade noch einmal an und stelle fest, dass ich eine Frage habe. In Schritt drei für die BB-Methode haben Sie ; wobei und . Der Zähler und der Nenner im Ausdruck für sehen aus wie innere Produkte. In meinem Fall , wobei ein Vektorraum mit einer nicht trivialen Riemannschen Metrik ist: K. Das heißt, . Beeinflusst das die Definition von ? αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10Me
Ja, wenn Sie eine nicht triviale Vektorraumstruktur haben, sollten Sie dies in den Algorithmen berücksichtigen. Insbesondere sollten Sie zwischen inneren Produkten zweier Funktionen im selben Raum (z. B. und ) und Dualitätsprodukten zwischen einer Funktion im Raum und einer im dualen Raum (z. B. und ) - Für letzteres müssen Sie das Riesz-Mapping einschließen, um es zuerst in ein inneres Produkt zu verwandeln. (Dies kann als Vorkonditionierung interpretiert werden.)y k s k y kykykskyk
Christian Clason
Dr. Clason, ich werde auf der ISBI 2017 eine Arbeit einreichen, in der einige Experimente aufgeführt sind, die ich mit der BB + -Linien-Suchmethode für eine diffeomorphe Bildregistrierungsaufgabe durchgeführt habe. Möchten Sie als Autor in das Manuskript aufgenommen werden? Ich habe es noch nicht geschrieben, aber ich habe die meisten Experimente entweder abgeschlossen oder im Gange. Lass es mich wissen, bitte.
NLi10Me
@ NLi10Me Vielen Dank für das freundliche Angebot, aber ich habe nichts getan, was eine Koautorschaft verdient - alles, was ich geschrieben habe, ist Standard-Lehrbuchmaterial. Wenn Sie sich stark dafür fühlen, können Sie mir für "hilfreiche Bemerkungen zu (was auch immer geholfen hat)" danken, aber nicht einmal das wäre erforderlich. Zu wissen, dass das, was ich geschrieben habe, hilfreich war, ist genug!
Christian Clason
1
Entschuldigung, Sie haben Recht, das ist ein Tippfehler - behoben! (Die Armijo-Bedingung wird oft geschrieben als , wobei die Suchrichtung ist - nicht unbedingt das Negative Farbverlauf - und die Schrittgröße, die klarer machen sollte, was los ist.)s σf(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason