Algoritmy numerické optimalizace

Algoritmy numerické optimalizace Algoritmy numerické optimalizace

staff.utia.cas.cz
from staff.utia.cas.cz More from this publisher

<strong>Algoritmy</strong> numerické <strong>optimalizace</strong><br />

Michal Kočvara<br />

8. ledna 2004


Obsah<br />

1 Úvod 5<br />

1.1 Značení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.1.1 Funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.1.2 Konvexita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.1.3 Matice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.1.4 <strong>Algoritmy</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.2 Optimalizační úloha . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.3 Klasifikace optimalizačních úloh . . . . . . . . . . . . . . . . . . . . . 6<br />

1.3.1 Konvexní versus nekonvexní . . . . . . . . . . . . . . . . . . . 6<br />

1.3.2 Lokální versus globální . . . . . . . . . . . . . . . . . . . . . . 6<br />

1.3.3 Spojitá versus diskrétní . . . . . . . . . . . . . . . . . . . . . 7<br />

1.3.4 Hladká versus nehladká . . . . . . . . . . . . . . . . . . . . . 7<br />

1.3.5 Podmíněná versus nepodmíněná . . . . . . . . . . . . . . . . 7<br />

I Nepodmíněná <strong>optimalizace</strong> 9<br />

2 Podmínky optimality 13<br />

2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3 <strong>Algoritmy</strong> 15<br />

3.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.2 Typy konvergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

4 Metody typu line-search 17<br />

4.1 Hledání délky kroku . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.1.1 Testování délky kroku . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.1.2 Volba nového α . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

4.1.3 Konečná terminace Wolfeho algoritmu . . . . . . . . . . . . . 19<br />

4.2 Konvergence metod typu line-search . . . . . . . . . . . . . . . . . . 19<br />

4.3 Hledání směrů poklesu . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

4.4 Rychlost konvergence . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

4.4.1 Metoda největšího spádu . . . . . . . . . . . . . . . . . . . . 21<br />

4.4.2 Newtonova metoda . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

4.4.3 Quasi-Newtonova metoda . . . . . . . . . . . . . . . . . . . . 22<br />

4.5 Metoda BFGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

4.6 Invariance Newtonovy a quasi-Newtonovy metody, metrika . . . . . 27<br />

4.7 Praktické quasi-Newtonovy metody . . . . . . . . . . . . . . . . . . . 28<br />

4.8 L-BFGS a CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

4.9 Modifikované Newtonovy metody . . . . . . . . . . . . . . . . . . . . 31<br />

4.9.1 Volba E k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3


4 OBSAH<br />

5 Metody typu Trust-Region 33<br />

5.1 Základní algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

