W poszukiwaniu minimum globalnego

Optymalizacja W poszukiwaniu minimum globalnego Dawid Toton Optymalizacja – p. 1/30 Szansa na znalezienie minimum Optymalizacja – p. 2/30 Rodza...
6 downloads 2 Views 144KB Size
Optymalizacja

W poszukiwaniu minimum globalnego Dawid Toton

Optymalizacja – p. 1/30

Szansa na znalezienie minimum

Optymalizacja – p. 2/30

Rodzaje problemów Klasyfikacja według funkcji: ciagły: ˛ Rn → R dyskretny: Zn → R kombinatoryczny: 2n → R praktyczny: Zn × Rn → R

Optymalizacja – p. 3/30

Mo˙zliwe kłopoty:

Brak jakiegokolwiek opisu matematycznego — np. subiektywna ocena zrozumiało´sci mowy Kosztowne wyznaczenie warto´sci w ka˙zdym punkcie Liczba wymiarów tak du˙za, z˙ e nie starcza pamieci ˛ dla szybszych algorytmów Szum wprowadzony przez obliczenia — np. przez ´ metode˛ elementów skonczonych Wielomodalno´sc´ — wielka ilos´c minimów lokalnych

Optymalizacja – p. 4/30

Poszukiwanie minimum lokalnego Metody: bezgradientowe gradientowe newtonowskie

Optymalizacja – p. 5/30

Poszukiwanie proste Je´sli nie mamy z˙ adnej własno´sci minimalizowanej funkcji do dyspozycji, mo˙zemy u˙zy´c najprostszej metody: 1. Wybierz przestrzen´ parametru P , która˛ chcemy zbada´c 2. Zbadaj k punktów z P (regularna siatka lub losowanie), pamietaj ˛ najlepszy 3. Zmien´ region poszukiwan´ Zmniejsz go (np. jednakowo we wszystkich kierunkach) Przesun´ w lepsze miejsce (np. tak, aby w centrum był aktualny rekordzista) 4. n razy powtórz: → 2 5. → 1, czyli wykonaj wszystko od nowa (multistart) Zalety algorytmu: niewymagajacy, ˛ skranie prosty — ale: w przypadku wieklich problemów – wa˙zne jest zrównoleglenie! Podobne algorytmy: Hooka-Jeevesa, Rosenbrocka

Optymalizacja – p. 6/30

Simplex (Nelder-Mead) Algorytm minimalizacji dla funkcji F : Rn → R: 1. wybierz n + 1 punktów ~ xi 2. wybierz najgorszy punkt ~ xj 3. Czy to ten sam co przedtem? nie — odbij go symetrycznie wzgledem ˛ hiperpłaszczyzny wyznaczonej przez pozostałe je´sli tam jest mniejsza warto´sc´ F : rozciagnij ˛ bryłe˛ x1 ,. . . ,xn+1 w kierunku xj w przeciwnym wypadku: postaw xj w mniejszej odległo´sci od płaszczyzny odbicia ten sam — wybierz najgorszy spo´sród pozostałych (→ 3). 4. Sprawd´z, czy tu ju˙z minimum 5. Je´sli utkneli´ ˛ smy, to wprowad´z odpowiednie zmiany 6. → 2 Optymalizacja – p. 7/30

Simplex (Nelder-Mead) UWAGA: nie ufa´c obrazkowi – robótka reczna, ˛ na oko!

Optymalizacja – p. 8/30

Z minimalizacja˛ kierunkowa˛

1 T F (~x + p~) = F (~x) + ∇F p~ + p~ H (~x) p~ + O (h3 ) 2 Koncepcja ogólna: 1. Czy mamy ju˙z zadowalajace ˛ ~x? (warunki zbie˙zno´sci, optymalno´sci) 2. Wyznacz kierunek poszukiwan´ p~. 3. Znajd´z µ takie, by F (~x + µ~p) < F (~x) 4. Oblicz nowe ~x, gradient, hesjan (lub jego przybli˙zenie); nastepny ˛ krok

Optymalizacja – p. 9/30

Najprostsze metody pierwszego rzedu ˛ Znamy gradient w punkcie ~x . Dokad ˛ i´sc´ ? ~xi+1 = ~xi − µ∇F (~xi ) Tak nie najlepiej — zły kierunek np. w „bananowej doliniea ”. Gdy długo´sc´ kroku µi ustalana według przepisu (np. „chod´z szybciej po płaskim”): ~xi+1

