OptiLab kam se to sešlo?

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Co tenhle nástroj nepočítá

Optimalizace je obor, kde je snadné vzbudit dojem, že nástroj umí víc, než umí. Tady je seznam toho, co uvnitř není, a proč.

Globální minimum

Žádná z metod tady nenajde globální minimum a žádná to netvrdí. Všechny hledají bod, ze kterého se malým krokem nedá klesnout. Himmelblauova funkce má čtyři stejně hluboká minima a to, do kterého se dojde, rozhoduje výhradně start:

x₁x₂-5.50.05.5-5.50.05.51234Čtyři stejně hluboká minima. Klikni do mapy.
Z tohoto startu se dojde do minima 2 = [-2,805, 3,131], f = 0,000000000 za 14 kroků
Všechna čtyři jsou stejně hluboká, takže žádné z nich není „to správné". Jediné, co s tím jde dělat, je pustit hledání z mnoha startů: 60 startů našlo 4 různých minim.
Klikni do mapy a vyber, odkud vyjít. Barva cesty říká, ve kterém ze čtyř minim se skončí — a všechna čtyři jsou stejně dobrá.

A není to ani spojité, což je horší, než to zní. Když se v téhle figuře projede vodorovná přímka x₂ = −2 od x₁ = −5 do 5, cílové minimum se změní desetkrát. Start v bodě [4,5, −2] leží nejblíž minimu číslo 4 — a BFGS z něj dojde do minima číslo 3, na opačné straně mapy. Oblasti přitažlivosti jsou proložené natolik, že „vyjdi blízko toho, co čekáš" není záruka. Právě proto je multistart nutnost, ne formalita.

Jediná poctivá odpověď na otázku „je to globální?" je pustit hledání z mnoha startů a spočítat, kolik různých minim se našlo. To nástroj umí. Zaručit, že jich není víc, neumí nikdo.

co uvnitř neníproč
Podmínky KKT, aktivní množiny, SQP, vnitřní bodobecná omezení jsou samostatné téma; je tu jen box a penalizace
Celočíselné a diskrétní proměnnéúplně jiný obor (kombinatorická optimalizace), ne varianta tohoto
Řídké matice a velké úlohytady jsou všechny operace husté, což je pro desítky proměnných v pořádku a pro miliony ne
Automatické derivováníderivace jsou buď zadané, nebo z konečných diferencí; AD je lepší, ale je to vlastní téma
Stochastické metody (SGD, Adam)patří k úlohám, kde se účelová funkce počítá po dávkách dat
Vícekriteriální optimalizace a Paretova fronta„nejlepší" přestává být jednoznačné, jakmile jsou kritéria dvě
Robustní a stochastická optimalizacepočítá s nejistotou v zadání, ne jen v měření

A jedna věc, kterou to naopak umí líp než učebnice

Ověřování. Většina textů ukazuje, že metoda „konverguje", tím, že vypíše tabulku iterací. Tady se kontroluje odpověď, ne cesta: v nalezeném bodě se ověří podmínky optimality, pustí se dvě stě šťouchnutí hrubou silou, a pět metod z téhož startu musí skončit na témž místě. Každé z těch ověření sdílí s hledáním co nejméně kódu, aby chyba nemohla projít oběma.

Kde to v akademii navazuje

labkavztah
KineLabIK tlumenými nejmenšími čtverci — Levenberg-Marquardt pod jiným jménem
VisionLabkalibrace a hand-eye jako nelineární fit, včetně varování o malém reziduu
FilterLabKalmanův filtr jako rekurzivní nejmenší čtverce
ControlLabladění regulátoru jako hledání minima

Vzorce v této kapitole

— — předpoklady modelu
hladká funkce · husté matice · spojité proměnné · lokální minimum [—] proto se hlásí i „nekonvergovalo"
— — co nástroj nepočítá
globální minimum · KKT a SQP · celočíselné proměnné · řídké úlohy · AD · vícekriteriální [—] vědomé omezení