Quasi-Newton methods · 2005-03-29 · maleja˛ca dla małych α, jesli zachodzi zachodzi´ g(k)T H...
Transcript of Quasi-Newton methods · 2005-03-29 · maleja˛ca dla małych α, jesli zachodzi zachodzi´ g(k)T H...
Quasi-Newton methodsOptymalizacja
Quasi-Newton methods – p.1/20
Metoda Newtona
Dla danego punktu startowego x(k) konstruujemy kwadratowa aproksymacje funkcji celuf : Rn → R klasy C2.
f(x) ≈ f(x(k)) + (x − x(k))T g(k) + 1/2(x − x(k))T F (x(k))(x − x(k)) = q(x),
gdzie g(k) = ∇f(x(k)).
Quasi-Newton methods – p.2/20
Metoda Newtona
Dla danego punktu startowego x(k) konstruujemy kwadratowa aproksymacje funkcji celuf : Rn → R klasy C2.
f(x) ≈ f(x(k)) + (x − x(k))T g(k) + 1/2(x − x(k))T F (x(k))(x − x(k)) = q(x),
gdzie g(k) = ∇f(x(k)).Poszukujemy minimum aproksymacji funkcji celu. Korzystajac z warunku koniecznegoistnienia ekstremum funkcji dla q(x) otrzymujemy
∇q(x) = g(k) + F (x(k))(x − x(k)) = 0.
Jesli F (x(k)) > 0, wówczas q(x) osiaga minimum w punkcie x = x(k) − F (x(k))−1g(k).
Quasi-Newton methods – p.2/20
Metoda Newtona
Dla danego punktu startowego x(k) konstruujemy kwadratowa aproksymacje funkcji celuf : Rn → R klasy C2.
f(x) ≈ f(x(k)) + (x − x(k))T g(k) + 1/2(x − x(k))T F (x(k))(x − x(k)) = q(x),
gdzie g(k) = ∇f(x(k)).Poszukujemy minimum aproksymacji funkcji celu. Korzystajac z warunku koniecznegoistnienia ekstremum funkcji dla q(x) otrzymujemy
∇q(x) = g(k) + F (x(k))(x − x(k)) = 0.
Jesli F (x(k)) > 0, wówczas q(x) osiaga minimum w punkcie x = x(k) − F (x(k))−1g(k).
Otrzymany punkt przyjmujemy jako punkt startowy kolejnej iteracji. Ponizsza formułaobrazuje metode Newtona:
x(k+1) = x(k) − F (x(k))−1g(k).
Quasi-Newton methods – p.2/20
Metoda Newtona (2)
Metoda Newtona jest jednym z najbardziej popularnych algorytmów optymalizacji.
Quasi-Newton methods – p.3/20
Metoda Newtona (2)
Metoda Newtona jest jednym z najbardziej popularnych algorytmów optymalizacji.
W przypadku, gdy wybrany punkt startowy zapewnia zbieznosc dorozwiazania, metoda Newtona osiaga rzad zbieznosci co najmniej 2.
Quasi-Newton methods – p.3/20
Metoda Newtona (2)
Metoda Newtona jest jednym z najbardziej popularnych algorytmów optymalizacji.
W przypadku, gdy wybrany punkt startowy zapewnia zbieznosc dorozwiazania, metoda Newtona osiaga rzad zbieznosci co najmniej 2.
Jednak w ogólnym przypadku zbieznosc do rozwiazania z dowolniewybranego punktu startowego x(0) nie moze byc zagwarantowana[f(x(k+1)) ≮ f(x(k))].
Quasi-Newton methods – p.3/20
Metoda Quasi-Newton
’Spadek’ algorytmu w kolejnych krokach, mozna uzyskac poprzez modyfikacjealgorytmu Newtona:
x(k+1) = x(k) − αkF (x(k))−1g(k),
gdzie αk jest parametrem, który zapewnia f(x(k+1)) < f(x(k)).
Quasi-Newton methods – p.4/20
Metoda Quasi-Newton
’Spadek’ algorytmu w kolejnych krokach, mozna uzyskac poprzez modyfikacjealgorytmu Newtona:
x(k+1) = x(k) − αkF (x(k))−1g(k),
gdzie αk jest parametrem, który zapewnia f(x(k+1)) < f(x(k)).Niech
αk = argminα>0f(x(k) − αF (x(k))−1g(k)).
Quasi-Newton methods – p.4/20
Metoda Quasi-Newton
’Spadek’ algorytmu w kolejnych krokach, mozna uzyskac poprzez modyfikacjealgorytmu Newtona:
x(k+1) = x(k) − αkF (x(k))−1g(k),
gdzie αk jest parametrem, który zapewnia f(x(k+1)) < f(x(k)).Niech
αk = argminα>0f(x(k) − αF (x(k))−1g(k)).
Wartosc αk mozna wyznaczyc w wyniku przeszukiwania liniowego w kierunku
d(k) = −F (x(k))−1g(k).
Quasi-Newton methods – p.4/20
Metoda Quasi-Newton
’Spadek’ algorytmu w kolejnych krokach, mozna uzyskac poprzez modyfikacjealgorytmu Newtona:
x(k+1) = x(k) − αkF (x(k))−1g(k),
gdzie αk jest parametrem, który zapewnia f(x(k+1)) < f(x(k)).Niech
αk = argminα>0f(x(k) − αF (x(k))−1g(k)).
Wartosc αk mozna wyznaczyc w wyniku przeszukiwania liniowego w kierunku
d(k) = −F (x(k))−1g(k).
Wada metody Newtona jest koniecznosc wyliczenia F (x(k)) oraz F (x(k))−1. W
metodzie quasi-Newton wykorzystuje sie aproksymacje F (x(k))−1 zamiast odwracaniamacierzy. Aproksymacja ta jest uaktualniana w kazdym kroku iteracji, aby zapewnic conajmniej niektóre własnosci F (x(k))−1.
Quasi-Newton methods – p.4/20
Własnosci aproksymacjiF (x(k))−1
Aby przyblizyc własnosci, które powinna spełniac ta aproksymacja, rozwazmy:
x(k+1) = x(k) − αHkg(k),
gdzie Hk ∈ Rn×n, a α ∈ R+ – parametr przeszukiwania.
Quasi-Newton methods – p.5/20
Własnosci aproksymacjiF (x(k))−1
Aby przyblizyc własnosci, które powinna spełniac ta aproksymacja, rozwazmy:
x(k+1) = x(k) − αHkg(k),
gdzie Hk ∈ Rn×n, a α ∈ R+ – parametr przeszukiwania.
Wykorzystujac rozwiniecie funkcji f wokół punktu x(0) otrzymujemy:
f(x(k+1)) = f(x(k)) + g(k)T (x(k+1) − x(k)) + o(||x(k+1) − x(k)||)
= f(x(k)) − αg(k)T Hkg(k) + o(||Hkg(k)||α)
Quasi-Newton methods – p.5/20
Własnosci aproksymacjiF (x(k))−1
Aby przyblizyc własnosci, które powinna spełniac ta aproksymacja, rozwazmy:
x(k+1) = x(k) − αHkg(k),
gdzie Hk ∈ Rn×n, a α ∈ R+ – parametr przeszukiwania.
Wykorzystujac rozwiniecie funkcji f wokół punktu x(0) otrzymujemy:
f(x(k+1)) = f(x(k)) + g(k)T (x(k+1) − x(k)) + o(||x(k+1) − x(k)||)
= f(x(k)) − αg(k)T Hkg(k) + o(||Hkg(k)||α)
Dla α dazacego do 0 αg(k)T Hkg(k) jest wieksze niz o(||Hkg(k)||α). Wiec funkcja f jestmalejaca dla małych α, jesli zachodzi zachodzi
g(k)T Hkg(k) > 0.
Najprostszym sposobem, aby zapewnic spełnialnosc powyzszej nierównosci jestzapewnienie, aby Hk była dodatnio okreslona.
Quasi-Newton methods – p.5/20
Własnosci aproksymacjiF (x(k))−1 (2)
Wniosek 1 Niech f ∈ C1, x(k) ∈ Rn, g(k) = ∇f(x(k)) 6= 0 i Hk ∈ Rn×n – macierzsymetryczna, dodatnio okreslona.Jesli przyjmiemy
x(k+1) = x(k) − αkHkg(k),
gdzie
αk = argminα>0f(x(k) − αHkg(k)),
to
αk > 0 oraz f(x(k+1)) < f(x(k)).
Quasi-Newton methods – p.6/20
Aproksymacja odwrotnosci Hesjanu
Niech H0, H1, H2, . . . beda kolejnymi aproksymacjami odwrotnosci Hesjanu F (x(k))−1.Poniewaz w przyjetych wczesniej rozwazaniach korzystalismy z aproksymacjikwadratowej funcji celu f , załózmy, ze Hesjan F (x) jest stały (niezalezny od x), wiecF (x) = Q dla kazdego x, gdzie Q = QT .Wtedy
g(k+1) − g(k) = Q(x(k+1) − x(k)).
Oznaczmy dodatkowo:
∆g(k) = g(k+1) − g(k)
∆x(k) = x(k+1) − x(k).
Mozemy wiec napisac:
∆g(k) = Q∆x(k).
Warto równiez zauwazyc, ze dla danego k, Q−1 spełnia:
Q−1∆g(i) = ∆x(i), dla 0 ≤ i ≤ k.
Quasi-Newton methods – p.7/20
Aproksymacja odwrotnosci Hesjanu (2)
Dodatkowo zakładamy, ze aproksymacja odwrotnosci Hesjanu Hk+1 spełnia:
Hk+1∆g(i) = ∆x(i), dla 0 ≤ i ≤ k.
Jesli iteracja obejmuje n kroków, wtedy poruszanie sie w n kierunkach∆x(0), ∆x(1), . . . , ∆x(n−1) daje:
Hn∆g(0) = ∆x(0),
Hn∆g(1) = ∆x(1),
...
Hn∆g(n−1) = ∆x(n−1).
Mozemy wiec napisac:
Hn[∆g(0), ∆g(1), . . . , ∆g(n−1)] = [∆x(0), ∆x(1), . . . , ∆x(n−1)].
Quasi-Newton methods – p.8/20
Aproksymacja odwrotnosci Hesjanu (3)
Tak wiec, jesli [∆g(0), ∆g(1), . . . , ∆g(n−1)] jest macierza nieosobliwa, to Hn = Q−1
jest wyznaczona jednoznacznie po n krokach:
Hn = Q−1 = [∆x(0), ∆x(1), . . . , ∆x(n−1)][∆g(0), ∆g(1), . . . , ∆g(n−1)]−1.
Quasi-Newton methods – p.9/20
Aproksymacja odwrotnosci Hesjanu (3)
Tak wiec, jesli [∆g(0), ∆g(1), . . . , ∆g(n−1)] jest macierza nieosobliwa, to Hn = Q−1
jest wyznaczona jednoznacznie po n krokach:
Hn = Q−1 = [∆x(0), ∆x(1), . . . , ∆x(n−1)][∆g(0), ∆g(1), . . . , ∆g(n−1)]−1.
Aby zilustrowac idee stojaca za ta metoda, mozna spojrzec na algorytm w nastepujacysposób:
d(k) = −Hkg(k)
αk = argminα≥0f(x(k) + αd(k))
x(k+1) = x(k) + αd(k),
gdzie H0, H1, . . . sa symetryczne.
Quasi-Newton methods – p.9/20
Zwiazek z metoda kierunku sprzezonego
Twierdzenie 1 Rozwazmy algorytm quasi-Newtona zastosowany do kwadratowejfunkcji celu. Niech Q = QT bedzie Hesjanem tej funkcji takim, ze dla 0 ≤ k ≤ n − 1zachodzi
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k,
gdzie Hk+1 = HT
k+1.
Jesli d(i) 6= 0, 0 ≤ i ≤ k, to d(0), . . . , d(k) sa Q-sprzezone.
Quasi-Newton methods – p.10/20
RANK ONE CORRECTION
Formuła rank one correction zakłada wyliczenie Hk+1 przez poprawienie Hk.
Składnik korekcyjny ma postac
akz(k)z(k)T ,
gdzie ak ∈ R, z(k) ∈ Rn.
Aproksymacja Hesjanu w kazdym kroku iteracji bazuje na równaniu:
Hk+1 = Hk + akz(k)z(k)T .
Quasi-Newton methods – p.11/20
RANK ONE CORRECTION
Formuła rank one correction zakłada wyliczenie Hk+1 przez poprawienie Hk.
Składnik korekcyjny ma postac
akz(k)z(k)T ,
gdzie ak ∈ R, z(k) ∈ Rn.
Aproksymacja Hesjanu w kazdym kroku iteracji bazuje na równaniu:
Hk+1 = Hk + akz(k)z(k)T .
Warto zauwazyc, ze
rank z(k)z(k)T = rank
0
@
2
4
z(k)1
...
z(k)n
3
5
»
z(k)1 . . . z
(k)n
–
1
A = 1.
Wniosek: Hk jest symetryczna, stad równiez Hk+1 jest symetryczna.
Quasi-Newton methods – p.11/20
RANK ONE CORRECTION (2)
Nalezy wyznaczyc ak i z(k), majac dane Hk, ∆g(k) i ∆x(k) w taki sposób, aby zostałozachowane:
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k.
Quasi-Newton methods – p.12/20
RANK ONE CORRECTION (2)
Nalezy wyznaczyc ak i z(k), majac dane Hk, ∆g(k) i ∆x(k) w taki sposób, aby zostałozachowane:
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k.
W efekcie otrzymujemy:
Hk+1 = Hk +(∆x(k) − Hk∆g(k))(∆x(k) − Hk∆g(k))T
∆g(k)T (∆x(k) − Hk∆g(k)).
Quasi-Newton methods – p.12/20
Algorytm RANK ONE
• k := 0, wybierz x(0) oraz H(0) –macierz symetryczna, dodatnio okreslona.
• if g(k) = 0, STOPelse d(k) = −Hkg(k).
• Oblicz
αk = argminα≥0f(x(k) + αd(k))
x(k+1) = x(k) + αkd(k)
• Oblicz
∆x(k) = αkd(k)
∆g(k) = g(k+1) − g(k)
Hk+1 = Hk +(∆x(k) − Hk∆g(k))(∆x(k) − Hk∆g(k))T
∆g(k)T (∆x(k) − Hk∆g(k)).
• k := k + 1, GO TO 2.
Quasi-Newton methods – p.13/20
RANK ONE CORRECTION - Przykład
Niechf(x1, x2) = x2
1 + 1/2x22 + 3
Wykorzystujemy algorytm Rank one correction do minimalizacji funkcji f . Niechx(0) = [1, 2]T i H0 = I2. Funkcje f mozna zapisac nastepujaco:
f(x) = 1/2xT
»
2 0
0 1
–
x + 3.
Quasi-Newton methods – p.14/20
RANK ONE CORRECTION - Przykład
Niechf(x1, x2) = x2
1 + 1/2x22 + 3
Wykorzystujemy algorytm Rank one correction do minimalizacji funkcji f . Niechx(0) = [1, 2]T i H0 = I2. Funkcje f mozna zapisac nastepujaco:
f(x) = 1/2xT
»
2 0
0 1
–
x + 3.
g(k) =
»
2 0
0 1
–
x(k).
Skoro H0 = I2
d(0) = −g(0) = [−2,−2]T .
Quasi-Newton methods – p.14/20
RANK ONE CORRECTION - Przykład (2)
Poniewaz rozwazana funkcja celu jest kwadratowa, wtedy
αk = argminα≥0f(x(k) + αd(k)) = −g(0)T d(0)
d(0)T Qd(0)=
2
3
Quasi-Newton methods – p.15/20
RANK ONE CORRECTION - Przykład (2)
Poniewaz rozwazana funkcja celu jest kwadratowa, wtedy
αk = argminα≥0f(x(k) + αd(k)) = −g(0)T d(0)
d(0)T Qd(0)=
2
3
Wtedy
x(1) = x(0) + α0d(0) =
»
−1
3,2
3
–T
Quasi-Newton methods – p.15/20
RANK ONE CORRECTION - Przykład (2)
Poniewaz rozwazana funkcja celu jest kwadratowa, wtedy
αk = argminα≥0f(x(k) + αd(k)) = −g(0)T d(0)
d(0)T Qd(0)=
2
3
Wtedy
x(1) = x(0) + α0d(0) =
»
−1
3,2
3
–T
Nastepnie obliczamy
∆x(0) = α0d(0) =
»
−4
3,−
4
3
–T
, g(1) = Qx(1) =
»
−2
3,2
3
–T
, ∆g(0) =
»
−8
3,−
4
3
–T
Ostatecznie
H1 =
»
1/2 0
0 1
–
Quasi-Newton methods – p.15/20
RANK ONE CORRECTION - Przykład (3)
d(1) = −H1g(1) =
»
1
3,−
2
3
–
T
,
α1 = −g(1)T d(1)
d(1)T Qd(1)= 1.
Quasi-Newton methods – p.16/20
RANK ONE CORRECTION - Przykład (3)
d(1) = −H1g(1) =
»
1
3,−
2
3
–
T
,
α1 = −g(1)T d(1)
d(1)T Qd(1)= 1.
Wtedy
x(2) = x(1) + α1d(1) = [0, 0]T .
Quasi-Newton methods – p.16/20
RANK ONE CORRECTION - Przykład (3)
d(1) = −H1g(1) =
»
1
3,−
2
3
–
T
,
α1 = −g(1)T d(1)
d(1)T Qd(1)= 1.
Wtedy
x(2) = x(1) + α1d(1) = [0, 0]T .
Ostatecznie g(2) = 0, wiec x(2) = x∗.
Quasi-Newton methods – p.16/20
Algorytm DFP /Davidon, Fletcher, Powell/
Rozwazany algorytm rank one nie jest jednak wystarczajacy w przypadku, gdyanalizowana funkcja celu nie jest kwadratowa. W takim przypadku Hk+1 moze nie
byc dodatnio okreslona, a wtedy d(k+1) moze nie byc kierunkiem ’spadkowym’.
Alternatywnym algorytmem umozliwiajacym aktualizacje Hk jest DFP wykorzystujacymetode rank two.
Quasi-Newton methods – p.17/20
Algorytm DFP /Davidon, Fletcher, Powell/
Rozwazany algorytm rank one nie jest jednak wystarczajacy w przypadku, gdyanalizowana funkcja celu nie jest kwadratowa. W takim przypadku Hk+1 moze nie
byc dodatnio okreslona, a wtedy d(k+1) moze nie byc kierunkiem ’spadkowym’.
Alternatywnym algorytmem umozliwiajacym aktualizacje Hk jest DFP wykorzystujacymetode rank two.
Twierdzenie 2 W algorytmie DFP zastosowanym do kwadratowej funkcji celu, gdzieHesjan Q = QT , otrzymujemy Hk+1∆g(i) = ∆x(i), dla 0 ≤ i ≤ k.
Quasi-Newton methods – p.17/20
Algorytm DFP /Davidon, Fletcher, Powell/
Rozwazany algorytm rank one nie jest jednak wystarczajacy w przypadku, gdyanalizowana funkcja celu nie jest kwadratowa. W takim przypadku Hk+1 moze nie
byc dodatnio okreslona, a wtedy d(k+1) moze nie byc kierunkiem ’spadkowym’.
Alternatywnym algorytmem umozliwiajacym aktualizacje Hk jest DFP wykorzystujacymetode rank two.
Twierdzenie 3 W algorytmie DFP zastosowanym do kwadratowej funkcji celu, gdzieHesjan Q = QT , otrzymujemy Hk+1∆g(i) = ∆x(i), dla 0 ≤ i ≤ k.
Twierdzenie 4 Załózmy, ze g(k) 6= 0. W algorytmie DFP, jesli Hk jest dodatniookreslona, to Hk+1 rowniez.
Quasi-Newton methods – p.17/20
Algorytm DFP
• k := 0, wybierz x(0) oraz H(0) – macierz symetryczna, dodatnio okreslona.
• if g(k) = 0, STOPelse d(k) = −Hkg(k).
• Oblicz
αk = argminα≥0f(x(k) + αd(k))
x(k+1) = x(k) + αkd(k)
• Oblicz
∆x(k) = αkd(k)
∆g(k) = g(k+1) − g(k)
Hk+1 = Hk +∆x(k)∆x(k)T
∆x(k)T ∆g(k)−
[Hk∆g(k)][Hk∆g(k)]T
∆g(k)T Hk∆g(k).
• k := k + 1, GO TO 2.
Quasi-Newton methods – p.18/20
Algorytm BFGS /Brodyen, Fletcher, Goldfarb, Shanno/
Algorytm BFGS opera sie na pojeciu komplementarnosci. Punktem wyjscia w metodziequasi-Newton było równanie:
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k.
Natomiast algorytmy polegały na znalezieniu aproksymacji macierzy odwrotnej doHesjanu Q−1.
Quasi-Newton methods – p.19/20
Algorytm BFGS /Brodyen, Fletcher, Goldfarb, Shanno/
Algorytm BFGS opera sie na pojeciu komplementarnosci. Punktem wyjscia w metodziequasi-Newton było równanie:
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k.
Natomiast algorytmy polegały na znalezieniu aproksymacji macierzy odwrotnej doHesjanu Q−1.Innym rozwiazaniem jest aproksymacja samej macierzy Q. Niech Bk bedzieestymowało Q w k-tym kroku. Wiec Bk+1 spełnia
∆g(i) = Bk+1∆x(i), 0 ≤ i ≤ k.
Quasi-Newton methods – p.19/20
Algorytm BFGS /Brodyen, Fletcher, Goldfarb, Shanno/
Algorytm BFGS opera sie na pojeciu komplementarnosci. Punktem wyjscia w metodziequasi-Newton było równanie:
Hk+1∆g(i) = ∆x(i), 0 ≤ i ≤ k.
Natomiast algorytmy polegały na znalezieniu aproksymacji macierzy odwrotnej doHesjanu Q−1.Innym rozwiazaniem jest aproksymacja samej macierzy Q. Niech Bk bedzieestymowało Q w k-tym kroku. Wiec Bk+1 spełnia
∆g(i) = Bk+1∆x(i), 0 ≤ i ≤ k.
Aproksymacja Hesjanu Bk wyraza sie wzorem:
Bk+1 = Bk +∆g(k)∆g(k)T
∆g(k)T ∆x(k)−
Bk∆x(k)∆x(k)T Bk
∆x(k)T Bk∆x(k)
Quasi-Newton methods – p.19/20
Algorytm BFGS
Macierz odwrotna Hesjanu wyznaczona na podstawie Bk+1 w algorytmie BFGS wyrazasie wzorem:
Hk+1 = (Bk+1)−1 = Hk +
„
1 +∆g(k)T Hk∆g(k)
∆g(k)T ∆x(k)
«
∆x(k)∆x(k)T
∆x(k)T ∆g(k)−
−Hk∆g(k)∆x(k)T + (Hk∆g(k)∆x(k)T )T
∆g(k)T ∆x(k).
Quasi-Newton methods – p.20/20