∇F (~xi ) = ~xi − µi k∇F (~xi )k

Wersja z momentem: ~xi+1 − ~xi = α (~xi − ~xi−1 ) − µ∇F (~xi ) a funkcja

Rosenbrocka: F (~ x) = 100 x2 −

2 x21



+ (1 − x1 ) Optymalizacja – p. 10/30

Minimalizacja kierunkowa Ile naprawde˛ powinno wynosi´c µ? adaptacja (jest OK – zwieksz, ˛ „pod górk˛e” – zmniejsz) bisekcja, złoty podział, itp. — miejscami opłacalne przybli˙zenie parabola˛ — obliczamy F w trzech punktach je´sli znamy ∇F — mo˙zna pozwoli´c sobie na wy˙zszy rzad ˛

Optymalizacja – p. 11/30

Metoda gradientów sprze˙ ˛ zonych Kierunki minimalizacji p~i ustalamy tak, by za ka˙zdym razem wnosiły „co´s nowego”. Z z˙ adania ˛ ortogonalno´sci i sprz˛e˙zenia kierunków p~1 . . . p~k−1 wynika posta´c wzoru na nastepny ˛ kierunek: ~gkT (~gk − ~gk−1 ) p~k = −~gk + p~k−1 T ~gk−1~gk−1 powolniejsza ni˙z metody drugiego rz˛edu mała zło˙zono´sc´ pamieciowa ˛ i czasowa Najlepsza dla najwiekszych ˛ problemów.

Optymalizacja – p. 12/30

Levenberg-Marquardt Jak Origin dopasowuje nam krzywe? Minimalizujemy bład ˛ kwadratowy: P F (~ x) = 12 (ei (~ x))2 . Znamy gradient: ∇F = (J (~x))T ~e (~ x), gdzie J oznacza

macierz Jacobiego dla ~e: J (~ x) =

h

∂ei ∂xj

i

. Przybli˙zony hesjan:

