Algoritmy numerické optimalizace
Algoritmy numerické optimalizace Algoritmy numerické optimalizace
Algoritmy numerické optimalizace Michal Kočvara 8. ledna 2004
- Page 3 and 4: Obsah 1 Úvod 5 1.1 Značení . . .
- Page 5 and 6: Kapitola 1 Úvod 1.1 Značení 1.1.
- Page 7 and 8: 1.3. KLASIFIKACE OPTIMALIZAČNÍCH
- Page 9: Část I Nepodmíněná optimalizac
- Page 13 and 14: Kapitola 2 Podmínky optimality 2.1
- Page 15 and 16: Kapitola 3 Algoritmy 3.1 Úvod Tém
- Page 17 and 18: Kapitola 4 Metody typu line-search
- Page 19 and 20: 4.2. KONVERGENCE METOD TYPU LINE-SE
- Page 21 and 22: 4.3. HLEDÁNÍ SMĚRŮ POKLESU 21 4
- Page 23 and 24: 4.4. RYCHLOST KONVERGENCE 23 Důkaz
- Page 25 and 26: 4.5. METODA BFGS 25 aplikovat David
- Page 27 and 28: 4.6. INVARIANCE NEWTONOVY A QUASI-N
- Page 29 and 30: 4.8. L-BFGS A CG 29 (ii) Spočítej
- Page 31 and 32: 4.9. MODIFIKOVANÉ NEWTONOVY METODY
- Page 33 and 34: Kapitola 5 Metody typu Trust-Region
- Page 35 and 36: 5.1. ZÁKLADNÍ ALGORITMUS 35 zde d
- Page 37 and 38: 5.2. JAK ŘEŠIT (TRS) 37 ∆ x k p
- Page 39 and 40: 5.4. PŘESNÉ ŘEŠENÍ (TRS) 39 do
- Page 41: 5.5. SCALING 41 a ‖p‖ 2 = ∑ (
<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