Princip gradientních optimalizačních metod Tomáš Kroupa 20. května 2014 Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.
Obsah Úkol a základní princip Obecné značení Výpočet gradientu optimalizace Metoda nejvetšího spádu Metoda sdružených gradientů Newtonova metoda Kvazi-Newtonovo metody Porovnání metod
Úkol a základní princip Úkol a základní princip Obecné značení Výpočet gradientu optimalizace Metoda nejvetšího spádu Metoda sdružených gradientů Newtonova metoda Kvazi-Newtonovo metody Porovnání metod
Nalézt Úkol min x {f (x)} (1) kde f je funkcí mnoha proměnných (parametrů) f = f(x 1, x 2,..., x N ), (2) na oblasti Ω, která je definovaná tak, že x 1 x lb 1, xub 1 atd. Často se značí x = [x 1, x 2,..., x N ] T. (3) Často je nutné uvažovat ještě podmínky rovnosti a nebo nerovnosti 1 0 h in (x) a nebo 0 = h eq (x). (4) 1 Pak ovšem musí být algoritmy více propracované, princip těchto algoritmů snad bude jednou ukázán. Úkol a základní princip 4/21
Úkol Funkce f nemusí být popsaná jen analyticky, ale i tak, že pomocí parametrů x se postaví MKP model a výstup bude například maximální průhyb modelu, nebo první vlastní frekvence. A funkce f může být rozdíl mezi vlastní frekvencí, na kterou chceme model naladit nebo ten samotný průhyb, který chceme minimalizovat apod. Úkol a základní princip 5/21
Praktické příklady 1. Identifikace materiálových parametrů f Rozdíl mezi MKP a exp. x E 1, E 2, σ y,... 0 h Relaxační časy u viskoelastického modelu větší než 0 2. Minimalizace hmotnosti lávky f Hmotnost lávky x Všechny možné rozměry, skladba vrstev laminátu,... 0 h Průhyb, První vlastní frekvence > 6 Hz 3. Identifikace místa dopadu impaktoru f Rozdíl mezi signály z analýzy a exp. x Pozice razníku v analýze 0 h Hodnoty rázové funkce musí být vždý vetší nebo rovny 0 Úkol a základní princip 6/21
Základní princip Sestavení posloupnosti kde x k+1 = x k + α k d k (5) x k je vektor hodnot parametrů v kroku k. α k je délka kroku. d k je směr kroku. Rychlost konvergence a dost často i schopnost algoritmu nalézt minimum ovlivňuje volba x 0. Úkol a základní princip 7/21
Další obecné informace Při vhodné volbě d k a vlastnostech funkce f lze dokázat, že výše zmíněná posloupnost konverguje k minimu (v okolí bodu minima). Volba d k se liší metodu od metody. Parametr α k se určuje jako řešení 1D optimalizace { ( min f x k+1)} { ( = min f x k + α k d k)}. (6) α k α k V praxi často nelze nalézt přesné minimum, proto se výpočet ukončuje podmínkou kdy kde ɛ je velmi malé číslo např. 10 6. f ɛ, (7) Úkol a základní princip 8/21
Značení a co je co? Gradient c (x) = f (x) = [ f x 1, f x 2,..., ] f T (8) x N Hessova matice H (x) = 2 f (x) = 2 f x 1 x 1 2 f x 2 x 1. 2 f x N x 1 2 f x 1 x 2 2 f 2 f x 1 x N 2 f x 2 x N x 2 x 2..... 2 f x N x 2 2 f x N x N (9) Úkol a základní princip Obecné značení 9/21
Výpočet gradientu Analyticky to snad nebudeme probírat, ne? ;-) Numericky je nutné definovat interval, na kterém bude gradient vypočten x i. Single sided f = f(x 1 + x 1, x 2,...) f(x 1, x 2,...) (10) x 1 x 1 Central differences f = f(x 1 + x 1, x 2,...) f(x 1 x 1, x 2,...) (11) x 1 2 x 1 A mnoho dalších ještě fikanějších způsobů. Úkol a základní princip Výpočet gradientu 10/21
Výpočet gradientu - ukázka na paraboloidu f =x 2 1 +2x 2 2 f(x 1,x 2 ) =[2x 1,4x 2 ] T f 14 12 10 8 6 4 2 0 2 2.0 Top 1.5 1.0 0.5 x 2 0.0 0.5 1.0 1.5 2.0 Front 2.0 1.51.0 0.5 0.00.51.0 x 1 1.5 2.0 Side Analyticky f(1.0,1.0) = [2.0,4.0] T Numericky -- single sided f(1.0,1.0) = [3.0,6.0] T, [ x 1, x 2 ] T =[1,1] T f(1.0,1.0) = [2.5,5.0] T, [ x 1, x 2 ] T =[0.5,0.5] T f(1.0,1.0) = [2.1,4.2] T, [ x 1, x 2 ] T =[0.1,0.1] T f(1.0,1.0) = [2.01,4.02] T, [ x 1, x 2 ] T =[0.01,0.01] T Numericky -- central differences f(1.0,1.0) = [2.0,4.0] T, [ x 1, x 2 ] T =[1,1] T f(1.0,1.0) = [2.0,4.0] T, [ x 1, x 2 ] T =[0.01,0.01] T x 1 f f f x 2 x 1 x2 x 1 x 2 Úkol a základní princip Výpočet gradientu 11/21
optimalizace Úkol a základní princip Obecné značení Výpočet gradientu optimalizace Metoda nejvetšího spádu Metoda sdružených gradientů Newtonova metoda Kvazi-Newtonovo metody Porovnání metod
Metoda nejvetšího spádu Připomeňme, že x k+1 = x k + α k d k. Základní myšlenkou této metody je, že ( d k = c k = c x k). (12) optimalizace Metoda nejvetšího spádu 13/21
Metoda sdružených gradientů Připomeňme, že x k+1 = x k + α k d k. Základní myšlenkou této metody je, že Platí, že d 0 = c 0. d k = c k + ( ck c k 1 )2 d k 1. (13) optimalizace Metoda sdružených gradientů 14/21
Newtonova metoda Připomeňme, že x k+1 = x k + α k d k. Základní myšlenkou této metody je, že d k = (H k ) 1 c k, (14) kde se v praxi d k získá jako řešení soustavy lineárních algebraických rovnic H k d k = c k. optimalizace Newtonova metoda 15/21
Newtonova metoda Typicky dochází k problémům pokud je v H k singulární. Pokud ovšem je funkce f šikovná, má tato metoda nejrychlejší konvergenci. Pokud je α = 1 jedná se o klasickou Newtonovou metodu, pokud se určuje délka kroku α jde o modifikovanou Newtonovu metodu. optimalizace Newtonova metoda 16/21
BFGS Broyden-Fletcher- Goldfarb-Shanno Připomeňme, že x k+1 = x k + α k d k. Základní myšlenkou této metody je, že kde d k = (B k ) 1 c k, (15) s k = x k+1 x k rozdíl parametrů, (16) y k = c k+1 c k rozdíl gradientu, (17) B k+1 = B k Bk s k s kt B k s kt B k s k přičemž opět lze řešit B k d k = c k. + yk y kt y kt s k, (18) optimalizace Kvazi-Newtonovo metody 17/21
BFGS Broyden-Fletcher- Goldfarb-Shanno Případně lze inverzi matice B k+1 vypočítat i jiným způsobem a to pomocí Sherman Morisson vztahu 2 (B k+1 ) 1 = (B k ) 1 + (s kt y k + y kt (B k ) 1 y k) ( s k s kt) (s kt y k) 2 Často se bere B 0 = I nebo B 0 = H(x 0 ). + (Bk ) 1 y k s kt + s k y kt (B k ) 1 s kt y k. (19) 2 k a k + 1 jde jen o to z jakého kroku se na daný vztah koukáme. optimalizace Kvazi-Newtonovo metody 18/21
Porovnání metod Úkol a základní princip Obecné značení Výpočet gradientu optimalizace Metoda nejvetšího spádu Metoda sdružených gradientů Newtonova metoda Kvazi-Newtonovo metody Porovnání metod
Porovnání f = x 2 + xy + 3 4 y2 y 2.0 1.5 1.0 0.5 0.0 0.5 1.0 Nejvetsi spad Sdruzene gradienty Newtonova metoda BFGS Metoda nejvetsiho spadu # x y f 0 0.00 1.50 1.688 1 0.58 0.63 0.269 2 0.00 0.24 0.042 3 0.09 0.10 0.006 Metoda sdruzenych gradientu # x y f 0 0.00 1.50 1.688 1 0.58 0.63 0.269 2 0.00 0.00 0.000 Newtonova metoda # x y f 0 0.00 1.50 1.688 1 0.00 0.00 0.000 1.5 2.0 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 x BFGS # x y f 0 0.00 1.50 1.688 1 0.00 0.00 0.000 Porovnání metod 20/21
Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky v rámci projektu č. CZ.1.07/2.2.00/28.0206 Inovace výuky podpořená praxí. Tento studijní materiál je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.