Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Optimalizace bez omezení (unconstraint)
Nederivační (ad hoc) metody Jednoduché metody Nelder-Meadova (simplexová) metoda Derivační metody První derivace Metoda největšího spádu + další spádové metody Metoda konjugovaných gradientů Druhá derivace Newton-Raphsonova metoda Quasi-Newtonova metoda
2
Podmínky ukončení Testování gradientu:
Zdůvodnění: V minimu platí g = 0. Nevýhody: Nezohledňuje možnost špatného podmínění úlohy – například když je prohledávané „údolí“ v některých směrech daleko uzší než v jiných.
3
Podmínky ukončení II Testování posunutí bodu x:
Vhodné speciálně pokud očekáváme, že optimalizační algoritmus bude v blízkém okolí minima rychle konvergovat. Testování změny funkční hodnoty f(x): Také vhodné pro rychlou konvergenci v blízkém okolí minima.
4
Podmínky ukončení III Z praktických zkušeností vyplývá:
Pro newtonovské metody dobře funguje testování funkční hodnoty. Pro metody, které v blízkosti minima konvergují pomaleji (např. metoda sdružených gradientů) více vyhovuje testování gradientů.
5
Rychlost konvergence Rychlost konvergence iterativních metod můžeme srovnávat pomocí jistého jejího asymptotického vyjádření. Označme odchylku od řešení v k-té iteraci jako h(k), tj. Pokud h(k) ® 0, pak řekneme, že konvergence metody je p-tého řádu, když: , kde a > 0.
6
Rychlost konvergence II
Z praktického hlediska jsou důležité v podstatě jen případy p = 1 (lineární konvergence) a p = 2 (kvadratická konvergence), protože nejsou známy (a patrně ani neexistují) žádné obecně použitelné numerické metody s vyšším řádem konvergence. Podle definice pro každou lineárně konvergentní metodu existuje konstanta a > 0 tak, že neboli Obdobně pro metodu s kvadratickou konvergencí platí neboli
7
Rychlost konvergence III
Metody s lineární konvergencí jsou obvykle používány, jen když je konstanta a dostatečně malá, řekněme a < 1/4. Řada minimalizačních metod, které nejsou kvadraticky konvergentní, konverguje rychleji než jak to zaručuje lineární konvergence: Podíl po sobě jdoucích chyb jde pro k ® ¥ k nule, tj. neboli O takových metodách říkáme, že mají superlineární konvergenci.
8
Metoda největšího spádu -obecně
Anglicky označována steepest descent method. Princip: Vydat se směrem, ve kterém studovaná funkce nejrychleji klesá. Tedy ve směru Ñf(x), kde x je bod, ve kterém se výpočet právě nachází.
9
Metoda největšího spádu -obecně II
Algoritmus: zvolíme výchozí bod x(0) k-tá iterace: bod x(k+1) vypočítáme z bodu x(k) pomocí vztahu: x(k+1) = x(k) - a.g(k), kde: -g(k) zjednodušený zápis -Ñf(x(k)), určuje směr přesunu z bodu x(k) a koeficient, popisující délku daného přesunu
10
Metoda největšího spádu - volba a v metodě největšího spádu
Z bodu x(k) se přesunujeme po polopřímce: x(a) = x(k) + a.x(k), kde a > 0 Hodnotu funkce f na této polopřímce popisuje funkce f(a): f(a) = f(x(a)) Je zřejmé, že musíme zvolit takové aOK, aby platilo: f(x(k)) > f(x(k+1)), kde x(k+1) = x(aOK) pro dostatečný počet iterací. Poznámka: „Dostatečný počet“ = dostačuje k tomu, aby metoda konvergovala k minimu ( ).
11
Metoda největšího spádu - volba a v metodě největšího spádu
Funkce f(a) má následující tvar:
12
Metoda největšího spádu - volba a v metodě největšího spádu
Metoda největšího spádu volí pro každý krok stejnou hodnotu a. Konkrétně velmi malou hodnotu a. Poznámka: Hodnoty a musí být dostatečně, aby metoda konvergovala.
13
Metoda největšího spádu zhodnocení
Výhody: Implementačně jednoduché Nízká prostorová složitost Nevýhody: Velmi pomalá konvergence (speciálně v oblastech malého spádu => nízkých hodnot gradientu). Chyby, způsobené zaokrouhlením. Mohou vést i k tomu, že se výpočet vůbec nedostane rozumně blízko k minimu. Ale při (ideální) přesné aritmetice metoda konverguje vždy k nějakému lokálnímu minimu.
14
Metoda největšího spádu - příklad
Rosenbrockova funkce: Gradient Rosenbrockovy funkce: Výchozí bod: x0 = (-2, 2) Parametry: a = 0,001 Výpočet první iterace - dobrovolník u tabule :-). Další iterace - příklad v Excelu.
15
Metoda největšího spádu - příklad II
Ukázka konvergence metody největšího spádu pro Rosenbrockovu funkci:
16
Spádové metody - obecně
Jsou založeny na stejném principu jako metoda největšího spádu: x(k+1) = x(k) + a.s(k), kde: s(k) je směr přesunu z bodu x(k), nejčastěji jako směr volíme -g(k) a koeficient, popisující délku daného přesunu Využívají sofistikovanější metody k určení koeficientu a. Hodnota koeficientu a je různá pro každou iteraci.
17
Spádové metody - obecně II
Podmínka pro ideální hodnotu (a*) koeficientu a: funkce f(a) = f(x(a)) má v a* minimum [1] Poznámka: Jedná se o nejmenší hodnotu a, v níž má f(a) minimum. Navíc samozřejmě platí a > 0. Tuto podmínku nelze využít k volbě koeficientu a. Potřebujeme totiž určit hodnotu a pro danou iteraci v konečném a pokud možno velmi malém počtu kroků.
18
Spádové metody - obecně III
Předpokládejme, že funkce f má průběh naznačený na obrázku. Pak existuje a > 0 tak, že: f(x(k) + as(k)) = f(x(k+1)) Nejmenší takové a označujeme a´. => Nutné podmínky pro koeficient a: 0 < a < a´ [2]
19
Spádové metody - obecně IV
=> Při volbě koeficientu a musíme dodržet podmínky [2] a co nejvíce se přiblížit podmínce [1]. Metody pro nalezení a: Goldsteinovy podmínky Wolfe-Powellovy podmínky Značení: budeme značit f(a) budeme značit f(0)
20
Spádové metody - Goldsteinovy podmínky I
1. Goldsteinova podmínka zaručuje, že a nebude zvoleno příliš blízko a´: Parametr r je zde pevně zvolené číslo z intervalu (0, ½). I když a´ neexistuje {tj. f(a) < f(0) pro všechna a > 0}, je 1GP schopna omezit volbu a(k). (Pokud je tedy funkce f zdola omezená.)
21
Spádové metody - Goldsteinovy podmínky II
2. Goldsteinova podmínka zaručuje, že a nebude zvoleno příliš blízko 0: Pravé strany Goldsteinových podmínek určují dvě přímky se zápornou směrnicí. Hodnoty a1 a a2, které přísluší průsečíkům těchto přímek s f(a), určují interval vhodných hodnot a.
22
Spádové metody - Goldsteinovy podmínky III
23
Spádové metody - Goldsteinovy podmínky IV
Zdůvodnění Goldsteinových podmínek:
24
Spádové metody - Goldsteinovy podmínky V
Věta: Nechť funkce f je spojitě diferenciovatelná a nechť její gradient g = Ñf je lipschitzovsky spojitý na Rn. Je-li {x(k)} posloupnost generována spádovou metodou a volba a vyhovuje Goldsteinovým podmínkám, pak platí: f(x(k)) – f(x(k-1)) ³ - r.g(k).d(k) kde d(k) = a(k)s(k) = x(k+1) – x(k) => Metoda vždy konverguje k minimu funkce f (pro vhodné r). Poznámka: Volba koeficientu r < ½ zaručuje konvergenci metody pro kvadratické funkce.
25
Spádové metody - Goldsteinovy podmínky VI
Nevýhoda Goldsteinových podmínek: V intervalu mezi a1 a a2 se nemusí nacházet minimum funkce f(a).
26
Spádové metody - Wolfe-Powellovy podmínky
Místo GP2 se testuje sklon funkce f(a) v bodě a. Využívá se tedy následující podmínka: kde sÎ(r, 1).
27
Spádové metody - Wolfe-Powellovy podmínky II
28
Metody konjugovaných gradientů - obecně
= metody sdružených gradientů = conjugate gradient method = speciální případ metod sdružených směrů Základní myšlenka: Pro určení směru přesunu z bodu x(k) do bodu x(k+1) se využívají nejen hodnotu g(k+1), ale rovněž hodnotu g(k). (V obecném případě je možno využít hodnot g(1), g(2), ..., g(k), g(k+1).) Zdůvodnění: Spojení informací o současném a předchozím sklonu studované funkce umožňuje rychlejší sestup do minima (zlepšení konvergence na plochých oblastech).
29
Metody konjugovaných gradientů - algoritmus
Výpočet x(k+1): x(k+1) se určuje pomocí stejného vztahu jako u spádových metod: x(k+1) = x(k) + a(k).s(k) [2.1] kde: s(k) směr přesunu z bodu x(k) a(k) koeficient, popisující délku daného přesunu
30
Metody konjugovaných gradientů - algoritmus II
Výpočet a(k): Analogické jako u spádových metod: 1) Je nutno zvolit koeficient a(k) tak, aby platilo: 0 < a(k) < a(k)´ kde: f(x(k) + a(k)´.s(k)) = f(x(k+1)) 2) a(k) by se měla co nejvíce blížit a(k)*, kde a(k)* je minimum funkce f(x(k) + a(k).s(k)).
31
Metody konjugovaných gradientů - algoritmus III
Výpočet s(k+1): s(k+1) se vypočte pomocí gradientu g(k+1) a směru s(k). (Přičemž s(k) byl vypočítán pomocí předchozích hodnot gradientů ...). Konkrétně: s(k+1) = -g(k+1) + b(k).s(k) [2.2] Kde b(k) je koeficient, který určuje míru vlivu směru přesunu v kroku k (s(k)) na směr přesunu v následujícím kroku (s(k+1) ). Výpočet s(0): s(0) = -g(0)
32
Metody konjugovaných gradientů - algoritmus III
Výpočet b(k+1): Existuje více možností, jak volit číslo b(k+1). Nyní odvodíme hodnotu b(k+1) za předpokladu, že minimalizovaná funkce je kvadratická a má pozitivně definitní Hessovou matici G. V tomto případě platí: y(k) = G.d(k) [2.3] kde y(k) = g(k+1) – g(k) a d(k) = x(k+1) – x(k). Protože vektory s(k+1) a s(k) mají být sdružené vzhledem ke G, musí platit: s(k+1)T.G.d(k) = [2.4] Z [2.3] a [2.4] vyplývá: 0 = s(k+1)T.G.d(k) = s(k+1)T.y(k)
33
Metody konjugovaných gradientů - algoritmus IV
Po transponování rovnice [2.2] a násobení vektorem y(k) zprava dostáváme: 0 = -g(k+1)T.y(k) + b(k).s(k)T.y(k) [2.5] Odtud plyne hodnota, kterou navrhli Hestenes a Stiefel v roce 1952: [2.6]
34
Metody konjugovaných gradientů - algoritmus V
Pokud je x(k) v rovnici [2.1] přesně určeným minimem ve směru s(k), musí platit s(k)T.g(k+1) = 0 (jinak by se hodnota f ve směru s(k) dala ještě snížit), obdobně s(k-1)T.g(k) = 0. Pak je jmenovatel ve vztahu [2.6] roven: [2.7]
35
Metody konjugovaných gradientů - algoritmus VI
Po dosazení [2.7] do [2.6] získáme vyjádření b(k), které poprvé publikovali Polak a Ribiere v roce 1969: [2.8] Obdobně lze ukázat, že g(k+1)T.g(k) = 0, odtud plyne vztah pro b(k) podle Fletchera a Reevese (1963):
36
Metody konjugovaných gradientů - algoritmus VII
Pro kvadratické funkce je To ale neplatí pro obecnější funkce. Při testovacích úlohách dává obvykle nejlepší výsledky varianta Polaka a Ribiera.
37
Metody konjugovaných gradientů - zhodnocení
Výhody: Spolehlivější než spádové metody. Vhodná i v oblastech poblíž minima Nevýhody: Výpočetně náročnější. Větší prostorová složitost (nutnost ukládat několik n-prvkových vektorů).
38
Metody konjugovaných gradientů - porovnání
Vhodná i v oblastech poblíž Porovnání metody největšího spádu a metody konjugovaných gradientů (Rosenbrockova funkce):
39
Metody konjugovaných gradientů - porovnání II
Ukázka konvergence spádové metody pro Rosenbrockovu funkci:
40
Metody konjugovaných gradientů - porovnání III
Ukázka konvergence metody konjugovaných gradientů pro Rosenbrockovu funkci:
41
Metody konjugovaných gradientů - příklad
Poznámka: Příklad využívá metodu konjugovaných gradientů pro vyhledání minima funkce f: R2 -> R2 (nejedná se tedy o klasickou funkci Rn->R). Zadání: Najděte x* = (x1, x2), aby platilo: A.x* = b, přičemž:
42
Metody konjugovaných gradientů - příklad II
Postup: Speciálně pro rovnice typu A.x = b platí: g(k) = b – A.x(k) Obecně pro metodu konjugovaných gradientů platí: x(k+1) = x(k) + a(k).s(k) s(k+1) = -g(k+1) + b(k).s(k)
43
Metody konjugovaných gradientů - příklad III
Iniciace (k = 0): g(0) = b; s(0) = -g (0) První krok (k = 1): x(1) = x(0) + a(0).s(0) = (0.5, 0, 0.5) g(1) = b – A.x(1) = (0,1,0) s(1) = -g(1) + b(0).s(0) = (-0.5, -1, -0,5)
44
Metody konjugovaných gradientů - příklad IV
Druhý krok (k = 2): x(2) = x(1) + a(1).s(1) = (1, 1, 1) g(2) = b – A.x(2) = (0,0,0) s(2) = -g(2) + b(1).s(1) = (0, 0, 0)
45
Cvičení Proveďte první 3 kroky optimalizace funkce:
f(x1, x2) = x12 + 2x22 a) pomocí metody největšího spádu b) pomocí metody konjugovaných gradientů Poznámka: Využijte a = 0,25
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.