Ich nehme an, es könnte einen Unterschied geben, wie Liniensuche und Vertrauensbereichsmethoden mit Skalierung umgehen, aber ich sehe es in der Praxis wirklich nicht, solange wir uns der Skalierung bewusst sind. Und um klar zu sein, sprach das Buch von Nocedal und Wright über affine Skalierung. Die nichtlineare Skalierung ist etwas schwieriger zu quantifizieren.
Um zu sehen, warum, sagen wir, wir wollen minimieren , aber wir wollen die Variablen mit einer Art nicht singulärem, selbstadjunktem Operator A ∈ L ( X ) skalieren . Definieren Sie J : X → R als skalierte Zielfunktion. Dann ist
J ( x ) = f ( A x ) ≤ J ( x ) = A ≤ f ( A x ) ≤ 2 J ( x )f: X.→ R.A∈L(X)J:X→R
Der wahre Unterschied bei den Algorithmen besteht darin, was mit der SkalierungApassiert. In Newtons Methode lösen wir
∇2J(x)δx=-∇J(x)
oder
A∇2f(Ax)Aδx=-A∇f(Ax)
Unter der Annahme, dass der Hessische nicht singulär ist, haben wir
EIN
J(x)=∇J(x)=∇2J(x)=f(Ax)A∇f(Ax)A∇2f(Ax)A
A∇2J(x)δx=−∇J(x)
A∇2f(Ax)Aδx=−A∇f(Ax)
Grundsätzlich wird die Skalierung aufgehoben und verschwindet, sodass die Richtung nicht beeinflusst wird. Deshalb sagen wir, dass Newtons Methode eine affine Skaleninvariante ist.
Aδx=−∇2f(Ax)−1∇f(Ax)
Hδx=−∇J(x)
HHδx=−A∇f(Ax)
AH
ϕ
δx=ϕ(−A∇f(Ax))
ϕϕϕA
∇2J(x)δx=−∇J(x)
ungenau mit CG. Dies ist genau die Verwendung von Steihaug-Toint in der Einstellung für die Vertrauensregion (S. 171 in Nocedal und Wright) oder Newton-CG für die Zeilensuche (S. 169 in Nocedal und Wright). Sie arbeiten ziemlich ähnlich und kümmern sich nicht um affine Skalierung. Sie erfordern auch keine Speicherung des Hessischen, sondern nur Hessische Vektorprodukte. Wirklich, diese Algorithmen sollten die Arbeitspferde für die meisten Probleme sein und sie kümmern sich nicht um affine Skalierung.
Was die Voraussetzung für das Problem der Vertrauensregion betrifft, gibt es meines Erachtens keine einfache Möglichkeit, apriori zu sagen, ob Sie die Anzahl der gesamten Optimierungsiterationen verbessern wollen oder nicht. Letztendlich arbeiten Optimierungsmethoden in zwei Modi. Im ersten Modus sind wir zu weit vom Konvergenzradius der Newton-Methode entfernt. Daher globalisieren wir die Iterationen und erzwingen sie, um sicherzustellen, dass das Ziel sinkt. Vertrauensregion ist eine Möglichkeit. Die Zeilensuche ist eine andere. Im zweiten Modus befinden wir uns im Konvergenzradius der Newton-Methode, also versuchen wir, uns nicht damit herumzuschlagen und lassen die Newton-Methode ihren Job machen. Tatsächlich können wir dies an den Konvergenznachweisen von Dingen wie Methoden der Vertrauensregion erkennen. Schauen Sie sich zum Beispiel Satz 4.9 an (S.93 in Nocedal und Wright). Sehr explizit geben sie an, wie die Vertrauensregion inaktiv wird. Was ist in diesem Zusammenhang der Nutzen des Vorkonditionierers? Wenn wir uns im Konvergenzradius der Newton-Methode befinden, arbeiten wir sicherlich viel weniger und die Anzahl der CG-Iterationen nimmt ab. Was passiert, wenn wir uns außerhalb dieses Radius befinden? Es kommt irgendwie darauf an. Wenn wir den Full-Newton-Schritt berechnen, besteht der Vorteil darin, dass wir weniger Arbeit geleistet haben. Wenn wir unseren Schritt aufgrund des Abschneidens von abgeschnittenem CG vorzeitig abbrechen, liegt unsere Richtung im Krylov-Unterraum
{−P∇J(x),−(PH)(P∇J(x)),…,−(PH)k(P∇J(x))}
PH{−∇J(x),−(H)(∇J(x)),…,−(H)k(∇J(x))}?
Dies bedeutet nicht, dass es keinen Wert hat, einen guten Vorkonditionierer zu definieren. Ich bin mir jedoch nicht sicher, wie jemand einen Vorkonditionierer definiert, der bei der Optimierung von Punkten außerhalb des Konvergenzradius der Newton-Methode hilft. Typischerweise entwerfen wir einen Vorkonditionierer, um die Eigenwerte der hessischen Näherung zu gruppieren, was ein greifbares, messbares Ziel ist.
tldr; In der Praxis gibt es für eine Zeilensuchmethode eine größere Vielfalt an Möglichkeiten, eine Iteration zu generieren als für eine Vertrauensbereichsmethode. Daher gibt es möglicherweise eine erstaunliche Möglichkeit, die affine Skalierung zu handhaben. Verwenden Sie jedoch einfach eine ungenaue Newton-Methode, und es spielt keine Rolle. Ein Vorkonditionierer beeinflusst die Leistung eines Algorithmus außerhalb des Konvergenzradius der Newtonschen Methode, aber es ist schwer zu quantifizieren, wie. Entwerfen Sie daher einfach einen Vorkonditionierer, um die Eigenwerte der Hessiasn-Näherung zu gruppieren.