G (~ x) = (J (~ x))T J (~ x) + vk 1 Drugi składnika daje regularyzacje˛ — sam hesjan cz˛esto nie jest dodatnio okre´slony. Parametr Levenberga-Marquardta vk jest du˙zy na poczatku ˛ ´ mały (blisko minimum — (idziemy w kierunku najwiekszego ˛ spadku), na koncu kwadratowo zbie˙zny algorytm Gaussa-Newtona). Obierany krok: x) p ~ = − (G (~ x))−1 ∇F (~ a

pomysl Levenberga

Optymalizacja – p. 13/30

Levenberg-Marquardt Poprawkaa („po płaskim chod´z szybciej”): T

T

G (~ x) = (J (~ x)) J (~ x) + vk diag (J (~ x)) J (~ x) Ile wynosi vk ?



je´sli F (~ x+p ~) ¬ F (~ x), zbli˙zamy sie˛ do minimum, wiec ˛ vk+1 =

vk r

idziemy do ~ x+p ~ je´sli F (~ x+p ~) > F (~ x) vk+1 = vk rn rezygnujemy z takiego kroku a

pomysl Marquardta

Optymalizacja – p. 14/30

Levenberg-Marquardt Bardzo skuteczna metoda, ale: 3

Odwracanie macierzy zajmuje O n



czasu.

´ Jedna z najlepszych dla problemów srednich rozmiarów. Konkurencyjny sposób: algorytm zmiennej metryki — w ka˙zdym kroku aktualizacja odwrotno´sci „hesjanu” Vk = (G (~ xk ))−1 . Przykładowo — wzór Broydena-Goldfarba-Fletchera-Shanno: Vk = Vk−1 +



1+

rkT Vk−1 rk sTk rk



sk rkT Vk−1 + Vk−1 rk sTk sk sTk − sTk rk sTk rk

gdzie sk = ~ xk − ~ xk−1 , rk = ∇F (xk ) − ∇F (xk−1 ).

Optymalizacja – p. 15/30

Dokładne ró˙zniczkowanie. . . Załó˙zmy, z˙ e nasz nowy wspaniały algorytm potrzebuje dokładnej warto´sci gradientu funkcji F . Patrzymy na skomplikowany kod naszej minimalizowanej ´ funkcji. . . Co pocza˛c?

Optymalizacja – p. 16/30

Dokładne ró˙zniczkowanie. . . Załó˙zmy, z˙ e nasz nowy wspaniały algorytm potrzebuje dokładnej warto´sci gradientu funkcji F . Patrzymy na skomplikowany kod naszej minimalizowanej ´ funkcji. . . Co pocza˛c? Nie trzeba du˙zo kawy! Bierzemy narz˛ edzia: Fortran — ADIFOR, ADOL-F, DAFOR, GRESS, JAKEF, TAMC, OPTIMA90, . . . C — ADIC, ADOL-C, FADBAD++ . . . i generujemy programy obliczajace ˛ potrzebne nam pochodne.

Optymalizacja – p. 16/30

Automatyczne ró˙zniczkowanie programów Jak działa takie narz˛edzie? analizuje kod z´ ródłowy – jak kompilator, znajduje wszystkie operacje arytmetyczne i wywołania prostych funkcji (tzn. sin (x) , exp (x). . . ), buduje kod obliczajacy ˛ zadane pochodne czastkowe ˛ 1. lub 2. rz˛edu.

Optymalizacja – p. 17/30

Automatyczne ró˙zniczkowanie programów Funcja celu obliczana krok po kroku: F (~x) = G (ML (ML−1 (. . . M1 (M0 (~x)) . . .))) = G (~y ) Dwa sposoby ró˙zniczkowania: wprost ∇y G · JL · JL−1 · . . . · J1 · J0 · δ~x = δF Obliczenia wykonuja˛ sie˛ tyle razy, ile wynosi wymiar przestrzeni parametru ~ x

wstecz („obliczenia sprz˛e˙zone”) T

T

T J0T · J1T · . . . · JL−1 · JLT · (∇y G) = (∇x (F ))

Tyle razy powtarzamy cała˛ procedure, ˛ ile wynosi wymiar przeciwdzedziny F — zwykle du˙zo mniej! Koszt: warto´sci Mi trzeba przechowywa´c lub ka˙zdorazowo od nowa oblicza´c. Optymalizacja – p. 18/30

Jak nie utkna˛c´ w minimum lokalnym?

poprawianie algorymtów gradientowych (np. dodanie momentu) multistart — wielokrotnie losujemy punkt startu, by trafi´c w „nieck˛e” minimum globalnego metody globalnej optymalizacji (przyrodnicze!) algorytmy genetyczne symulowane wy˙zarzanie Inne dary natury: sieci neuronowe, algorytmy mrówkowe (ant colony optimization), ewolucyjne (evolution strategies), sieci immunologiczne (artifical immune networks). . .

Optymalizacja – p. 19/30

TSP – problem komiwoja˙zera Dany jest graf (V, E), którego krawedzie ˛ maja˛ wagi (d : V → R+ ). Wyznaczy´c cykl h1 , . . . , hn , w którym ka˙zdy wezeł ˛ pojawia sie˛ dokładnie raz (cykl Hamiltona) Ograniczenia na przestrzen´ Nn : ∀i=1...n ∃j : vj = hi ∀i6=j hi 6= hj krawedzie ˛ daja˛ minimalna˛ sume˛ wag

min

|V | X

dhi ,hi+1

i=1

Po prostu pytamy: w jakiej kolejno´sci wierci´c dziury? . . . obserwowa´c gwiazdy? Optymalizacja – p. 20/30

TSP Problem jest NP-trudny, ale w praktyce zadowalamy sie˛ przybli˙zonymi rozwiazaniami. ˛ U˙zywane metody: heurystyki symulowane wy˙zarzanie algorytmy genetyczne, mrówkowe sie´c neuronowa inne. . .

Optymalizacja – p. 21/30

Sieci neuronowe a optymalizacja

Uczenie sieci neuronowych intensywnie wykorzystuje algorytmy optymalizacji Optymalizacja mo˙ze by´c realizowana przez sieci neuronowe! Ciekawostka: jak zaprzac ˛ sie´c Hopfielda do rozwiazywania ˛ TSP? ϕi =

P

j6=i

wji yj

yi = 12 (1 + tanh(βϕi ))

Optymalizacja – p. 22/30

Uciaglenie ˛ TSP dla sieci Niech role˛ poszukiwanego punktu ~ x pełni teraz macierz: xpi =

(

1

gdy

0

wpp

hp = vi

Ograniczenia: Jedno odwiedzenie ka˙zdego miasta p, jedno miasto na ka˙zdej pozycji i: h1 (x) =

X

xpi xpj = 0

h2 (x) =

p,i,j6=i

X

xpi xqi = 0

p,i,q6=p

Odwiedzenie wszystkich: h3 (x) =

X p,i

!2

xpi − n

=0 Optymalizacja – p. 23/30

Uciaglenie ˛ TSP dla sieci

Analogowa sie´c Hopfielda: ciagły ˛ czas ciagła ˛ funkcja aktywacji y (ϕ) ewolucja opisana układem równan´ ró˙zniczkowych dui 1 ∂E = − dt c ∂xi

Optymalizacja – p. 24/30

Uciaglenie ˛ TSP dla sieci Nasza funkcja celu (oryginalna): J (x) =

X

dpq xpi (xq,i+1 + xq,i−1 )

p,q6=p,i

Funkcja energii neuronowej sieci Hopfielda (J+ funkcje „kary”): E (x) = Ah1 (x) + Bh2 (x) + Ch3 (x) + DJ (x) +

X1Z pi

τ

xpi

y −1 (ξ) dξ

1 2

Otrzymany układ ewoluuje ku krótkim cyklom, ale łatwo wpada w minima lokalne. Wiele modyfikacji, poszukiwanie odpowiednich parametrów. ´ Siła tkwi w równoległosci.

Optymalizacja – p. 25/30

Ant Colony Optimization Inspiracja: Jak sie˛ zachowuja˛ mrówki? pozostawiaja˛ s´ lady feromonowe cz˛e´sciej chodza˛ tam, gdzie wywesz ˛ a˛ sygnał gdy nie wiedza˛ dokad ˛ pój´sc´ — wybieraja˛ przypadkowy kierunek działaja˛ w du˙zej grupie znajduja˛ krótkie s´ cie˙zki

Optymalizacja – p. 26/30

Ant Colony Optimization Innymi słowy: dodatnie sprz˛e˙zenie zwrotne wysoki stopien´ równoległo´sci liczno´sc´ jednostek (agentów) zapobiega przedwczesnej zbie˙zno´sci zachłanno´sc´ Istnieje optymalna liczba mrówek, powy˙zej której jako´sc´ rozwiazania ˛ sie˛ nie poprawia.

Optymalizacja – p. 27/30

Ant Colony Optimization Mamy sposób na rozwiazywanie ˛ problemów kombinatorycznych (TSP, SAT, QAP, . . . ). Trzeba znale´zc´ : grafowa˛ reprezentacje˛ problemu (dla TSP – oczywista) sposób zachłannego konstruowania pojedynczego rozwiazania ˛ ~x (TSP: mrówka pamieta ˛ sobie kolejne odwiedzane wezły) ˛ zasade˛ gromadzenia informacji w grafie (TSP: np. krótsza krawed´ ˛ z – wiecej ˛ feromonu) nowa˛ posta´c ograniczen´ definiujacych ˛ przestrzen´ rozwiaza ˛ n´ (TSP: mrówka nie powraca do wezła, ˛ który sobie pamieta) ˛ Optymalizacja – p. 28/30

Gotowce Pakiety słu˙zacych ˛ do optymalizacji (lista z serwisu numerycznego ICM): COOOL, GSL, HSL, KNITRO, MINOPT, MLOCPSOA, NAG, NAPACK, NEOS, OPT++, OptSolve++, PORT, Scilab, SLATEC, SMINPACK, StarFLIP++, TOMLAB, UNCON

Optymalizacja – p. 29/30

Jak to wyglada? ˛ Przykład: Opt++ — biblioteka w C++ do rozwiazywania ˛ nieliniowych problemów optymalizacyjnych. #include "NLF.h" #include "OptQNewton.h" ... int main() { FDNLF1 nlp(2, funkcja, init funckja); nlp.initFcn(); OptQNewton objfcn(&nlp); objfcn.setSearchStrategy(TrustRegion); objfcn.setMaxFeval(200); objfcn.setFcnTol(1.e-4); objfcn.setOutputFile("example1.out",0); objfcn.optimize(); }

Optymalizacja – p. 30/30