Einseitige nichtlineare kleinste Quadrate mit linearen Einschränkungen

8

Ich versuche, ein einseitiges nichtlineares Problem der kleinsten Quadrate mit linearen Einschränkungen zu lösen, dh das Problem:

minxi=1mri(x) s.t Axb

wo

ri(x)=fi(x)2 wenn fi(x)>0 und ri(x)=0 sonst.

Mit anderen Worten, dies kann als Problem der kleinsten Quadrate betrachtet werden, bei dem nur die positiven Residuen (die f ) enthalten sind. Ich kann nicht genug betonen, dass dies kein Datenanpassungsfall ist. Mir ist bewusst, was passieren würde, wenn es für die meisten Fälle der Datenanpassung verwendet würde, bei denen das Ergebnis lediglich eine Funktion wäre, die "über" allen Beobachtungen steht. Die Anwendung dient zum Lösen eines sehr spezifischen Optimierungsproblems, das normalerweise in der Minmax-Norm gelöst wird ( minx||f(x)|| ). In allen praktischen Fällen erreicht die Lösung aufgrund des Verhaltens der f- Funktionen nicht Null, dh || \ mathbf {f} (\ mathbf {x}) || _ \ infty \ neq 0 .||f(x)||0f

Die f Funktionen sind nicht linear, und wir haben Zugriff auf ihre Ableitungen, so dass wir den Jacobi ohne große zusätzliche Probleme analytisch berechnen können.

Wir haben mit einigem Erfolg einen Levenberg-Marquardt-Algorithmus angewendet, bei dem die Zielfunktion wie oben formuliert ist, dh die f unter 0 werden aus der Summe entfernt und die entsprechenden Zeilen des Jacobi J auf Null gesetzt (dh Ji,:=0 wenn fi(x)<=0 Dies ist ziemlich grob, funktioniert aber in Ordnung, leider konnten wir die linearen Einschränkungen nicht berücksichtigen.

Wir kennen eine Reihe von Methoden, die das NLLSQ-Problem nur mit gebundenen Einschränkungen lösen, aber diese Methoden lösen unser Problem offensichtlich nicht. Wir haben nur eine NLLSQ mit linearen Einschränkungen gefunden, die als DQED bezeichnet wird, und diese mit begrenzten Erfolgen (wir sind mit der Anzahl der Iterationen / Funktionsbewertungen unzufrieden) verwendet, indem wir unsere Zielfunktion wie bei Levenberg Marquardt geändert haben.

Was ich suche

Vorschläge für Methoden, die das Problem der nichtlinearen kleinsten Quadrate mit linearen Einschränkungen lösen. Vorschläge zur Änderung von Algorithmen, um die Tatsache zu berücksichtigen, dass nur die positiven Residuen berücksichtigt werden, sind ebenfalls willkommen. Schließlich sind alle Tipps oder Gedanken sehr willkommen, obwohl ich noch einmal betonen muss, dass die Formulierung des Problems nicht falsch ist, obwohl mir klar ist, dass es aufgrund der mangelnden Differenzierbarkeit von nicht für die Optimierung am besten geeignet ist) wenn .r i ( x ) = 0ri(x)ri(x)=0

OscarB
quelle
Wenn Sie schreiben , meinen Sie damitoder? Ich vermute letzteres? max x | f ( x ) | max i | f i ( x ) |f(x)maxx|f(x)|maxi|fi(x)|
David Ketcheson
Letzteres ja. Danke, dass Sie gefragt haben, sorry, das war unklar.
OscarB

Antworten:

2

Ein Großteil meiner Antwort auf diese Frage gilt auch hier; Ignorieren Sie einfach den PDE-Teil und tun Sie so, als würde ich von einem normalen nichtlinearen Optimierungsproblem sprechen.

Da Sie über kontinuierliche Funktionen verfügen, können Sie im Allgemeinen direkte Suchmethoden verwenden. Die Konvergenz dieser Methoden kann jedoch langsamer sein als bei entsprechenden Methoden, die abgeleitete Informationen höherer Ordnung verwenden (die Sie in diesem Fall nicht haben). Sie können auch versuchen, nicht glatte Optimierungslöser zu betrachten, z. B. solche, die Bündelmethoden verwenden. Der Hauptname auf diesem Gebiet ist Frank Clarke, der einen Großteil der Theorie hinter der nicht glatten Optimierung entwickelt hat. Ansonsten weiß ich nicht viel über diese Literatur.

Ich vermute, dass aufgrund der Nichtdifferenzierbarkeit in Ihrem Ziel die Verwendung von Methoden, die abgeleitete Informationen erster oder zweiter Ordnung annehmen, Probleme mit der Konvergenz verursacht.

Geoff Oxberry
quelle
Vielen Dank, ich werde versuchen, nicht reibungslose Optimierung. Ich hoffe immer noch, jemanden zu finden, der sich auch mit diesem Problem befasst - ich wäre überrascht, wenn ich der einzige bin, der sich damit befasst hat. Also lasse ich die Frage für ein bisschen offen.
OscarB
0

(Jahre später) Wie Sie wissen, übernehmen Levenberg-Marquardt-Optimierer einen ganzen Funktionsvektor und summieren und quadrieren im Inneren. Somit wird nur die , was Sie wollen, ist das richtig?[fi]
f i > 0levmar( max( [fi...], 0 )]
fi>0

Lineare Bedingungen haben die gleiche Eigenschaft wie Ihr , dass nur die positiven Terme von Bedeutung sind. Sie können also einfach das Los levmar: (mit multipliziert mit 1000 oder 1000000.) Natürlich die Ich muss mir die Zeichen von und , aber das ist einfach. Außerdem würde ich einen Begriff hinzufügen , um zu verhindern, dass ins Unendliche wandert.f ilini(x)Aixbi0fi
l i n i J a c o b i a n s i ( x )levmar( max( [fi... lini...], 0 )]
liniJacobiansi(x) l i n ix xfilinixx

(Sowohl Scipy Least_Squares als auch Ceres haben Box-Einschränkungen, aber ich sehe keine Möglichkeit, Regionen Boxen zuzuordnen .)Axb

denis
quelle