5.2 Jak řešit (TRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

5.2.1 Cauchyho bod . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

5.2.2 Metoda dogleg . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

5.3 Metoda Steihaugova . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

5.4 Přesné řešení (TRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

5.4.1 Lehký případ . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.4.2 Těžký případ (hard case) . . . . . . . . . . . . . . . . . . . . 40<br />

5.5 Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41


Kapitola 1<br />

Úvod<br />

1.1 Značení<br />

1.1.1 Funkce<br />

Necht’ f : R n → R. Její gradient v bodě x ∈ R n je vektor<br />

⎛ ⎞<br />

∂f(x)<br />

∂x 1<br />

∇f(x) =<br />

⎜<br />

. ⎟<br />

⎝<br />

∂f<br />

⎠<br />

∂x n<br />

a její Hessián symetrická n × n matice<br />

( ∂<br />

∇ 2 2 f(x)<br />

f(x) =<br />

.<br />

∂x i ∂x j<br />

)i,j=1,...,n<br />

Řekneme, že f je (spojitě) diferencovatelná jestliže pro všechna i existuje parciální<br />

derivace ∂f(x)/∂x i (a je spojitá).<br />

1.1.2 Konvexita<br />

Řekneme, že množina S ⊂ R n je konvexní, když ∀x,y ∈ S platí<br />

αx + (1 − α)y ∈ S ∀α ∈ [0,1].<br />

Funkce f : R n → R je konvexní když ∀x,y ∈ S platí<br />

f(αx + (1 − α)y) ≤ αf(x) + (1 − α)f(y) ∀α ∈ [0,1].<br />

Funkce f : R n → R je konkávní když −f je konvexní.<br />

1.1.3 Matice<br />

Zavedeme množiny<br />

M m<br />

S m<br />

S m +<br />

reálné matice m × m<br />

symetrické matice z M m<br />

symetrické pozitivně semidefinitní matice z M m<br />

Značení A 0 znamená, že matice A z S m je pozitivně semidefinitní. Podobně<br />

A ≻ 0 znamená, že A je pozitivně definitní.<br />

5


6 KAPITOLA 1. ÚVOD<br />

1.1.4 <strong>Algoritmy</strong><br />

V iteračních algoritmech pracujeme s posloupnostmi iteračních bodů x k ∈ R n ,<br />

k = 1,2,.... Hodnoty funkcí a jejich derivací v těchto bodech budeme často pro<br />

zjednodušení označovat<br />

f k = f(x k ), ∇f k = ∇f(x k ), ∇ 2 f k = ∇ 2 f(x k ) atd.<br />

1.2 Optimalizační úloha<br />

Necht’ X ⊂ R n a f : R n → R. Optimalizační úlohou nazveme problém<br />

najdi x ∗ ∈ X aby f(x) ≥ f(x ∗ ) ∀x ∈ X . (OÚ)<br />

1.3 Klasifikace optimalizačních úloh<br />

1.3.1 Konvexní versus nekonvexní<br />

Definice 1.3.1. (i) Řekneme, že x∗ je globální řešení OÚ, jestliže f(x) ≥ f(x∗ ) ∀x ∈<br />

X.<br />

(ii) x je lokální řešení OÚ, jestliže ∃O ǫ(x) : f(x) ≥ f(x) ∀x ∈ X ∩ O ǫ (x).<br />

Věta 1.3.1. Necht’ X ≠ ∅ je konvexní a f je (ryze) konvexní na X. Necht’ x ∈ X<br />

je lokální řešení OÚ. Potom x je (jednoznačné) globální řešení OÚ.<br />

Důkaz. Globálnost: Dle předpokladu ∃O ǫ (x) : f(x) ≥ f(x) ∀x ∈ X ∩ O ǫ (x).<br />

Předpokládejme, že x není globální řešení, tedy že ∃ˆx ∈ X : f(ˆx) < f(x). Potom<br />

(konvexita f)<br />

∀λ ∈ (0,1) : f(λˆx + (1 − λ)x) ≤ λf(ˆx) + (1 − λ)f(x) < λf(x) + (1 − λ)f(x) = f(x).<br />

Pro λ > 0 dostatečně malé je λˆx+(1−λ)x ∈ X ∩O ǫ (x). Dostali jsem spor s definicí<br />

lokálního řešení.<br />

Jednoznačnost je triviální.<br />

Pro některé algoritmy pro konvexní optimalizační úlohy lze ukázat: pro danou<br />

úlohu, dané ε a počáteční aproximaci x 0 můžeme odhadnout počet aritmetických<br />

operací nutných k nalezení x takového, že ‖x−x ∗ ‖ ≤ ε. Takový odhad nelze provést<br />

pro žádný algoritmus nekonvexní <strong>optimalizace</strong>.<br />

Chceme-li tedy řešit (nelineární) optimalizační úlohu, naše první otázka by měla<br />

být: Je naše OÚ konvexní<br />

1.3.2 Lokální versus globální<br />

Většina algoritmů pro nelineární OÚ nalezne nanejvýš lokální řešení úlohy. Algoritmů<br />

pro hledání globálního minima zatím není mnoho, nejsou příliš robustní,<br />

nejsou vhodné pro problémy vyšší dimenze a často jsou založeny na heuristických<br />

myšlenkách a nemohou zaručit nalezení globálního optima.<br />

V tomto textu se budeme zabývat výhradně algoritmy pro hledání lokálních<br />

řešení. Je však třeba říci, že mnoho praktických úloh vyžaduje nalezení globálního<br />

minima a je velmi žádoucí vyvinout dobré globální algoritmy.


1.3. KLASIFIKACE OPTIMALIZAČNÍCH ÚLOH 7<br />

1.3.3 Spojitá versus diskrétní<br />

V mnoha praktických úlohách je X ⊂ Z n nebo X ⊂ Z n1 × R n2 . Takové úlohy<br />

nazýváme úlohami diskrétní nebo celočíselné <strong>optimalizace</strong>. Tyto úlohy jsou v zásadě<br />

nekonvexní a vyžadujeme nalezení globálního řešení.<br />

V tomto textu se budeme zabývat pouze algoritmy pro úlohy spojité <strong>optimalizace</strong>.<br />

1.3.4 Hladká versus nehladká<br />

Občas se setkáme s problémem minimalizace funkce, pro niž v některých bodech<br />

neexistuje gradient, tzv. nehladké (nediferencovatelné) funkce. To jsou například<br />

obecné konvexní funkce. Pro takové funkce byly vyvinuty speciální optimalizační<br />

algoritmy, pracující s tzv. subgradientem. Zde se budeme zabývat výhradně ”<br />

hladkou”<br />

optimalizací<br />

1.3.5 Podmíněná versus nepodmíněná<br />

Konečně, je-li X = R n , mluvíme o nepodmíněné optimalizaci. O ní pojednává první<br />

část tohoto textu. Druhá část se zabývá podmíněnou optimalizací, tedy případem,<br />

kdy X je podmnožinou R n (a X ≠ R n ).


8 KAPITOLA 1. ÚVOD


Část I<br />

Nepodmíněná <strong>optimalizace</strong><br />

9


11<br />

V této části se budeme zabývat úlohou<br />

Najdi x ∗ ∈ X aby f(x) ≥ f(x ∗ ) ∀x ∈ X (NO)<br />

kde f : R n → R je dle potřeby jednou či dvakrát spojitě diferencovatelná a X = R n .


Kapitola 2<br />

Podmínky optimality<br />

2.1<br />

Věta 2.1.1 (nutná podmínka 1. řádu). Necht’ x ∗ je lokální řešení NO a f<br />

spojitě diferencovatelná na otevřeném okolí x ∗ . Potom ∇f(x ∗ ) = 0.<br />

Důkaz. Předpokládejme, že ∇f(x ∗ ) ≠ 0. Označme p = −∇f(x ∗ ); pak<br />

p T ∇f(x ∗ ) = −‖∇f(x ∗ )‖ < 0.<br />

Protože ∇f je spojitá, existuje T > 0 takové, že<br />

Dle Taylorovy věty<br />

tedy<br />

p T ∇f(x ∗ + tp) < 0<br />

t ∈ [0,T].<br />

∀t ∈ (0,T] ∃t ∈ (0,t) : f(x ∗ + tp) = f(x ∗ ) + tp T ∇f(x ∗ + tp)<br />

f(x ∗ + tp) < f(x ∗ )<br />

∀t ∈ (0,T]<br />

takže f je klesající ve směru p a x ∗ není lokální řešení—spor s předokladem věty.<br />

Věta 2.1.2 (nutná podmínka 2. řádu). Necht’ x ∗ je lokální řešení NO a ∇ 2 f<br />

spojitá na otevřeném okolí x ∗ . Potom ∇f(x ∗ ) = 0 a ∇ 2 f(x ∗ ) 0.<br />

Důkaz. : Předpokládejme, že ∇ 2 f(x ∗ ) ̸ 0. Pak existuje p tak, že p T ∇ 2 f(x ∗ )p <<br />

0. Ze spojitosti<br />

∃T > 0 ∀t ∈ [0,T] : p T ∇ 2 f(x ∗ + tp)p < 0.<br />

Podle Taylorovy věty<br />

∀t ∈ (0,T] ∃t ∈ (0,t) : f(x ∗ +tp) = f(x ∗ )+tp T ∇f(x ∗ )+ 1 2 t2 p∇ 2 f(x ∗ +tp)p < f(x ∗ )<br />

což je spor.<br />

Věta 2.1.3 (postačující podmínka 2. řádu). Necht’ ∇ 2 f spojitá na otevřeném<br />

okolí x ∗ , ∇f(x ∗ ) = 0 a ∇ 2 f(x ∗ ) ≻ 0. Potom x ∗ je striktní lokální minimum f.<br />

Důkaz. Ze spojitosti: ∃r > 0 : ∇ 2 f(x) ≻ 0 na kouli B = {z | ‖z − x ∗ ‖ < r}. Necht’<br />

p ∈ R n , p ≠ 0 a ‖p‖ < r. Pak x ∗ + p ∈ B, tedy<br />

f(x ∗ + p) = f(x ∗ ) + p T ∇f(x ∗ ) + 1 2 pT ∇ 2 f(z)p<br />

= f(x ∗ ) + 1 2 pT ∇ 2 f(z)p.<br />

kde z = x ∗ + tp, t ∈ (0,1). Protože z ∈ B, pak p T ∇ 2 f(z)p > 0 a tedy f(x ∗ + p) ><br />

f(x ∗ ).<br />

13


14 KAPITOLA 2. PODMÍNKY OPTIMALITY


Kapitola 3<br />

<strong>Algoritmy</strong><br />

3.1 Úvod<br />

Téměř všechny algoritmy nepodmíněné <strong>optimalizace</strong> 1 jsou algoritmy iterační. Je-li<br />

dána počáteční iterace x 0 , generují posloupnost bodů<br />

x 0 ,x 1 ,x 2 ,...<br />

Algoritmus nazveme monotonním, jestliže<br />

Všechny algoritmy pak splňují<br />

pro dostatečně velké k a nějaké m > 0.<br />

3.2 Typy konvergence<br />

f(x k ) < f(x k−1 ) ∀k = 1,2,...<br />

f(x k ) < f(x k−m )<br />

Definice 3.2.1. (i) Optimalizační algoritmus (OA) konverguje globálně, když<br />

posloupnost iterací {x} k konverguje k lokálnímu řešení NO pro každé x 0 .<br />

Definice 3.2.2. Necht’ x k → x ∗ a označme q k = ‖x k+1 − x ∗ ‖<br />

‖x k − x ∗ ‖ .<br />

(i) OA konverguje lineárně, když limsup q k < 1.<br />

(ii) OA konverguje superlineárně, když lim q k = 0.<br />

(iii) OA konverguje kvadraticky, když ‖x k+1 − x ∗ ‖ = O(‖x k − x ∗ ‖ 2 ).<br />

Konverguje-li OA kvadraticky, znamená to, že počet přesných cifer se v každé<br />

iteraci zhruba zdvojnásobí.<br />

1 S výjimkou některých algoritmů pro minimalizaci kvadratických funkcí<br />

15


16 KAPITOLA 3. ALGORITMY


Kapitola 4<br />

Metody typu line-search<br />

Metody typu line-search (metody spádových směrů) jsou definovány následujícím<br />

schematickým algoritmem<br />

Algoritmus 4.0.1 (Algoritmus typu line-search—koncept). Je dáno x 0 . Pro<br />

k = 0,1,2,...<br />

(i) najdi směr (poklesu) d k<br />

(ii) najdi α k tak, aby x k + α k d k bylo ”<br />

lepší” než x k<br />

(iii) x k+1 = x k + α k d k<br />

Metodám hledání směru v kroku (i) se budeme věnovat později. Nejprve se<br />

blíže podíváme na krok (ii)—hledání přibližného minima jednodimenzionální funkce<br />

f(x + αd) (vzhledem k α).<br />

4.1 Hledání délky kroku<br />

Chceme najít hodnotu parametru α tak, aby f(x + αd) bylo ”<br />

dostatečně lepší” než<br />

f(x). Pro pevné x a d zavedeme funkci<br />

q(α) = f(x + αd). (4.1)<br />

V následujícím budeme předpokládat, že d je směr poklesu pro funkci f, tedy že<br />

q ′ (0) < 0.<br />

Poznámka. Funkce q(·) není dána explicitním předpisem. Pro dané α musíme<br />

vždy vypočítat hodnotu q(α) a q ′ (α) pomocí definice (4.1). Tento výpočet (zvláště<br />

výpočet derivace) může být drahý, proto se snažíme nalézt hodnotu α k+1 v kroku<br />

(ii) Algoritmu 4.0.1 v co nejmenším počtu kroků, také z toho důvodu, že krok (ii)<br />

se může opakovat mnohokrát.<br />

Na druhou stranu, obvykle není třeba hledat přesné (globální) minimum q; naším<br />

hlavním cílem je minimalizovat f.<br />

4.1.1 Testování délky kroku<br />

Abychom definovali algoritmus hledání délky kroku, potřebujeme kritérium pro<br />

ověření kvality současného α. Definujme nejprve abstraktní podmínky (a), (b), (c).<br />

17


18 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

Test pro α > 0:<br />

(a) α vyhovuje<br />

(b) α je příliš velké<br />

(c) α je příliš malé<br />

α<br />

q(0)<br />

Označme<br />

q(α)<br />

α L ...příliš malé α, ležící ”<br />

nalevo” od vyhovujícího<br />

α R ...příliš malé α, ležící ”<br />

napravo” od vyhovujícího<br />

Nyní můžeme definovat koncepční algoritmus pro hledání délky kroku<br />

Algoritmus 4.1.1 (Koncepční algoritmus pro hledání délky kroku). .<br />

(i) Zvol α > 0, α L , α R (např. α L = α R = 0)<br />

(ii) Proved’ test α. V případě<br />

(a) skonči<br />

(b) polož α R = α a jdi na (iii)<br />

(c) polož α L = α a jdi na (iii)<br />

(iii) Je-li α R = 0, zvol α > α L . Jinak zvol α ∈ (α L ,α R ) a jdi na (ii).<br />

Klíčová otázka dobrého algoritmu je vhodná volba testu pro vyhovující α. První<br />

nápad je definovat test na základě podmínek optimality prvního řádu:<br />

(a) q ′ (α) = 0<br />

(b) q ′ (α) > 0<br />

(c) q ′ (α) < 0<br />

Tento test však nemusí vést na fungující algoritmus, protože funkce q je obecně<br />

nekonvexní. Co ve výše uvedeném testu chybí je kontrola poklesu q(α). Např.<br />

všechny tři body označené v obrázku vyhovují tomuto testu, přestože prostřední<br />

a pravý bod zjevně nevyhovují naší představě.<br />

V současné době nejpoužívanější test je tzv.<br />

Wolfeho test:<br />

Zvol 0 < m 1 < m 2 < 1<br />

(a) q(α) ≤ q(0) + m 1 αq ′ (0) a q ′ (α) ≥ m 2 q ′ (0) (skonči)<br />

(b) q(α) > q(0) + m 1 αq ′ (0) (α R = α)<br />

(c) q(α) ≤ q(0) + m 1 αq ′ (0) a q ′ (α) < m 2 q ′ (0) (α L = α)<br />

Tento test zaručí jak dostatečný pokles q(α), tak dostatečný nárůst q ′ (α) vzhledem<br />

k α = 0.


4.2. KONVERGENCE METOD TYPU LINE-SEARCH 19<br />

(a)<br />

(a)<br />

q(0)<br />

4.1.2 Volba nového α<br />

m q’(0)<br />

2<br />

Nové α v kroku (iii) Algoritmu 4.1.1 se nejčastěji volí podle následujícího předpisu:<br />

Extrapolace (α R není známo): Zvol α NEW ≫ α, např. α NEW = cα, c > 1 (c je<br />

pevné, např. c = 2).<br />

Interpolace (α R je známo): Zvol α L < α NEW < α R , např. α NEW = 1 2 (α L + α R ).<br />

4.1.3 Konečná terminace Wolfeho algoritmu<br />

Wolfeho algoritmem nazveme algoritmus 4.1.1 s Wolfeho testem.<br />

Věta 4.1.1. Necht’ q ∈ C 1 , zdola omezená. Potom Wolfeho algoritmus skončí v<br />

konečném počtu kroků.<br />

Důkaz. Rozlišíme případ extrapolace (nikdy nenastane případ (b) v kroku (ii)) a<br />

interpolace (případ (b) nastane alespoň jednou).<br />

Extrapolace. Předpokládejme sporem, že k → ∞ (k značí krok algoritmu). Pak<br />

α → ∞ a q(α) ≤ q(0) + m 1 αq ′ (0), tedy q(α) → −∞, což je spor s předpokladem<br />

omezenosti q.<br />

Interpolace. Předpokládejme opět, že k → ∞. Potom ∃α ∗ : α L → α ∗ , α R → α ∗ .<br />

Z podmínek (b) a (c) pak plyne q(α ∗ ) = q(0) + m 1 α ∗ q ′ (0). Protože α R > α ∗ ∀α R ,<br />

platí dále (podmínka (b))<br />

q(α R ) > q(0) + m 1 q ′ (0)(α ∗ + α R − α ∗ ) = q(α ∗ ) + m 1 q ′ (0)(α R − α ∗ ).<br />

Dělíme-li tento vztah (α R − α ∗ ), dostaneme<br />

v limitě pak<br />

q(α R ) − q(α ∗ )<br />

α R − α ∗ > m 1 q ′ (0),<br />

q ′ (α ∗ ) ≥ m 1 q ′ (0) > m 2 q ′ (0).<br />

Naopak z podmínky (c) dostaneme v limitě<br />

a to je spor.<br />

q ′ (α ∗ ) ≤ m 2 q ′ (0)<br />

4.2 Konvergence metod typu line-search<br />

Chování algoritmu 4.0.1 je dáno volbou směru d k a délkou kroku α k . Volbou d k se<br />

budeme detailně zabývat v příští kapitole, zde nejprve odvodíme nutnou podmínku<br />

pro d k , která zaručuje konvergenci algoritmu 4.0.1.


20 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

Označme<br />

cos θ k =<br />

−dT k ∇f k<br />

‖∇f k ‖ ‖d k ‖ .<br />

θ k je tedy úhel mezi směrem záporného gradientu f (tj. směrem největšího poklesu)<br />

a směrem d k . Abychom dostali konvergentní algoritmus, musí být cosθ k<br />

” dostatečně<br />

kladný” jak to specifikuje následující lemma.<br />

Lemma 4.2.1. Uvažujme algoritmus 4.0.1 s konkrétní volbou d k a α k . Necht’ pro<br />

všechna k platí<br />

r cos 2 θ k (∇f k ) 2 ≤ f(x k ) − f(x k+1 ) (4.2)<br />

kde r > 0 nezávisí na k. Jestliže<br />

potom<br />

(i) bud’ f(x k ) → −∞<br />

(ii) nebo liminf ‖∇f k ‖ = 0.<br />

řada<br />

∞∑<br />

cos 2 Θ k diverguje, (4.3)<br />

k=1<br />

Důkaz. Je-li posloupnost {f(x k )} zdola omezená hodnotou f ∗ , pak<br />

∞∑<br />

cos 2 Θ k ‖∇f k ‖ 2 ≤ 1 r<br />

k=1<br />

∞∑<br />

(f(x k ) − f(x k+1 )) ≤ 1 r (f(x 1) − f ∗ ) < +∞.<br />

k=1<br />

Kdyby ‖∇f k ‖ ≥ δ > 0, pak by nutně platilo δ 2 ∑ ∞ cos 2 Θ k < ∞ a to je spor s<br />

předpokladem.<br />

Věta 4.2.2 (Zoutendijk). Necht’ algoritmus 4.0.1 splňuje Wolfeho test. Je-li ∇f<br />

Lipschitzovsky spojitý na okolí O = {x | f(x) ≤ f(x 0 )}, pak platí (4.3).<br />

Důkaz. Z Wolfeho podmínky především plyne, že x k ∈ O. Dle definice q(α) a θ<br />

platí pro všechna k<br />

α k q ′ (0) = α k d T k ∇f k = −α k cos θ k ‖∇f k ‖ ‖d k ‖ = −cos θ k ‖x k+1 − x k ‖ ‖∇f k ‖.<br />

Z Wolfeho podmínky (a) 1 tedy plyne (připomeňme, že q(0) = f(x k ), q(α) =<br />

f(x k+1 ))<br />

m 1 cos θ k ‖∇f k ‖ ‖x k+1 − x k ‖ ≤ f(x k ) − f(x k+1 ). (4.4)<br />

Z podmínky (a) 2 pak plyne (odečteme-li d T k ∇f k na obou stranách nerovnosti)<br />

d T k (∇f k+1 − ∇f k ) ≥ (m 2 − 1)d T k ∇f k = (1 − m 2 )cos θ k ‖∇f k ‖ ‖d k ‖.<br />

Necht’ L je Lipschitzovská konstanta pro ∇f; z Cauchy-Schwarzovy nerovnosti plyne<br />

Dělíme-li obě nerovnosti ‖d k ‖, máme<br />

k=1<br />

d T k (∇f k+1 − ∇f k ) ≤ L‖x k+1 − x k ‖ ‖d k ‖.<br />

(1 − m 2 )cos θ k ‖∇f k ‖ ≤ L‖x k+1 − x k ‖.<br />

Vynásobíme-li obě strany ‖∇f k ‖ a použijeme-li (4.4), dostáváme (4.3) s r = m 1 (1−<br />

m 2 )/L.


4.3. HLEDÁNÍ SMĚRŮ POKLESU 21<br />

4.3 Hledání směrů poklesu<br />

Připomeňme, že v metodách typu line-search počítáme novou iteraci formulí x k+1 =<br />

x k + α k d k . Směr d k je směrem poklesu, pokud je směrová derivace f v bodě x k a<br />

ve směru d k záporná, tedy pokud d T k ∇f k < 0.<br />

Při hledání d k budeme uvažovat metody založené na vzorci<br />

kde B k ∈ S n je regulární. Protože<br />

platí, že<br />

d k = B −1<br />

k ∇f k<br />

d T k ∇f k = −∇f T k B −1<br />

k ∇f k ,<br />

d k je směrem poklesu, právě když B k je positivně definitní.<br />

Různou volbou B k dostaneme různé metody typu line-search. Dvěma ”<br />

extrémními”<br />

volbami dostaneme dvě známé metody:<br />

B k = I<br />

B k = ∇ 2 f k<br />

. . . metoda největšího spádu<br />

. . . Newtonova metoda<br />

Pokud je B k aproximací ∇ 2 f k , hovoříme o quasi-Newtonově metodě (metodě s<br />

proměnnou metrikou). V metodách tohoto typu je nová aproximace B k počítána z<br />

B k−1 aktualizací<br />

B k = B k−1 + W k−1<br />

. . . quasi-Newtonova metoda<br />

Věta 4.3.1 (globální konvergence quasi-Newtonovy metody). Necht’ B k ≻<br />

0, ‖B k ‖ ‖B −1<br />

k<br />

‖ ≤ M ∀k a algoritmus typu line-search splňuje Wolfeho podmínku.<br />

Pak je tento algoritmus globálně konvergentní.<br />

Důkaz. Z předpokladů na B k plyne, že cos θ k ≥ 1/M (použitím ‖B k x‖ ≥<br />

Aplikací Lemma 4.2.1 (Zoutendijk) dostaneme liminf ‖∇f k ‖ = 0.<br />

‖x‖<br />

‖B −1<br />

k<br />

‖).<br />

4.4 Rychlost konvergence<br />

Zopakujme nejprve pro úplnost známé věty pro dvě ”<br />

krajní metody”, metodu<br />

největšího spádu a metodu Newtonovu.<br />

4.4.1 Metoda největšího spádu<br />

Věta 4.4.1. Necht’ f je dvakrát spojitě diferencovatelná. Necht’ {x k } je generovaná<br />

metodou největšího spádu (tedy B k = I) s přesným hledáním délky kroku. Předpokládejme,<br />

že x k → x ∗ a ∇ 2 f(x ∗ ) ≻ 0. Potom<br />

f(x k+1 ) − f(x ∗ ) ≤<br />

kde λ 1 ≤ ... ≤ λ n jsou vlastní čísla ∇ 2 f(x ∗ ).<br />

Důkaz. Důkaz lze nalézt v základní literatuře.<br />

(<br />

λn − λ 1<br />

λ n + λ 1<br />

) 2<br />

(f(x k ) − f(x ∗ )),<br />

Jak je vidět, rychlost konvergence metody je pouze lineární a závislá na podmíněnosti<br />

Hessiánu. Například pro cond (∇ 2 f(x ∗ )) ≈ 800 (což je relativně velmi dobře podmíněný<br />

problém) a f(x 1 ) = 1, f(x ∗ ) = 0, je koeficient lineární konvergence q k ≈<br />

0.9975. To znamená, že f(x 1000 ) ≈ 0.08, což je velmi pomalá konvergence.


22 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

4.4.2 Newtonova metoda<br />

Věta 4.4.2. Necht’ ∇ 2 f je spojitý a invertibilní v okolí řešení x ∗ . Potom Newtonova<br />

metoda konverguje superlineárně. Je-li navíc f ∈ C 3 , konvergence je kvadratická.<br />

Důkaz. Označme r zbytek v Taylorově rozvoji 2. řádu:<br />

(0 =)∇f(x ∗ ) = ∇f(x) + ∇ 2 f(x)(x ∗ − x) + r(X ∗ − x).<br />

Označme dále x + = x + d, kde d je Newtonův směr, tedy<br />

Odečtením obou rovnic dostáváme<br />

0 = ∇f(x) + ∇ 2 f(x)(x + − x).<br />

0 = ∇ 2 f(x)(x ∗ − x + ) + r(x ∗ − x)<br />

Z předpokladů spojitosti a invertibility pak plyne<br />

‖x ∗ − x + ‖ ≤ M‖r(x ∗ − x)‖,<br />

kde ‖(∇ 2 f) −1 ‖ ≤ M<br />

Z definice a spojitosti dostáváme r(x ∗ − x) = o(‖x ∗ − x‖) (superlineární konvergence).<br />

Pro f ∈ C 3 pak analogickým postupem dostaneme r(x ∗ −x) = O(‖x ∗ −x‖ 2 ),<br />

tedy kvadratickou konvergenci.<br />

4.4.3 Quasi-Newtonova metoda<br />

Předpokládejme nyní, že B k ≻ 0 ∀k, a že délka kroku α splňuje Wolfeho podmínky.<br />

Předpokládejme navíc, že při určování délky kroku vždy nejprve zkusíme krok α k =<br />

1, vyhovuje-li Wolfeho testu.<br />

Uvedeme nejprve bez důkazu obecnou větu o rychlosti konvergence. Poté dokážeme<br />

speciální případ této věty.<br />

Věta 4.4.3 (Dennis-Moré). Necht’ f je třikrát spojitě diferencovatelná. Necht’<br />

dále x k+1 = x k + α k d k , d k je směr poklesu a α k splňuje Wolfeho podmínku s m 1 ≤<br />

1/2. Jestliže x k → x ∗ , ∇f(x ∗ ) = 0 a ∇ 2 f(x ∗ ) ≻ 0, a jestliže navíc d k splňuje<br />

potom<br />

‖∇f k + ∇ 2 f k d k ‖<br />

lim<br />

= 0, (4.5)<br />

k→∞ ‖d k ‖<br />

(i) ∃k 0 : α k = 1 splňuje Wolfeho podmínku pro k ≥ k 0<br />

(ii) když α k = 1 pro k ≥ k 0 , {x k } konverguje superlineárně.<br />

Pro d k = −B −1<br />

k ∇f k je podmínka (4.5) ekvivalentní tzv. Dennis-Morého podmínce<br />

‖(B k − ∇ 2 f(x ∗ ))d k ‖<br />

lim<br />

= 0. (4.6)<br />

k→∞ ‖d k ‖<br />

K důkazu superlineární konvergence tedy stačí ukázat, že B k konverguje k Hessiánu<br />

∇ 2 f(x ∗ ) pouze po směrech d k (nikoli všude).<br />

Následující lemma uvádí alternativní podmínku superlineární konvergence.<br />

Lemma 4.4.4 (kritérium superlineární konvergence). Necht’ g : R n → R n ,<br />

x k → x ∗ a g(x ∗ ) = 0. Necht’ ∇g je spojitý na okolí x ∗ a ∇g(x ∗ ) je invertibilní.<br />

Potom<br />

q k := ‖x k+1 − x ∗ ‖<br />

‖x k − x ∗ ‖ → 0 ⇐⇒ ‖g(x k+1)‖<br />

‖x k+1 − x k ‖ → 0.


4.4. RYCHLOST KONVERGENCE 23<br />

Důkaz. Pro obecné k označme x := x k , x + := x k+1 . Označme G střední hodnotu<br />

∇g mezi x + a x ∗ :<br />

g(x + ) = 0 + G(x + − x ∗ ).<br />

Ze spojitosti ∇g plyne, že G je omezená a ”<br />

stejnoměrně” invertibilní ve smyslu<br />

∃l,L > 0<br />

l‖g + ‖ ≤ ‖x + − x ∗ ‖ ≤ L‖g + ‖<br />

pro x + blízko x ∗ (L = ‖G −1 ‖ a l = ‖G‖ −1 ). Dělíme pravou stranu ‖x + − x‖ a<br />

použijeme trojúhelníkovou nerovnost:<br />

L‖g + ‖<br />

‖x + − x‖ ≥ ‖x + − x ∗ ‖<br />

‖x + − x‖ ≥<br />

‖x + − x ∗ ‖<br />

‖x + − x ∗ ‖ + ‖x − x ∗ ‖ =<br />

‖g + ‖<br />

Jestliže → 0, pak q → 0 a dostáváme ⇐ .<br />

‖x + − x‖<br />

K důkazu ⇒ použijeme identitu<br />

‖g + ‖<br />

‖x + − x‖ =<br />

‖g + ‖ ‖x + − x ∗ ‖<br />

‖x + − x ∗ ‖ ‖x − x ∗ ‖<br />

‖x − x ∗ ‖<br />

‖x + − x‖ .<br />

q<br />

1 + q .<br />

První zlomek na pravé straně je menší než 1/l, druhý je roven q (jdoucímu k nule).<br />

Stačí ukázat omezenost třetího:<br />

‖x − x ∗ ‖<br />

‖x + − x‖ ≥ ‖x − x∗ ‖ − ‖x ∗ − x + ‖<br />

‖x − x ∗ = 1 − q<br />

‖<br />

kde 1 − q je zdola omezeno pro q → 0 (například jednou polovinou).<br />

Věta 4.4.5 (Dennis-Moré pro quasi-Newtonovu metodu). Necht’ je třikrát<br />

spojitě diferencovatelná. Necht’ dále x k+1 = x k + d k (tedy α k = 1 ∀k) a d k =<br />

−B −1<br />

k ∇f k. Konečně necht’ x k → x ∗ , ∇f(x ∗ ) = 0 a ∇ 2 f(x ∗ ) ≻ 0. Potom {x k }<br />

konverguje superlineárně, právě když platí podmínka (4.6).<br />

Důkaz. Přepíšeme nejprve podmínku (4.6) jako<br />

v k := (B k − ∇ 2 f(x ∗ )) x k+1 − x k<br />

‖x k+1 − x k ‖ → 0<br />

Použijeme opět zkrácené značení x := x k , x + := x k+1 . Z definice (d k = −B −1<br />

k ∇f k)<br />

platí<br />

(B k − ∇ 2 f(x ∗ ))(x + − x) = −∇f(x) − ∇ 2 f(x ∗ )(x + − x)<br />

Označme G střední hodnotu ∇ 2 f mezi x a x + :<br />

Potom<br />

= ∇f(x + ) − ∇f(x) − ∇ 2 f(x ∗ )(x + − x) − ∇f(x + ).<br />

∇f(x + ) − ∇f(x) = G(x + − x)<br />

(B k − ∇ 2 f(x ∗ ))(x + − x) = (G − ∇ 2 f(x ∗ ))(x + − x) − ∇f(x + ). (4.7)<br />

Dělením ‖x + − x‖ a znormováním dostaneme<br />

‖v‖ ≤ ‖G − ∇ 2 f(x ∗ )‖ + ‖∇f(x +)‖<br />

‖x + − x‖<br />

a (převede levou stranu v (4.7) doprava a ∇f(x + ) doleva)<br />

‖∇f(x + )‖<br />

‖x + − x‖ ≤ ‖G − ∇2 f(x ∗ )‖ + ‖v‖<br />

Protože ∇f(x + ) → 0 a ‖G − ∇ 2 f(x ∗ )‖ → 0 (ze spojitosti), dostáváme tvrzení<br />

věty.


24 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

4.5 Metoda BFGS<br />

Připomeňme, že v quasi-Newtonově metodě počítáme nový směr jako d k = −B −1<br />

k ∇f k,<br />

kde B k je aproximací ∇ 2 f k . Aby metoda byla výpočetně levná a přitom efektivní,<br />

klademe na B k následující požadavky<br />

(i) B k je počítána rekurzivně podle vzorce B k+1 = B k +M k , kde M k je ”<br />

jednoduchá”<br />

(má hodnost 1–2)<br />

(ii) B k ≻ 0, symetrická pro všechna k<br />

(iii) B k splňuje tzv. quasi-Newtonovskou rovnici (qN rovnici, sečnou rovnici)<br />

kde s k = x k+1 − x k a y k = ∇f k+1 − ∇f k .<br />

B k+1 s k = y k (4.8)<br />

(iv) B k+1 je ”<br />

nejbližší” matice k B k splňující (ii)-(iii) v tom smyslu, že řeší úlohu<br />

min<br />

B ‖B − B k‖ s.t. B = B T , Bs k = y k . (4.9)<br />

Poznámka. qN rovnice je motivována následující úvahou. Označme<br />

m k+1 (d) = f k+1 + ∇f T k+1d + 1 2 dT B k+1 d<br />

kvadratický model f v x k+1 . Rozumný požadavek na m k+1 je, aby její gradient v<br />

současném bodě x k+1 a v předcházejícím bodě x k byl roven gradientu f v těchto<br />

bodech. V bodě x k+1 je ∇m k+1 (0) = ∇f k+1 a náš požadavek je splněn automaticky.<br />

V bodě x k pak chceme, aby<br />

∇m k+1 (−α k d k ) = ∇f k+1 − α k B k+1 d k = ∇f k .<br />

Z druhé rovnice dostáváme okamžitě qN rovnici.<br />

Různé varianty quasi-Newtonovy metody nyní dostaneme různou volbou normy<br />

v (4.9). Davidon (1959) navrhl použít normu<br />

‖A‖ W = ‖W 1 2 AW<br />

1<br />

2 ‖F (zde ‖M‖ F =<br />

√ ∑m<br />

2<br />

ij je Fredholmova norma)<br />

−1<br />

kde W splňuje Wy k = s k . Konkrétně navrhl požít W = ˜G<br />

k , kde ˜G k je průměrný ”<br />

Hessián”<br />

∫ 1<br />

˜G k = ∇ 2 f(x k + τα k d k )dτ . (4.10)<br />

0<br />

Pro tuto volbu normy lze explicitně vyřešit úlohu (4.9). Jejím řešením je matice<br />

B k+1 = (I − y ks T k<br />

yk Ts )B k (I − s kyk<br />

T<br />

k yk Ts ) + y kyk<br />

T<br />

k yk Ts k<br />

((DFP) B )<br />

Tato metoda byla na počátku 60. let rozpracována a popularizována Fletcherem a<br />

Powellem, odtud její název DFP.<br />

Z Sherman-Morrison-Woodburyho formule (viz dodatek) dostaneme vzorec pro<br />

aktualizace inverse B k , označme ji W k := B −1<br />

k :<br />

W k+1 = W k + s ks T k<br />

yk Ts − W ky k yk TW k<br />

k yk TW . ((DFP) W )<br />

ky k<br />

Z praktického hlediska je výhodné mít aktualizační formuli nikoli pro B k ale<br />

pro její inverzi W k . K tomu můžeme použít výše odvozený vzorec. Můžeme ovšem


4.5. METODA BFGS 25<br />

aplikovat Davidonův postup přímo na aproximaci (∇ 2 f) −1 , kde ve (iv) nahradíme<br />

optimalizační úlohu v B úlohou<br />

min<br />

W ‖W − W k‖ s.t. W = W T , Wy k = s k .<br />

Jejím řešením dostaneme následující aktualizační formuli:<br />

W k+1 = (I − s kyk<br />

T<br />

yk Ts )W k (I − y ks T k<br />

k yk Ts ) + s ks T k<br />

k yk Ts k<br />

((BFGS) W )<br />

Tato formule (a z ní odvozená metoda) dostala název po svých (nezávislých) objevitelích<br />

Broyden-Fletcher-Goldfarb-Shanno, tedy BFGS.<br />

Podobně jako u DFP, můžeme použít Sherman-Morrison-Woodburyho formuli<br />

k odvození BFGS vzorce pro B k :<br />

B k+1 = B k + y kyk<br />

T<br />

yk Ts − B ks k s T k B k<br />

k s T k B . ((DFP) B )<br />

ks k<br />

Protože matice je symetrická pozitivně definitní právě když totéž platí pro její inverzi,<br />

pozitivní definitnost (DFP) a (BFGS) jsou ekvivalentní vlastnosti. Následující<br />

věta ukazuje, že (DFP) (a tedy i (BFGS)) zachovává pozitivní definitnost za předpokladu,<br />

že součin y T s je kladný.<br />

Věta 4.5.1. Necht’ B k ≻ 0. Potom y T s > 0 právě když B k+1 z (DFP) B je pozitivně<br />

definitní.<br />

Důkaz. B k+1 je zjevně symetrická pokud je symetrická B k .<br />

⇐ Tuto implikaci dostaneme z qN rovnosti B k+1 s = y přenásobením zleva s T .<br />

⇒ Necht’ u ≠ 0 a položme v = u − yT u<br />

y T s. Pak<br />

s<br />

u T B k+1 u = v T B k v + (uT y) 2<br />

což je součet dvou nezáporných členů. Je-li první z nich nenulový, jsme hotovi. V<br />

opačném případě je v = 0 (B k je pozitivně definitní) a proto u = yT u<br />

y T s je paralelní<br />

s<br />

k s. Navíc je y T u ≠ 0 (jinak by bylo u = 0). Tedy druhý člen je nenulový a proto<br />

kladný dle předpokladu.<br />

Poznámka. y T s > 0 plyne z Wolfeho podmínky!<br />

Poznámka. V jednodimenzionálním případě (n = 1) je W k+1 = s/y a jeden krok<br />

qN metody se redukuje na<br />

x k+1 = x k −<br />

s T y<br />

x k − x k−1<br />

∇f k − ∇f k−1<br />

∇f k<br />

což je známá metoda sečen pro řešení rovnic v jedné dimenzi.<br />

Následující věta dokazuje globální konvergenci metody BFGS. Přes usilovnou<br />

snahu mnoha matematiků se dosud podařilo dokázat tvrzení věty pouze pro konvexní<br />

funkce.<br />

Věta 4.5.2 (globální konvergence BFGS). Necht’ f je konvexní, dvakrát spojitě<br />

diferencovatelná. Necht’ existuje m > 0 a M > 0 tak, že<br />

m‖z 2 ‖ ≤ z T ∇ 2 f(x)z ≤ M‖z‖ 2<br />

pro všechna z ∈ R n a všechna x ∈ Ω := {y | f(y) ≤ f(x 0 )}. Potom BFGS algoritmus<br />

s Wolfeho podmínkou generuje {x k } takovou, že x k → x ∗ , kde x ∗ je řešení NO.


26 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

Důkaz. Z předpokladu plyne ∇ 2 f ≻ 0, takže f má jednoznačné globální minimum.<br />

Připomeňme, že ˜G k označuje průměrný Hessián (viz (4.10)) splňující y k = ˜G k s k .<br />

Označme z k = ˜G 1 2<br />

k<br />

s k = ˜G − 1 2<br />

k<br />

y k. Potom<br />

m k = yT k s k<br />

s T k s k<br />

Z formule (BFGS) B plyne<br />

Definujeme<br />

= sT k ˜G k s k<br />

s T k s k<br />

≥ m<br />

tr B k+1 = trB k + ‖y k‖ 2<br />

cos θ k =<br />

sT k B ks k<br />

‖s k ‖ ‖B k s k ‖ ,<br />

tedy θ k je úhel mezi s k a B k s k . Potom<br />

Dále platí<br />

Definujme<br />

M k = yT k y k<br />

y T k s k<br />

y T k s k<br />

= zT k ˜G k z k<br />

z T k z k<br />

− ‖B ks k ‖ 2<br />

s T k B ks k<br />

.<br />

q k = sT k B ks k<br />

s T k s k<br />

‖B k s k ‖ 2<br />

s T k B ks k<br />

= ‖B ks k ‖ 2 ‖s k ‖ 2<br />

(s T k B ks k ) 2 s T k B ks k<br />

‖s k ‖ 2 = q k<br />

cos 2 θ k<br />

.<br />

yk T det B k+1 = detB s k s T k s k<br />

k<br />

s T k B ks k s T k s k<br />

ψ(B) = tr B − log(detB).<br />

= detB k<br />

m k<br />

q k<br />

.<br />

≤ M .<br />

Lze snadno ukázat, že ψ(B) > 0 (použij ψ(B) = ∑ (λ i − log λ i ), kde λ i jsou vlastní<br />

čísla B). Použitím výše odvozených formulí pak dostaneme<br />

ψ(B k+1 ) = ψ(B k ) + M k −<br />

cos 2 − log m k + log q k<br />

θ k<br />

q k<br />

= ψ(B k ) + (M k − log m k − 1) +<br />

[<br />

1 − q k<br />

cos 2 θ k<br />

+ log<br />

]<br />

q k<br />

cos 2 + log cos 2 θ k .<br />

θ k<br />

Protože 1 − t + log t ≤ 0 ∀t > 0, je obsah hranaté závorky nekladný, takže<br />

0 < ψ(B k+1 ) ≤ ψ(B 1 ) + ck +<br />

k∑<br />

log cos 2 θ j<br />

kde předpokládáme, že c = M − log m − 1 > 0. Ze Zoutendijkovy věty 4.2.1 plyne,<br />

že ‖∇f k ‖ ↛ 0, když cos θ j → 0. Předpokládejme tedy sporem, že cos θ j → 0. Pak<br />

existuje k 1 > 0 tak, že ∀j > k 1<br />

log cos 2 θ j < −2c.<br />

j=1<br />

Tedy ∀k > k 1<br />

∑k 1<br />

0 < ψ(B 1 ) + ck + log cos 2 θ j +<br />

j=1<br />

k∑<br />

j=k+1<br />

∑k 1<br />

= ψ(B 1 ) + log cos 2 θ j + 2ck 1 − ck .<br />

j=1<br />

Pro dostatečně velká k je pravá strana záporná, což je spor.<br />

(−2c)<br />

Věta 4.5.3 (lokální konvergence BFGS). Necht’ f je dvakrát spojitě diferencovatelná<br />

a posloupnost iterací {x} k generovaná metodou BFGS konverguje k x ∗ v<br />

němž je ∇ 2 f Lipschitzovský. Potom {x k } konverguje superlineárně.<br />

Důkaz. [, Theorem 8.6]


4.6. INVARIANCE NEWTONOVY A QUASI-NEWTONOVY METODY, METRIKA27<br />

4.6 Invariance Newtonovy a quasi-Newtonovy metody,<br />

metrika<br />

Uvažujme afinní lineární transformaci<br />

y = Ax + a<br />

s regulární maticí A. Funkce f se tedy transformuje<br />

Pak pro gradient a Hessián platí<br />

Věta 4.6.1. Necht’ B k splňuje<br />

f y (y) = f x (A −1 (y − a)).<br />

∇ x f x = A T ∇ y f y a ∇ 2 xxf x = A T ∇ 2 yyf y A.<br />

B k,x = A T B k,y A (4.11)<br />

pro všechna k. Potom je metoda typu line-search x k+1 = x k −α k B −1<br />

k ∇f k invariantní<br />

vůči afinní transformaci.<br />

Důkaz. Důkaz provedeme indukcí. Pro k = 1 (počáteční iteraci) máme okamžitě<br />

y 1 = Ax 1 + a. Pro k > 0 potom<br />

y k+1 = y k − α k B −1<br />

k,y ∇ yf k,y<br />

= Ax k + a − α k AB −1<br />

k,x AT A −T ∇f x<br />

= Ax k+1 + a.<br />

Poznámka.<br />

• Newtonova metoda je afinně invariantní (Hessián splňuje (4.11))<br />

• metoda největšího spádu není afinně invariantní (B k = I a identita samozřejmě<br />

nesplňuje (4.11))<br />

• qN metoda s B 0 = I není invariantní, ale pro vyšší k je ”<br />

téměř” invariantní.<br />

BFGS (DFP) metoda s B 0 = ∇ 2 f 0 je afinně invariantní.<br />

Je-li metoda afinně invariantní, pak iterační historie nezávisí na afinní tranformaci<br />

proměnných; metoda je tedy ”<br />

odolná” vůči špatné podmíněnosti.<br />

Směr d k v metodě největšího spádu (tedy záporný gradient v x k ) můžeme jiným<br />

způsobem definovat jako<br />

x k,r − x k<br />

d k = lim<br />

(4.12)<br />

r→0 ‖x k,r − x k ‖ 2<br />

kde x k,r minimalizuje funkci f na r-okolí bodu x k . Podobně pak lze odvodit, že<br />

směr d k v Newtonově metodě je směrem největšího spádu ve smyslu definice (4.12)<br />

s metrikou danou normou ‖ · ‖ = ‖ · ‖ ∇2 f(x k ). Stejně tak quasi-Newtonova metoda<br />

je metodou největšího spádu s metrikou ‖ · ‖ = ‖ · ‖ Bk . Z toho důvodu se qN metodě<br />

rovněž říká metoda s proměnnou metrikou.


28 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

4.7 Praktické quasi-Newtonovy metody<br />

V metodě BFGS aproximujeme Hessián ∇ 2 f maticí B k , přičemž B k+1 počítáme<br />

podle schematického vzorce<br />

B k+1 = B k + γγ T + B k δδ T B k<br />

kde γ a δ jsou nějaké vektory. Podobně počítáme W k , aproximaci inverse Hessiánu.<br />

Z výše uvedeného vzorce vidíme, že (pro k > 1) matice B k je vždy plná (protože<br />

dyadický součin vektorů je obecně plná matice). A to i v případě, kdy samotný<br />

Hessián je matice řídká! Z této úvahy je patrné, že metoda BFGS je vhodná pouze<br />

pro malé a střední úlohy, ale naprosto nevhodná pro úlohy velké dimenze. Pamět’<br />

nutná k uložení jedné (plné) matice B k je úměrná n 2 . Počítáme-li ve dvojité přesnosti,<br />

kdy jedno číslo potřebuje 8 Bytů, pak pro úlohu dimenze n = 10000 potřebujeme<br />

8 ·(10 4 ) 2 ≈ 1 GByte. To je ještě na hranici současné (dostupné) techniky. Problémy<br />

vyšší dimenze jsou pak z důvodu omezené paměti prakticky neřešitelné<br />

Víme-li, že Hessián našeho problému velké dimenze je (velmi) řídký, můžeme v<br />

takovém případě použít Newtonovu metodu kombinovanou s efektivní metodou na<br />

řešení soustav rovnic s řídkou maticí. Pokud to ovšem nevíme, či pokud je výpočet<br />

Hessiánu příliš drahý, je naším východiskem tzv. BFGS metoda s omezenou pamětí.<br />

Dříve než tuto metodu zavedeme, uved’me algoritmus, kterým lze alternativně<br />

počítat BFGS aktualizaci. Algoritmus uvedeme pro matici W, aproximaci inverze<br />

Hessiánu. Algoritmus je založen na myšlence, že v praxi nepotřebujeme explicitně<br />

matici W, ale pouze její násobek vektorem g, tedy d = −Wg. Připomeňme, že<br />

s i = x i+1 − x i a y i = ∇f i+1 − ∇f i .<br />

Algoritmus 4.7.1 (m-tá BFGS aktualizace). Máme dáno W 0 , ∇f m , páry<br />

(s i ,y i ),i = 1,...m.<br />

Chceme spočítat d = −Wg, kde W je m-tá BFGS aktualizace W 0 .<br />

Položíme d = −h m , kde h m spočítáme ve dvou krocích<br />

(i) q m = g; for i = m,...,1 do<br />

(ii) h 0 = W 0 q 0 ; for i = 1,...,m do<br />

γ i = sT i qi<br />

s T i y , q i−1 = q i − γ i y i<br />

i<br />

β i = yT i hi−1<br />

yi Ts , h i = h i−1 + (γ i − β i )s i .<br />

i<br />

Použijeme-li tento algoritmus místo explicitní formule (BFGS) W pro W k+1 , nemusíme<br />

ukládat celou (plnou) matici W k+1 , stačí uložit pouze páry (s k ,y k ). Naše<br />

potíže s pamětí pro úlohy velké dimenze jsou tedy odstraněny. Vyvstává ovšem nová<br />

potíž: pro k ≫ n je Algoritmus 4.7.1 příliš drahý (vyžaduje příliš mnoho operací)<br />

a prakticky nepoužitelný. Nasnadě je tedy myšlenka algoritmu přibližného, který<br />

nepoužívá pro výpočet d = −Wg všech párů (s k ,y k ), ale pouze posledních m, kde<br />

m je relativně malé. Tím se dostáváme k algoritmu L-BFGS (od Limited Memory<br />

BFGS), jehož k-tá iterace je definována následovně:<br />

Algoritmus 4.7.2 (k-tá iterace L-BFGS). .<br />

(i) s 1 = x k−m+1 − x k−m ,...,s m = x k − x k−1<br />

y 1 = ∇f k−m+1 − ∇f k−m ,...,y m = ∇f k − ∇f k−1<br />

Zvol W 0 .


4.8. L-BFGS A CG 29<br />

(ii) Spočítej d k = −W k ∇f k pomocí Algoritmu 4.7.1.<br />

(iii) x k+1 = x k + α k d k , kde α k splňuje Wolfeho podmínku<br />

(iv) k = k + 1<br />

Poznámka. U standardní (plné) BFGS metody není volba W 0 příliš důležitá a po<br />

dostatečném počtu kroků (limitně) nemá vliv na chování algoritmu. Hraje ale roli v<br />

prvních (desítkách) iterací a je tedy důležitá v metodě L-BFGS, kde m ≈ 10 − 30.<br />

Osvědčená volba je<br />

Wk 0 = sT k−1 y k−1<br />

yk−1 T y I .<br />

k−1<br />

Teoreticky lze očekávat, že L-BFGS konverguje tím rychleji, čím vyšší zvolíme m.<br />

V praxi však zcela stačí volit m ≈ 20. Pro vyšší hodnoty neúměrně roste výpočetní<br />

komplexita algoritmu 4.7.1. Množství praktických testů navíc ukázalo, že volba<br />

m ≈ 20 je ”<br />

optimální” nezávisle na n, tedy pro úlohy malé i velké dimenze.<br />

4.8 L-BFGS a CG<br />

V současné době neexistuje teorie rychlosti konvergence metody L-BFGS. Lze však<br />

ukázat zajímavý vztah L-BFGS k nelineární variantě metody sdružených gradientů<br />

(CG).<br />

Připomeňme, že CG, jakožto metodu pro řešení soustev lineárních rovnic, lze<br />

rovněž chápat jako metodu pro nepodmíněnou minimalizaci kvadratické funkce<br />

f(x) = 1 2 xT Ax − bx se symetrickou pozitivně definitní maticí A. Připomeňme<br />

základní algoritmus:<br />

Algoritmus 4.8.1 (CG pro kvadratické funkce). Je dáno x 0 . Polož r 0 = Ax 0 −<br />

b, p 0 = −r 0 .<br />

for k = 0,1,2...<br />

α k = rT k r k<br />

p T k Ap k<br />

x k+1 = x k + α k p k<br />

r k+1 = r k + α k Ap k<br />

. . .(přesný) line-search<br />

. . .r k+1 = ∇f(x k+1 ) rekurzivně<br />

β k+1 = rT k+1 r k+1<br />

r T k r k<br />

p k+1 = −r k+1 + β k+1 p k<br />

. . .p k+1 je nový směr poklesu<br />

end<br />

Je známo, že tento algoritmus splňuje řadu podmínek, např. podmínky ortogonality<br />

r T k r k = 0 a p T k Ap k = 0 i = 1,...,k − 1.<br />

Pro CG metodu existuje obsáhlá teorie. Základní věta říká, že pokud A má r různých<br />

vlastních čísel, pak CG skončí v nejvýše r krocích v přesném řešení (počítáme-li v<br />

přesné aritmetice). Dále je známo, že rychlost konvergence CG závisí jednak na<br />

podmíněnosti matice A, jednak na rozložení jejich vlastních čísel. Z toho důvodu se<br />

ke zvýšení rychlosti konvergence používá tzv. předpodmínění.<br />

Pro obecnou (nekvadratickou) funkci f existují různá zobecnění algoritmu 4.8.1.<br />

Nejpřímější je zobecnění navržené Fletcherem a Reevesem:


30 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

Algoritmus 4.8.2 (FR-CG pro nepodmíněnou minimalizaci). Je dáno x 0 .<br />

Polož p 0 = −r∇f(x 0 ).<br />

for k = 0,1,2...<br />

použij line-search k nalezení α k<br />

x k+1 = x k + α k p k<br />

end<br />

β FR<br />

k+1 = ∇fT k+1 ∇f k+1<br />

‖∇f k ‖ 2<br />

p k+1 = −∇f k+1 + β FR<br />

k+1 p k<br />

Jiné varianty CG metody pro nelineární funkce se liší způsobem výpočtu koeficientu<br />

β. Nejznámější je metoda Polak-Riviére (PR-CG):<br />

a metoda Hestenes-Stiefel (HS-CG):<br />

β PR<br />

k+1 = ∇fT k+1 (∇f k+1 − ∇f k )<br />

‖∇f k ‖ 2<br />

β HS<br />

k+1 = ∇fT k+1 (∇f k+1 − ∇f k )<br />

(∇f k+1 − ∇f k ) T p k<br />

.<br />

Lze snadno nahlédnout, že všechny tyto metody jsou identické s Algoritmem 4.8.1<br />

pokud f je konvexní kvadratická funkce.<br />

Jaký je vztah těchto metod k metodě (L-)BFGS Připomeňme opět, že<br />

s k = x k+1 − x k = α k p k , y k = ∇f k+1 − ∇f k .<br />

Nový směr poklesu je v metodě HS-CG dán formulí<br />

p k+1 = −∇f k+1 + ∇fT k+1 y k<br />

y T k p k<br />

(<br />

= − I − s kyk<br />

T )<br />

yk Ts ≡ Ŵk+1∇f k+1 .<br />

k<br />

To připomíná jeden krok qN metody, nicméně matice Ŵk+1 není ani symetrická<br />

ani pozitivně definitní. Můžeme použít její symetrizaci Ŵ T k+1Ŵk+1, ta ale nesplňuje<br />

qN rovnici Ŵk+1y k = s k . Aby tato rovnice byla splněna, lze použít následující<br />

modifikaci Ŵk+1:<br />

(<br />

W k+1 = I − s kyk<br />

T ) (<br />

yk Ts I − y ks T )<br />

k<br />

k yk Ts + s ks T k<br />

k yk Ts .<br />

k<br />

To je ale přesně matice kterou dostaneme jednou BFGS aktualizací z matice identické<br />

W 0 = I.<br />

Uvažujme nyní CG metodu s přesným hledáním délky kroku, tedy takovou, že<br />

∇f T k+1 p k = 0. Pak lze snadno ukázat, že<br />

W k+1 ∇f k+1 = Ŵk+1∇f k+1 ,<br />

a dále že metoda HS-CG je ekvivalentní s PR-CG. Závěr tedy je, že (za předpokladu<br />

přesné délky kroku)<br />

• metoda PR-CG je ekvivalentní s metodou BFGS s restartem W k = I v každém<br />

kroku;<br />

• metoda PR-CG je ekvivalentní s metodou L-BFGS s m = 1, W 0 = I.


4.9. MODIFIKOVANÉ NEWTONOVY METODY 31<br />

4.9 Modifikované Newtonovy metody<br />

Minimalizujeme-li nekonvexní funkci f Newtonovou metodou s omezeným krokem<br />

(line-searchem), může se stát, že dojdeme do bodu x k , v němž je Hessián ∇ 2 f(x k )<br />

indefinitní nebo singulární. V tom případě nemá kvadratický model konečné minimum,<br />

nový směr d k není směrem poklesu a celá metoda havaruje, protože nenajde<br />

odpovídající krok, splňující Wolfeho podmínku.<br />

V takovém případě můžeme zkusit modifikovat Hessián tak, aby se celé jeho<br />

spektrum posunulo do kladného oboru.<br />

Algoritmus 4.9.1 (modifikovaná Newtonova metoda s omezeným krokem).<br />

Je dáno x 0 . Pro k = 0,1,2,...<br />

(i) polož B k = ∇ 2 f(x k ) + E k , kde E k = 0, je-li ∇ 2 f(x k ) ≻ 0, nebo takové, aby<br />

B k ≻ 0<br />

(ii) d k = B −1<br />

k ∇f(x k)<br />

(iii) najdi α k splňující Wolfeho podmínku<br />

(iv) x x+1 = x k + α k d k<br />

Snadno lze ukázat globální konvergenci této metody.<br />

Věta 4.9.1. Necht’ f je dvatkát spojitě diferencovatelná na D a {x ∈ D : f(x) ≤<br />

f(x 0 )} je kompaktní. Necht’ cond (B k ) ≤ C ∀k = 0,1,2... Potom lim ∇f(x k) = 0.<br />

k→∞<br />

Důkaz. Plyne ze Zoutendijkovy věty 4.2.1.<br />

Co se týká rychlosti konvergence, je zřejmé, že platí-li E k = 0 pro k ≥ k 0 ,<br />

metoda se stane standardní Newtonovou metodou a konvergence je kvadratická.<br />

Pokud je však Hessián v bodě řešení singulární či ”<br />

téměř singulární”, je E k ≠ 0 pro<br />

všechna k a rychlost je pouze lineární. (Všimněte si, že při volbě E k = I − ∇ ” f(x k )<br />

dostaneme metodu největšího spádu.)<br />

4.9.1 Volba E k<br />

Protože E k musí být dostatečně jednoduchá, nejčastější volbou je násobek identické<br />

matice E k = τ k I, kde τ k > −λ min ∇ 2 f(x k ) a λ min je nejmenší vlastní číslo Hessiánu<br />

v x k . Zbývá otázka, jak levně odhadnout λ min . K tomu se používá následující algoritmus.<br />

Označme H := ∇ 2 f a její prvky h ij .<br />

Algoritmus 4.9.2. .<br />

Zvol β > 0<br />

je-li min i h ii > 0, polož τ 0 = 0, jinak τ 0 = β/2.<br />

for k = 0,1,2,...<br />

zkus provést Choleského rozklad<br />

LL T = H + τ k I ;<br />

end<br />

je-li úspěšný, skonči s τ = τ k<br />

jinak τ k+1 = max(2τ k ,β/2);


32 KAPITOLA 4. METODY TYPU LINE-SEARCH<br />

Příklad Necht’ f je nekonvenxní funkce, jejíž gradient a Hessián v bodě ξ = (2,1)<br />

je<br />

( ( )<br />

4<br />

∇f =<br />

∇<br />

−2)<br />

2 2 0<br />

f = .<br />

0 −2<br />

Její kvadratický model v tomto bodě je tedy funkce x 2 1 − x 2 2 jejíž isočáry jsou<br />

znázorněny na obrázku (funkce je konvexní v horizontální ose a konkávní v ose<br />

vertikální).<br />

d<br />

y<br />

ζ<br />

−g<br />

ξ<br />

x<br />

Standardní Newtonova metoda by dala směr jdoucí do počátku, tedy směr vzrůstu.<br />

Jeden krok metody největšího spádu pak jde do bodu η. Modifikací Hessiánu s τ = 3<br />

dostaneme pozitivně definitní matici<br />

( )<br />

B = ∇ 2 5 0<br />

f + 3I =<br />

0 1<br />

a směr d = −B −1 ∇f = (−4/5, 2) T , což je zjevně směr (výrazného) poklesu f na<br />

okolí bodu ξ.


Kapitola 5<br />

Metody typu Trust-Region<br />

5.1 Základní algoritmus<br />

Můžeme se ptát, jde-li—pro nekonvenxní funkce—algoritmus 4.9.1 lépe zformalizovat.<br />

Tedy můžeme-li nalézt takový předpis pro volbu τ, který zaručí dobré konvergenční<br />

vlastnosti, jak teoretické, tak praktické. Odpovědí je třída metod typu Trust-<br />

Region (metod s omezeným krokem), o nichž pojednává tato kapitola. Metody jsou<br />

založeny na následující ekvivalenci.<br />

Věta 5.1.1. Bod p ∗ je globální minimum problému<br />

právě když existuje λ ≥ 0 tak, že<br />

min<br />

p<br />

m(p) := c + g T p + 1 2 pT Bp s.t. ‖p‖ ≤ ∆ (TRS)<br />

(i)<br />

(B + λI)p ∗ = −g<br />

(ii) λ(∆ − ‖p ∗ ‖) = 0<br />

(iii) B + λI 0.<br />

Důkaz. Bez újmy na obecnosti, položme c = 0.<br />

⇐ Z vlastností (i)+(iii) plyne, že p ∗ minimalizuje funkci ˆm(p) := 1 2 pT (B +λI)p+<br />

g T p, odtud dostáváme ˆm(p) ≥ ˆm(p ∗ ) ∀p a tedy m(p) ≥ m(p ∗ ) + 1 2 λ(p∗T p ∗ − p T p).<br />

Z předpokladů λ ≥ 0 a (ii) dále plyne, že je-li p T p ≤ ∆ 2 , pak m(p) ≥ m(p ∗ ) a tedy<br />

p ∗ řeší (TRS).<br />

⇒ Je-li ‖p ∗ ‖ < ∆, pak p ∗ je nepodmíněné minimum m(p) a věta platí s λ =<br />

0. Předpokládejme ‖p ∗ ‖ = ∆. Z podmínek optimality 1. řádu pro podmíněnou<br />

optimalizaci (Věta ) plyne, že existuje ν ≥ 0 takové, že ∇ p L(p ∗ ,ν) = 0, kde<br />

L(p,ν) := m(p) + 1 2 ν(‖p‖2 − ∆ 2 ),<br />

tedy platí (i) s λ = ν. Rovněž z podmínek optimality 1. řádu (komplementarita)<br />

dostaneme okamžitě podmínku (ii). Použijeme-li podmínky optimality 2. řádu (Věta ),<br />

dostaneme<br />

s T (B + λI)s ≥ 0 ∀s : s T p ∗ = 0,<br />

kde B + λI je Hessián Lagrangiánu ∇ 2 ppL(p,λ). Vezmeme nyní v, v T p ∗<br />

zkonstruujeme p ′ = p ∗ + θv, θ ≠ 0 tak, že ‖p ′ ‖ = ∆.<br />

≠ 0 a<br />

33


34 KAPITOLA 5. METODY TYPU TRUST-REGION<br />

v<br />

p’<br />

p*<br />

Využitím (i) eliminujeme g T p z funkce L:<br />

L(p ′ ,ν) = m(p ∗ ) + 1 2 (p′ − p ∗ ) T (B + νI)(p ′ − p ∗ ).<br />

Protože (p ′ ) T p ′ = ∆ 2 , platí L(p ′ ,ν) = m(p ′ ) ≥ m(p ∗ ) a tedy v T (B +νI)v ≥ 0. Věta<br />

je dokázána.<br />

Základní schéma metody Trust-Region (TR) je následující: Zvol ∆ > 0; vyřeš<br />

(TRS); není-li model dobrý, uprav ∆ a vrat’ se na (TRS); jinak aktualizuj x a jdi<br />

na (TRS). Obrázek ukazuje stejný příklad jako na konci minulé kapitoly, tentokrát<br />

s TR krokem, zde označeným jako η.<br />

y<br />

η<br />

ζ<br />

−g<br />

ξ<br />

x<br />

Kvalitu kvadratického modelu v k-tém kroku<br />

měříme faktorem predikce modelu:<br />

m k (p) = f k + ∇f(x k ) T p + 1 2 pT ∇ 2 f(x k )p<br />

ρ k = f(x k) − f(x k + p k )<br />

m k (0) − m k (p k )<br />

:= δf k<br />

δm k<br />

; (5.1)


5.1. ZÁKLADNÍ ALGORITMUS 35<br />

zde dělenec má význam skutečné redukce funkce f a dělitel je přepokládaná redukce.<br />

Protože p k jsme získali minimalizací m k , je přepokládaná redukce vždy nezáporná:<br />

m k (0) − m k (p) ≥ 0. Proto je-li ρ k < 0, znamená to nárůst funkce f a takový krok<br />

musí být odmítnut. Ma druhé straně, je-li ρ k ≈ 1, model je dobrý a v další iteraci<br />

můžeme zvětšit ∆ (tedy ”<br />

oblast důvěry”). Pokud je ρ k kladné ale není blízké 1, stále<br />

můžeme současný krok akceptovat, ale δ nezměníme. Konečně, je-li ρ k záporné či<br />

blízké nule, krok odmítneme a zmenšíme ∆. Zde je detailní algoritmus:<br />

Algoritmus 5.1.1 (Trust-Region). Dáno ∆ > 0,∆ 0 ∈ (0∆),η ∈ [0, 1 4 ].<br />

for k=0,1,2,. . .<br />

end<br />

spočítej p k (přibližným) řešením (TRS)<br />

if ρ k < 1 4<br />

else<br />

∆ k+1 = 1 4 ‖p k‖<br />

if ρ k > 3 4 a ‖p k‖ = ∆ k<br />

∆ k+1 = min(2∆ k ,∆)<br />

else<br />

∆ k+1 = ∆ k ;<br />

if ρ k > η<br />

else<br />

x k+1 = x k + p k<br />

x k+1 = x k ;<br />

Věta 5.1.2 (globální konvergence TR). Necht’ f je dvakrát spojitě diferencovatelná<br />

a omezené množině B. Necht’ x k ∈ B pro všechny x k generované algoritmem<br />

TR s B k = ∇ 2 f(x k ). Pak existuje hromadný bod x ∗ posloupnosti {x k }, který splňuje<br />

nutné podmínky optimality 1. a 2. řádu.<br />

Důkaz. Existuje konvergentní podposloupnost (označme ji opět {x k }) pro níž nastane<br />

jeden ze dvou případů:<br />

(i) ρ k < 1 4 , ∆ k → 0 a tedy ‖p k ‖ → 0<br />

(ii) ρ k ≥ 1 4 a inf ∆ k > 0<br />

Větu dokážeme pro každý případ zvlášt’.<br />

(i): Předpokládejme sporem, že v x ∗ existuje směr poklesu s, ‖s‖ = 1, tedy že<br />

s T ∇f ∗ = −d, d > 0. Z Taylorova rozvoje f kolem x k dostaneme<br />

tedy (viz (5.1))<br />

f(x k + p k ) = m k (p k ) + o(‖p k ‖ 2 ),<br />

δf k = δm k + o(‖p k ‖ 2 ). (5.2)<br />

Uvažujme krok ε k = ‖p k ‖ ve směru s. Protože p k řeší (TRS) (a ze spojitosti), máme<br />

δm k ≥ m k (0) − m k (ε k s) = −ε k s T ∇f k + o(ε k ) = ε k d + o(ε k ).<br />

Z ε k → 0 (jsme v případu (i)) a z (5.2) plyne ρ k = 1 + o(1) a to je spor s<br />

předpokladem ρ k < 1 4 . Platí tedy ∇f ∗ = 0.


36 KAPITOLA 5. METODY TYPU TRUST-REGION<br />

Abychom dokázali podmínky 2. řádu, předpokládejme, že existuje s (‖s‖ = 1)<br />

takové, že<br />

s T B ∗ s = −d, d > 0 (5.3)<br />

Uvažujme krok ε k ve směru σs, σ = ±1, tak, že σs T ∇f k ≤ 0. Potom z (TRS)<br />

dostáváme<br />

δm k ≥ m k (0) − m k (ε k σs) ≥ − 1 2 ε2 ks T B k s = 1 2 ε2 kd + o(ε 2 k),<br />

kde poslední rovnost plyne ze spojitosti. Z (5.2) pak plyne ρ k = 1 + o(1), což je<br />

spor, takže B k 0 a případ (i) je dokázán.<br />

(ii): Platí f 1 = f ∗ ≥ ∑ δf k , tedy δf k → 0 a (protože ρ k ≥ 1 4 ) δm k → 0.<br />

Definujme<br />

m ∗ (p) := f ∗ + p T ∇f ∗ + 1 2 pT G ∗ p.<br />

Necht’ ˜∆ splňuje 0 < ˜∆ < inf ∆k a necht’ ˜p řeší m ∗ (p) na ‖p‖ ≤ ˜∆. Položme<br />

˜x = x ∗ + ˜p. Pro k dostatečně velké<br />

‖˜x − x k ‖ ≤ ‖˜p‖ + ‖x k − x ∗ ‖ = ‖˜p‖ + o(1) ≤ ˜∆ + o(1) ≤ ∆ k ,<br />

tedy ˜x − x k splňje omezení v (TRS). Potom<br />

m k (˜x − x k ) ≥ m k (p k ) = f k − δm k .<br />

V limitě f k → f ∗ , ∇f k → ∇f ∗ , ∇ 2 f k → ∇ 2 f ∗ (tedy G k → G ∗ ), δm k → 0 a<br />

˜x − x k → ˜p k a z toho m ∗ (˜p) ≥ f ∗ = m ∗ (0). Tedy p = 0 minimalizuje m ∗ (p) na<br />

‖p‖ ≤ ˜∆ a toto omezení není aktivní (platí ostrá nerovnost). Z toho plyne, že platí<br />

podmínky optimality 1. a 2. řádu a tedy tvrzení věty.<br />

Věta 5.1.3 (lokální konvergence TR). Splňuje-li x ∗ předpoklady věty 5.1.2 a<br />

postačující podmínky optimality 2. řádu, potom ρ k → 1, x k → x ∗ , inf ∆ k > 0 a<br />

‖p k ‖ ≤ ∆ k není aktivní pro k dostatečně veliká. Konvergence ke kvadratická.<br />

Důkaz. Fletcher, Thm. 5.1.2<br />

5.2 Jak řešit (TRS)<br />

Zopakujme problém (TRS)<br />

min<br />

p<br />

m(p) := f + ∇f T p + 1 2 pT Bp s.t. ‖p‖ ≤ ∆ (5.4)<br />

a označme pro zbytek této kapitoly g = ∇f.<br />

Metody pro řešení (TRS) můžeme rozdělit na (velmi) přibližné a (téměř) přesné.<br />

5.2.1 Cauchyho bod<br />

Cauchyho bod je bod ležící na směru záporného gradientu (v bodě x k ), který bud’<br />

minimalizuje m na této polopřímce (v případě, že minimum leží uvnitř oblasti ‖p‖ ≤<br />

∆), nebo leží na průsečíku s hranicí této oblasti. Je to tedy bod<br />

p c = −τg, kde τ =<br />

{<br />

∆ pro g T Bg ≤ 0<br />

min(∆,<br />

g T g<br />

g T Bg )<br />

jinak.


5.2. JAK ŘEŠIT (TRS) 37<br />

∆<br />

x k<br />

p c<br />

p*<br />

d N<br />

−g<br />

Obrázek ukazuje izočáry funkce f (čárkovaně) a kvadratického modelu m (plnou<br />

čarou) v bodě x k , dále Newtonův směr d N , směr záporného gradientu −g, Cauchyho<br />

bod p c a přesné řešení (TRS) p ∗ .<br />

Přibližné metody řešení (TRS) mají za cíl najít bod, který je přinejmenším<br />

lepší než Cauchyho bod (ve smyslu minimalizace m). Je zřejmé, že vezmeme-li za<br />

přibližné řešení (TRS) právě Cauchyho bod, dostaneme metodu největšího spádu s<br />

omezeným krokem.<br />

5.2.2 Metoda dogleg<br />

Podívejme se, jaký je efekt poloměru ∆ na (přesné) řešení (TRS). Předpokládejme,<br />

že B k 0. Pak řešením nepodmíněného (TRS) je plný Newtonův krok p N =<br />

−B −1 g. Je-li tedy ∆ dostatečně velké, je p ∗ = p N . Naopak, blíží-li se ∆ limitně<br />

nule, kvadratický člen v (TRS) pozbývá vlivu a p ∗ se blíží −∆ g , směr se tedy<br />

‖g‖<br />

asymptoticky blíží směru záporného gradientu.<br />

Metoda dogleg (jak ji nazval M. Powell) je přibližnou metodou pro řešení konvexních<br />

(TRS). Myšlenkou je nahradit (křivočarou) trajektorii p ∗ (∆) dvěma úsečkami.<br />

První úsečka jde z bodu p(0) (tedy x k ) do bodu minimalizujícího m(p) na směru<br />

záporného gradientu<br />

p U = − gT g<br />

g T Bg g<br />

(tedy bodu nalezeného metodou největšího spádu). Druhá pak jde z p U do p N .<br />

Označme tuto aproximující traketrorii<br />

˜p(τ) =<br />

{ τpU , 0 ≤ τ ≤ 1<br />

p U + (τ − 1)(p N − p U ), 1 ≤ τ ≤ 2.<br />

p( ) ∆<br />

p<br />

N<br />

∆<br />

p U<br />

−g


38 KAPITOLA 5. METODY TYPU TRUST-REGION<br />

Přibližným řešením (TRS) je průsečík této křivky s hranicí ‖p‖ = ∆. Lze ukázat,<br />

že pokud ‖p N ‖ ≥ ∆, pak takový bod existuje právě jeden a lze spočítat řešením<br />

kvadratické rovnice v proměnné τ:<br />

‖p U + (τ − 1)(p N − p U )‖ 2 = ∆ 2 .<br />

5.3 Metoda Steihaugova<br />

Jedná se opět o přibližnou metodu, vhodnou tentokrát i pro nekonvexní funkce. Je<br />

to v podstatě metoda sdružených gradientů (použitá na minimalizaci kvadratického<br />

modelu) s omezeným krokem a hlídáním směrů záporné křivosti (tj. směrů d, pro<br />

něž d T Bd ≤ 0).<br />

Algoritmus 5.3.1 (Steihaugova metoda). Dáno ǫ > 0; polož p 0 = 0, r 0 = g,<br />

d 0 = −r 0 .<br />

if ‖r 0 ‖ < ǫ<br />

return p = p 0 ;<br />

for j = 0,1,2,...<br />

end.<br />

if d T j Bd j ≤ 0<br />

najdi τ tak, že p = p j +τd j minimalizuje m(p) v (5.4)<br />

a splňuje ‖p‖ = ∆;<br />

return p;<br />

α j = rT j r j<br />

d T j Bd ;<br />

j<br />

p j+1 = p j + α j d j ;<br />

if ‖p j+1 ‖ ≥ ∆<br />

najdi τ tak, že p = p j + τd j splňuje ‖p‖ = ∆;<br />

return p;<br />

r j+1 = r j + α j Bd j ;<br />

if ‖r j+1 ‖ < ǫ‖r 0 ‖<br />

return p = p j+1 ;<br />

β j+1 = rT j+1 r j+1<br />

rj Tr ;<br />

j<br />

d j+1 = r j+1 + β j+1 d j ;<br />

Začne-li algoritmus s p 0 = 0, lze ukázat, že<br />

0 ≤ ‖p 0 ‖ 2 < ... < ‖p j ‖ 2 ≤ ‖p j+1 ‖ 2 < ... < ‖p‖ 2 ≤ ∆<br />

takže trajektorie generovaná algoritmem protne hranici ‖p‖ = ∆ právě jednou.<br />

Navíc p 1 = p c , tedy v první iteraci dostaneme Cauchyho bod, který pak už jen<br />

zlepšujeme.<br />

V porovnání s metodou dogleg je Steihaugova metoda vhodná pro problémy<br />

velké dimenze. V metodě dogleg musíme řešit soustavu Bp = g (abychom získali<br />

bod p N ). To zde nemusíme. Nevýhodou Steihaugovu metody je fakt, že metoda<br />

skončí když poprvé narazí na směr záporné křivosti, at’ je jakýkoliv. Z hlediska<br />

TR algoritmu by bylo výhodné nalézt směr velké záporné křivosti. Toho můžeme


5.4. PŘESNÉ ŘEŠENÍ (TRS) 39<br />

dosáhnout ve variantě Steihaugovy metody, kde základní CG algoritmus je nahrazen<br />

Lanczosovou metodou [].<br />

Další výhodou Steihaugovy metody je, že můžeme použít předpodmínění matice<br />

B ke zrychlení konvergence metody, tak jak to známe z klasické metody sdružených<br />

gradientů.<br />

5.4 Přesné řešení (TRS)<br />

Připomeňme, že (podle věty 5.1.1) p ∗ řeší (TRS) právě když existuje λ ≥ 0 tak, že<br />

(B + λI)p ∗ = −g, λ(∆ − ‖p ∗ ‖) = 0, B + λI 0.<br />

Strategie hledání p ∗ , založená na této ekvivalenci, je pak jasná: Je-li B ≻ 0, je λ = 0<br />

a p ∗ je řešením soustavy Bp = −g. Pokud je B indefinitní, definujeme<br />

p(λ) = −(B + λI) −1 g<br />

pro λ dostatečně velké, aby (B + λI) ≻ 0, a hledáme λ > 0 aby<br />

‖p(λ)‖ = ∆,<br />

hledáme tedy kořen jednodimenzionální rovnice (v λ).<br />

Necht’ B = QΛQ T , kde Q je ortogonální, Λ = diag (λ 1 ,λ 2 ,...,λ n ) a λ 1 ≤ λ 2 ≤<br />

... ≤ λ n . Potom<br />

p(λ) = −Q(Λ + λI) − 1Q T g = −<br />

n∑<br />

j=1<br />

q T j g<br />

λ j + λ q j ,<br />

kde q j jsou sloupce Q (tedy vlastní vektory B). Protože q j jsou ortonormální, máme<br />

‖p(λ)‖ 2 =<br />

n∑<br />

j=1<br />

(q T j g)2<br />

(λ j + λ) 2 .<br />

Z toho vidíme, že ‖p(λ)‖ je spojitá nerostoucí funkce na (−λ 1 , ∞) a<br />

lim ‖p(λ)‖ = 0.<br />

λ→∞<br />

Pro qj T g ≠ 0 navíc platí<br />

lim<br />

‖p(λ)‖ = ∞;<br />

λ→−λ j<br />

viz obrázek.


40 KAPITOLA 5. METODY TYPU TRUST-REGION<br />

||p||<br />

∆<br />

−λ −λ −λ −λ<br />

5.4.1 Lehký případ<br />

3<br />

2<br />

Proto je-li q T j g ≠ 0, pak existuje řešení ‖p(λ)‖ − ∆ = 0 v intervalu (−λ 1, ∞). Toto<br />

řešení můžeme najít Newtonovou metodou (pro hledání kořenů rovnic). Protože<br />

Newtonova metoda se nechová příliš dobře má-li funkce velkou křivost (jako ‖p(λ)‖<br />

v okolí −λ 1 , je vhodné rovnici ”<br />

invertovat” a hledat řešení rovnice<br />

1<br />

∆ − 1<br />

‖p(λ)‖ = 0,<br />

která je v okolí −λ 1 téměř lineární. Aplikováním Newtovovy metody na tuto rovnici<br />

dostaneme následující algoritmus:<br />

Algoritmus 5.4.1 (přesné řešení (TRS)). Je dáno λ 0 ,∆ > 0.<br />

for l = 0,1,2,...<br />

1<br />

*<br />

end<br />

faktorizuj B − λ l I = LL T<br />

řeš LL T p l = −g, Ls l = p<br />

( ) l<br />

2 ( )<br />

polož λ l+1 = λ l ‖pl ‖ ‖pl ‖ − ∆<br />

+<br />

‖s l ‖ ∆<br />

Nutno zmínit, že pro nové λ l+1 může nastat λ l+1 < −λ 1 a faktorizace LL T<br />

nemusí existovat—to je nutno ohlídat.<br />

5.4.2 Těžký případ (hard case)<br />

Pokud q T 1 g = 0, je hodnota p(−λ 1 ) konečná a nemusí existovat žádné λ ∈ (−λ 1 , ∞)<br />

aby ‖p(λ)‖ = ∆. Věta 5.1.1 nám říká, že v tomto případě λ = −λ 1 . Jak ale najít<br />

p ∗ Víme, že (B − λ 1 I)q 1 = 0, tedy q T 1 q j = 0 pro λ j ≠ λ 1 . Tedy<br />

p =<br />

∑<br />

j:λ j≠λ 1<br />

q T j g<br />

λ j + λ q j + τq 1


5.5. SCALING 41<br />

a<br />

‖p‖ 2 =<br />

∑ (qj Tg)2<br />

(λ j + λ) 2 + τ2 .<br />

j:λ j≠λ 1<br />

Odtud plyne existence takového τ, že ‖p‖ = ∆.<br />

5.5 Scaling

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!