Optymalizacja ciągła 4. Metody kierunków poprawy (metoda spadku wzdłuż gradientu) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 21.03.2019 1 / 41
Plan wykładu Minimalizacja różniczkowalnej funkcji f(x) bez ograniczeń: min f(x) x R n Często będziemy zakładać wypukłość f(x) 1. Wprowadzenie 2. Metoda spadku wzdłuż gradientu 3. Metoda Newtona-Raphsona (następny wykład) 4. Modyfikacje metody Newtona-Rapshona (następny wykład) 5. Metoda gradientów sprzężonych (następny wykład) 2 / 41
Wprowadzenie 3 / 41
Wykres powierzchniowy a wykres konturowy f(x 1, x 2 ) = x 2 1 + 2x 2 2 10 2 1 11 9 10 4 8 7 6 5 4 2 1 3 4 11 10 9 8 7 6 5 5 0 2 1 1 0 0 x 1 2 2 1 x 2 1 2 x2 0 1 3 11 2 10 9 1 5 6 7 2 2 1 0 1 2 x 1 8 4 3 2 9 10 11 5 6 7 8 4 / 41
Wykres powierzchniowy a wykres konturowy f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 100 50 x2 1 0 0 2 1 2 1 1 0 2 0 1 x 2 x 1 2 1 0 1 2 2 x 1 1 2 5 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: f(x) = f(x ) + (x x ) A(x x ) 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: Przykład: f(x) = x 2 + 2x + 2 f(x) = f(x ) + (x x ) A(x x ) 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: f(x) = f(x ) + (x x ) A(x x ) Przykład: f(x) = x 2 + 2x + 2 Minimum w x = b 2a = 1, f(x ) = 1, a stąd f(x) = 1 + (x + 1) 2 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: f(x) = f(x ) + (x x ) A(x x ) Przykład: f(x) = x 2 + 2x + 2 Minimum w x = b 2a = 1, f(x ) = 1, a stąd f(x) = 1 + (x + 1) 2 Przykład: f(x) = x 2 1 + 2x2 2 2x 1 + 4x 2 + 1 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: f(x) = f(x ) + (x x ) A(x x ) Przykład: f(x) = x 2 + 2x + 2 Minimum w x = b 2a = 1, f(x ) = 1, a stąd f(x) = 1 + (x + 1) 2 Przykład: f(x) = x 2 1 + 2x2 2 2x 1 + 4x 2 + 1 A = [ 1 0 0 2 ], b = ( 2, 4), x = 1 2 A 1 b = 1 2 [ 1 0 0 0.5 ] [ ] 2 = 4 [ ] 1 1 6 / 41
Wykres konturowy funkcji kwadratowej Rozważmy funkcję kwadratową z dodatnio określoną macierzą A: f(x) = x Ax + b x + c Przybliżając (dokładnym!) wielomianem Taylora drugiego rzędu wokół minimum x możemy zapisać funkcję jako: f(x) = f(x ) + (x x ) A(x x ) Przykład: f(x) = x 2 + 2x + 2 Minimum w x = b 2a = 1, f(x ) = 1, a stąd f(x) = 1 + (x + 1) 2 Przykład: f(x) = x 2 1 + 2x2 2 2x 1 + 4x 2 + 1 A = [ 1 0 0 2 ], b = ( 2, 4), x = 1 2 A 1 b = 1 2 [ 1 0 0 0.5 ] [ ] 2 = 4 [ ] 1 1 Mamy f(x ) = 2, a stąd: [ ] [ ] [ ] 1 0 x1 1 f(x) = 2+ x 1 1 x 2 + 1 = 2+(x 0 2 x 2 + 1 1 1) 2 +2(x 2 +1) 2 6 / 41
Wykres konturowy funkcji kwadratowej f(x) = f(x ) + (x x ) A(x x ) 7 / 41
Wykres konturowy funkcji kwadratowej f(x) = f(x ) + (x x ) A(x x ) Równanie: (x x ) A(x x ) = c jest równaniem elipsoidy o środku x, której osie główne odpowiadają wektorom własnym A, a długości tych osi są odwrotnie proporcjonalne do pierwiastków wartości własnych W szczególności dla n = 2 jest to równanie elipsy na płaszczyźnie 7 / 41
Wykres konturowy funkcji kwadratowej f(x) = f(x ) + (x x ) A(x x ) Równanie: (x x ) A(x x ) = c jest równaniem elipsoidy o środku x, której osie główne odpowiadają wektorom własnym A, a długości tych osi są odwrotnie proporcjonalne do pierwiastków wartości własnych W szczególności dla n = 2 jest to równanie elipsy na płaszczyźnie Wniosek: poziomice funkcji kwadratowej są elipsoidami 7 / 41
Wykres konturowy funkcji kwadratowej f(x 1, x 2 ) = x 2 1 + x 2 2 + x 1 x 2 x2 2 1 0 A = Wektory własne: [ ] 1 0 0 1 v 1 = (1, 0), v 2 = (0, 1) Wartości własne: 1 λ 1 = 1, λ 2 = 1 2 2 1 0 1 2 x 1 Minimum: x = ( 0.5, 0.5) 8 / 41
Wykres konturowy funkcji kwadratowej f(x 1, x 2 ) = 0.5x 2 1 + 2x 2 2 x2 2 1 0 A = Wektory własne: [ ] 0.5 0 0 2 v 1 = (1, 0), v 2 = (0, 1) Wartości własne: 1 λ 1 = 0.5, λ 2 = 2 2 2 1 0 1 2 x 1 Minimum: x = (0, 0) 9 / 41
Wykres konturowy funkcji kwadratowej f(x 1, x 2 ) = 1.5x 2 1 x 1 x 2 + 1.5x 2 2 + 2x 2 x2 2 1 0 A = 1 2 Wektory własne: [ ] 3 1 1 3 v 1 = 1 2 (1, 1), v 2 = 1 2 (1, 1) Wartości własne: 1 λ 1 = 1, λ 2 = 2 2 2 1 0 1 2 x 1 Minimum: x = ( 0.25, 0.75) 10 / 41
Metody spadkowe (kierunków poprawy) Iteracyjne metody generujące punkty x 1, x 2,... w ten sposób aby w każdej iteracji zmniejszać wartość funkcji celu: f(x k+1 ) < f(x k ) W każdej iteracji k = 1, 2,... znajdywany jest kierunek poprawy v k, tzn. taki, że przy dostatecznie małych α R: f(x k + αv k ) < f(x k ) Kolejny punkt wyznaczany jest jako x k+1 = x k + α k v k, gdzie długość kroku α k dobierana jest aby zapewnić odpowiednio duży spadek funkcji celu 11 / 41
Kierunek poprawy Przypomnienie: Wzór Taylora f(x) = f(x 0 ) + f(x 0 ) (x x 0 ) + 1 2 (x x 0) 2 f(ξ)(x x 0 ), gdzie ξ jest punktem między x 0 a x 12 / 41
Kierunek poprawy Przypomnienie: Wzór Taylora f(x) = f(x 0 ) + f(x 0 ) (x x 0 ) + 1 2 (x x 0) 2 f(ξ)(x x 0 ), gdzie ξ jest punktem między x 0 a x Wybierając x 0 = x k oraz x = x k + αv k dostajemy: f(x k + αv k ) = f(x k ) + α f(x k ) v k + α2 2 v k 2 f(ξ)v k 12 / 41
Kierunek poprawy Przypomnienie: Wzór Taylora f(x) = f(x 0 ) + f(x 0 ) (x x 0 ) + 1 2 (x x 0) 2 f(ξ)(x x 0 ), gdzie ξ jest punktem między x 0 a x Wybierając x 0 = x k oraz x = x k + αv k dostajemy: f(x k + αv k ) f(x k ) = α f(x k ) v k + O(α 2 ) 12 / 41
Przypomnienie: Wzór Taylora Kierunek poprawy f(x) = f(x 0 ) + f(x 0 ) (x x 0 ) + 1 2 (x x 0) 2 f(ξ)(x x 0 ), gdzie ξ jest punktem między x 0 a x Wybierając x 0 = x k oraz x = x k + αv k dostajemy: f(x k + αv k ) f(x k ) = α f(x k ) v k + O(α 2 ) Aby kierunek v k był kierunkiem poprawy (tzn. gwarantował spadek wartości funkcji przy dostatecznie małych α), pochodna kierunkowa wzdłuż v k musi być ujemna, tzn: f(x k ) v k = f(x k ) v k < 0 12 / 41
Przypomnienie: Wzór Taylora Kierunek poprawy f(x) = f(x 0 ) + f(x 0 ) (x x 0 ) + 1 2 (x x 0) 2 f(ξ)(x x 0 ), gdzie ξ jest punktem między x 0 a x Wybierając x 0 = x k oraz x = x k + αv k dostajemy: f(x k + αv k ) f(x k ) = α f(x k ) v k + O(α 2 ) Aby kierunek v k był kierunkiem poprawy (tzn. gwarantował spadek wartości funkcji przy dostatecznie małych α), pochodna kierunkowa wzdłuż v k musi być ujemna, tzn: f(x k ) v k = f(x k ) v k < 0 Kierunek poprawy musi tworzyć z gradientem kąt rozwarty (cos θ < 0) Zawsze można dobrać kierunek poprawy o ile tylko f(x k ) 0 12 / 41
Zbieżność metod spadkowych Wykorzystujemy własność, że o ile f(x k ) 0, możemy dobrać kierunek poprawy v k i długość kroku α k tak, aby: f(x k+1 ) < f(x k ) 13 / 41
Zbieżność metod spadkowych Wykorzystujemy własność, że o ile f(x k ) 0, możemy dobrać kierunek poprawy v k i długość kroku α k tak, aby: f(x k+1 ) < f(x k ) Zakładając, że funkcja celu f(x) jest ograniczona od dołu i poprawa funkcji w każdej iteracji jest wystarczająco duża, wnioskujemy, że punkt zbieżności algortymu x musi mieć własność f(x ) = 0 (zgrubne uzasadnienie: jeśli f(x ) 0, moglibyśmy istotnie poprawić funkcję celu, co przeczyłoby temu, że x jest punktem zbieżności) 13 / 41
Zbieżność metod spadkowych Wykorzystujemy własność, że o ile f(x k ) 0, możemy dobrać kierunek poprawy v k i długość kroku α k tak, aby: f(x k+1 ) < f(x k ) Zakładając, że funkcja celu f(x) jest ograniczona od dołu i poprawa funkcji w każdej iteracji jest wystarczająco duża, wnioskujemy, że punkt zbieżności algortymu x musi mieć własność f(x ) = 0 (zgrubne uzasadnienie: jeśli f(x ) 0, moglibyśmy istotnie poprawić funkcję celu, co przeczyłoby temu, że x jest punktem zbieżności) W ogólności nie ma gwarancji, że x jest nawet minimum lokalnym (może to być punkt siodłowy) 13 / 41
Zbieżność metod spadkowych Wykorzystujemy własność, że o ile f(x k ) 0, możemy dobrać kierunek poprawy v k i długość kroku α k tak, aby: f(x k+1 ) < f(x k ) Zakładając, że funkcja celu f(x) jest ograniczona od dołu i poprawa funkcji w każdej iteracji jest wystarczająco duża, wnioskujemy, że punkt zbieżności algortymu x musi mieć własność f(x ) = 0 (zgrubne uzasadnienie: jeśli f(x ) 0, moglibyśmy istotnie poprawić funkcję celu, co przeczyłoby temu, że x jest punktem zbieżności) W ogólności nie ma gwarancji, że x jest nawet minimum lokalnym (może to być punkt siodłowy) Dla funkcji wypukłych możemy pokazać, że x jest minimum globalnym i oszacować rząd zbieżności 13 / 41
Metoda spadku wzdłuż gradientu 14 / 41
Gradient jako kierunek największego wzrostu Pokazaliśmy wcześniej, że dla jednostkowego wektora v k : f(x k ) f(x k ) v k f(x k ), a obie skrajne wartości osiągane są przez v k = ± f(x k) f(x k ) 15 / 41
Gradient jako kierunek największego wzrostu Pokazaliśmy wcześniej, że dla jednostkowego wektora v k : f(x k ) f(x k ) v k f(x k ), a obie skrajne wartości osiągane są przez v k = ± f(x k) f(x k ) Wniosek: gradient jest kierunkiem (lokalnie) największego wzrostu funkcji, a ujemny gradient kierunkiem (lokalnie) największego spadku 15 / 41
Gradient jako kierunek największego wzrostu Pokazaliśmy wcześniej, że dla jednostkowego wektora v k : f(x k ) f(x k ) v k f(x k ), a obie skrajne wartości osiągane są przez v k = ± f(x k) f(x k ) Wniosek: gradient jest kierunkiem (lokalnie) największego wzrostu funkcji, a ujemny gradient kierunkiem (lokalnie) największego spadku 2 10 1 x2 0 5 0 2 x f(x) 0 0 x 2 x 1 2 2 2 1 f(x) x 2 2 1 0 1 2 x 1 15 / 41
Gradient na wykresie konturowym 1 0 Wektor gradientu jest zawsze prostopadły do poziomic funkcji Dlaczego? x2 1 f(x) x 2 2 1 0 1 x 1 16 / 41
Gradient na wykresie konturowym x2 1 0 1 f(x) x v 2 2 1 0 1 x 1 Wektor gradientu jest zawsze prostopadły do poziomic funkcji Dlaczego? Ponieważ pochodna kierunkowa w kierunku v wzdłuż poziomicy musi wynosić zero: f(x + v) v Stąd f(x) v = f(x) v = 0 16 / 41
Algorytm spadku wzdłuż gradientu Rozpoczynając od x 1, w kolejnych iteracjach k = 1, 2,...: x k+1 = x k α k f(x k ) 17 / 41
Algorytm spadku wzdłuż gradientu Rozpoczynając od x 1, w kolejnych iteracjach k = 1, 2,...: x k+1 = x k α k f(x k ) Pytanie: jak dobrać długości kroków α k? 17 / 41
Algorytm spadku wzdłuż gradientu Rozpoczynając od x 1, w kolejnych iteracjach k = 1, 2,...: x k+1 = x k α k f(x k ) Pytanie: jak dobrać długości kroków α k? Stała długość kroku α k = α: najprostszy algorytm, ale... wartość α trzeba dobrać metodą prób i błędów nie gwarantuje, że f(x k+1 ) < f(x k ) 17 / 41
Algorytm spadku wzdłuż gradientu Rozpoczynając od x 1, w kolejnych iteracjach k = 1, 2,...: x k+1 = x k α k f(x k ) Pytanie: jak dobrać długości kroków α k? Stała długość kroku α k = α: najprostszy algorytm, ale... wartość α trzeba dobrać metodą prób i błędów nie gwarantuje, że f(x k+1 ) < f(x k ) Optymalna długość kroku: algorytm najszybszego spadku 17 / 41
Algorytm spadku wzdłuż gradientu Rozpoczynając od x 1, w kolejnych iteracjach k = 1, 2,...: x k+1 = x k α k f(x k ) Pytanie: jak dobrać długości kroków α k? Stała długość kroku α k = α: najprostszy algorytm, ale... wartość α trzeba dobrać metodą prób i błędów nie gwarantuje, że f(x k+1 ) < f(x k ) Optymalna długość kroku: algorytm najszybszego spadku Dostatecznie dobra długość kroku: niekoniecznie optymalna, ale gwarantująca f(x k+1 ) < f(x k ); najczęściej używana w praktyce 17 / 41
Algorytm najszybszego spadku (Cauchy ego) Algorytm dobiera długość kroku α k, która najbardziej zmniejsza funkcję celu wzdłuż wektora gradientu: α k = argmin f (x k α f(x k )) α 0 18 / 41
Algorytm najszybszego spadku (Cauchy ego) Algorytm dobiera długość kroku α k, która najbardziej zmniejsza funkcję celu wzdłuż wektora gradientu: α k = argmin f (x k α f(x k )) α 0 Musimy rozwiązać jednowymiarowy problem minimalizacji funkcji jednej zmiennej: g(α) = f (x k α f(x k )) 18 / 41
Algorytm najszybszego spadku (Cauchy ego) Algorytm dobiera długość kroku α k, która najbardziej zmniejsza funkcję celu wzdłuż wektora gradientu: α k = argmin f (x k α f(x k )) α 0 Musimy rozwiązać jednowymiarowy problem minimalizacji funkcji jednej zmiennej: g(α) = f (x k α f(x k )) Metoda złotego podziału Metoda bisekcji Metoda Newtona... 18 / 41
Algorytm najszybszego spadku 1 0.5 x2 0 0.5 1 f(x 1 ) x 1 1 0.5 0 0.5 1 x 1 19 / 41
Algorytm najszybszego spadku 1 0.5 x2 0 x 2 0.5 1 f(x 1 ) x 1 1 0.5 0 0.5 1 x 1 19 / 41
Algorytm najszybszego spadku 1 0.5 x2 0 x 2 f(x 2) x 3 0.5 1 f(x 1 ) x 1 1 0.5 0 0.5 1 x 1 19 / 41
Algorytm najszybszego spadku 1 0.5 x 2 x2 0 x 3 0.5 1 x 1 1 0.5 0 0.5 1 x 1 19 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.01 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.05 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.2 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.48 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.5 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Dla porównania: algorytm ze stałą długością kroku α = 0.6 1 0.5 x2 0 0.5 1 x 1 1 0.5 0 0.5 1 x 1 20 / 41
Twierdzenie o zygzakowaniu W algorytmie najszybszego spadku kolejne kierunki poprawy (gradienty) są do siebie ortogonalne 1 0.5 x2 0 x 2 f(x 2) 0.5 f(x 1) 1 x 1 1 0.5 0 0.5 1 x 1 21 / 41
Twierdzenie o zygzakowaniu W algorytmie najszybszego spadku kolejne kierunki poprawy (gradienty) są do siebie ortogonalne Dowód: Długość kroku α k w równaniu x k+1 = x k α k f(x k ) uzyskuje się znajdując minimum funkcji jednowymiarowej: g(α) = f (x k α f(x k )) 21 / 41
Twierdzenie o zygzakowaniu W algorytmie najszybszego spadku kolejne kierunki poprawy (gradienty) są do siebie ortogonalne Dowód: Długość kroku α k w równaniu x k+1 = x k α k f(x k ) uzyskuje się znajdując minimum funkcji jednowymiarowej: Pokazaliśmy już, że: g(α) = f (x k α f(x k )) dlatego: dg(α) dα df(x + αv) dα = f(x + αv) v, = f (x k α f(x k )) f(x k ) 21 / 41
Twierdzenie o zygzakowaniu W algorytmie najszybszego spadku kolejne kierunki poprawy (gradienty) są do siebie ortogonalne Dowód: Długość kroku α k w równaniu x k+1 = x k α k f(x k ) uzyskuje się znajdując minimum funkcji jednowymiarowej: Pokazaliśmy już, że: g(α) = f (x k α f(x k )) dlatego: dg(α) dα df(x + αv) dα = f(x + αv) v, = f (x k α f(x k )) f(x k ) Skoro g(α) ma minimum w α k, musimy mieć dg(α) dα = 0 w α = α k. 21 / 41
Twierdzenie o zygzakowaniu W algorytmie najszybszego spadku kolejne kierunki poprawy (gradienty) są do siebie ortogonalne Dowód: Długość kroku α k w równaniu x k+1 = x k α k f(x k ) uzyskuje się znajdując minimum funkcji jednowymiarowej: Pokazaliśmy już, że: g(α) = f (x k α f(x k )) dlatego: dg(α) dα df(x + αv) dα = f(x + αv) v, = f (x k α f(x k )) f(x k ) Skoro g(α) ma minimum w α k, musimy mieć dg(α) dα = 0 w α = α k. Ale: 0 = dg(α) = f(x k+1 ) f(x k ) dα α=αk 21 / 41
Zygzakowanie przykład f(x 1, x 2 ) = x 2 1 + 10x 2 2 2 1 x 3 x 1 x2 0 1 x 2 2 2 0 2 4 6 8 10 x 1 22 / 41
Zygzakowanie przykład f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x2 0 x 3 x 2 1 x 1 2 2 1 0 1 2 x 1 23 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = (x k αg k ) A(x k αg k ) + (x k αg k ) b + c 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 gk Ag k αgk (2Ax k + b) +const }{{} g k 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: g(α) jest f(x) = x funkcją Ax + x kwadratowa: b + c, g(α) = aα 2 + bα + c, dla b = g k 2, a = gk Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli Ag k. Minimum w α = b x k+1 = x k α k g k, gdzie k = argmin 2a = g k 2 2g f(x k Ag k k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const Optymalna długość kroku: α k = g k 2 2g k Ag k 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const Optymalna długość kroku: α k = g k 2 Możemy też wyznaczyć spadek funkcji celu: 2g k Ag k f(x k+1 ) f(x k ) = g(α k ) g(0) = α 2 kg k Ag k α k g k 2 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const Optymalna długość kroku: α k = g k 2 Możemy też wyznaczyć spadek funkcji celu: 2g k Ag k f(x k+1 ) f(x k ) = 1 g k 4 4 gk Ag 1 g k 4 k 2 gk Ag k 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Oznaczmy gradient f(x k ) = 2Ax k + b jako g k, czyli x k+1 = x k α k g k, gdzie α k = argmin f(x k αg k ) α 0 }{{} g(α) g(α) = α 2 g k Ag k α g k 2 + const Optymalna długość kroku: α k = g k 2 Możemy też wyznaczyć spadek funkcji celu: f(x k+1 ) f(x k ) = 1 g k 4 4 gk Ag k 2g k Ag k 24 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : f(x) f(x ) = (x x ) A(x x ) 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : f(x k ) f(x ) = (x k x ) A(x k x ) 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła g k = funkcja 2Ax k + kwadratowa b, a więc z dodatnio określoną macierzą A: x k = 1 2 A 1 g k 1 2f(x) A 1 b = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x x = 1 2 : A 1 b f(x k ) f(x ) = (x k x ) A(x }{{} k x ) }{{} 1 2 A 1 1 g k 2 A 1 g k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : f(x k ) f(x ) = 1 4 (A 1 g k ) AA 1 g k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : f(x k ) f(x ) = 1 4 g k A 1 AA 1 g k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : f(x k ) f(x ) = 1 4 g k A 1 g k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Błąd optymalizacji: różnica między wartością Funkcja ma minimum wfunkcji punkcie celux w = x 1 k a 2 A 1 wartością b optymalną Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: f(x k+1 ) f(x k ) = 1 g k 4 4 gk Ag k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: ( ) ( ) f(x k+1 ) f(x ) f(x k ) f(x ) = 1 g k 4 4 gk Ag k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: E(x k+1 ) E(x k ) = 1 g k 4 4 gk Ag k 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: E(x k+1 ) E(x k ) E(x k ) = g k 4 (g k Ag k)(g k A 1 g k ) 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: E(x k+1 ) E(x k ) = 1 g k 4 (g k Ag k)(g k A 1 g k ) 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: ( g k 4 ) E(x k+1 ) = 1 (gk Ag k)(gk E(x k ) A 1 g k ) 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Wypukła funkcja kwadratowa z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, Funkcja ma minimum w punkcie x = 1 2 A 1 b Biorąc reprezentacje funkcji w postaci wielomianu Taylora drugiego rzędu wokół punktu x : E(x k ) = f(x k ) f(x ) = 1 4 g k A 1 g k Biorąc równanie z poprzedniego slajdu: ( g k 4 ) E(x k+1 ) = 1 (gk Ag k)(gk E(x k ) A 1 g k ) Liniowa zbieżność błędu optymalizacji! 25 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 E(x k+1 ) = ( 1 g k 4 ) (gk Ag k)(gk E(x k ) A 1 g k ) 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 E(x k+1 ) ( 1 4Mm ) (M + m) 2 E(x k ) 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 E(x k+1 ) ( (M + m) 2 ) 4Mm (M + m) 2 E(x k ) 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 E(x k+1 ) ( M 2 + 2Mm + m 2 ) 4Mm (M + m) 2 E(x k ) 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 E(x k+1 ) ( ) M m 2 E(x k ) M + m 26 / 41
Metoda najszybszego spadku dla funkcji kwadratowej Nierówność Kantorowicza: Niech A będzie macierzą dodatnio określoną z najmniejszą i największą wartością własną równą, odpowiednio, m i M. Wtedy dla dowolnego niezerowego wektora x: x 4 4Mm (x Ax)(x A 1 x) (M + m) 2 ( ) M m 2k E(x k+1 ) E(x 1 ) M + m f(x k+1 ) f(x ) β k( ) ( M m f(x 1 ) f(x ), gdzie β = M + m Współczynnik zbieżności liniowej β zależy od największej i najmniejszej wartości własnej macierzy A Dla M m, β jest bliski jedności (bardzo wolna zbieżność!) ) 2 26 / 41
Wskaźnik uwarunkowania Wskaźnikiem uwarunkowania macierzy dodatnio określonej A nazywamy iloraz jej największej i najmniejszej wartości własnej: κ = λ max(a) λ min (A) 27 / 41
Wskaźnik uwarunkowania Wskaźnikiem uwarunkowania macierzy dodatnio określonej A nazywamy iloraz jej największej i najmniejszej wartości własnej: κ = λ max(a) λ min (A) β = ( ) M m 2 M + m 27 / 41
Wskaźnik uwarunkowania Wskaźnikiem uwarunkowania macierzy dodatnio określonej A nazywamy iloraz jej największej i najmniejszej wartości własnej: κ = M m κ = λ max(a) λ min (A) ( M m β = 1 M m + 1 ) 2 27 / 41
Wskaźnik uwarunkowania Wskaźnikiem uwarunkowania macierzy dodatnio określonej A nazywamy iloraz jej największej i najmniejszej wartości własnej: κ = λ max(a) λ min (A) β = ( ) κ 1 2 κ + 1 27 / 41
Wskaźnik uwarunkowania Wskaźnikiem uwarunkowania macierzy dodatnio określonej A nazywamy iloraz jej największej i najmniejszej wartości własnej: κ = λ max(a) λ min (A) Twierdzenie: Dla wypukłej funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, algorytm najszybszego spadku zbiega liniowo ze współczynnikiem zbieżności β zależnym od wskaźnika uwarunkowania κ macierzy A: f(x k+1 ) f(x ) β k( ) f(x 1 ) f(x ), gdzie β = Im większy wskaźnik uwarunkowania κ, tym wolniejsza zbieżność ( ) κ 1 2 κ + 1 27 / 41
Zbieżność algorytmu przykład Rozważmy funkcję dla γ > 1: f(x) = x 2 1 + γx 2 2, x = (x 1, x 2 ), mającą minimum w x = (0, 0) 28 / 41
Rozważmy funkcję dla γ > 1: Zbieżność algorytmu przykład mającą minimum w x = (0, 0) Funkcję możemy przepisać jako: f(x) = x 2 1 + γx 2 2, x = (x 1, x 2 ), f(x) = x Ax, gdzie A = [ ] 1 0 0 γ 28 / 41
Rozważmy funkcję dla γ > 1: Zbieżność algorytmu przykład mającą minimum w x = (0, 0) Funkcję możemy przepisać jako: Wartości własne to (1, γ), a stąd: f(x) = x 2 1 + γx 2 2, x = (x 1, x 2 ), f(x) = x Ax, gdzie A = [ ] 1 0 0 γ κ = γ ( ) γ 1 2 1 = γ, β = γ + 1 28 / 41
Rozważmy funkcję dla γ > 1: Zbieżność algorytmu przykład mającą minimum w x = (0, 0) Funkcję możemy przepisać jako: Wartości własne to (1, γ), a stąd: f(x) = x 2 1 + γx 2 2, x = (x 1, x 2 ), f(x) = x Ax, gdzie A = [ ] 1 0 0 γ κ = γ ( ) γ 1 2 1 = γ, β = γ + 1 Przyglądnijmy się zbieżności algorytmu jeśli rozpoczniemy od rozwiązanie startowego x 1 = (γ, 1). 28 / 41
Przykład f(x 1, x 2 ) = x 2 1 + x 2 2, (γ = 1) 2 1 x 1 x2 0 x 2 1 2 2 1 0 1 2 x 1 29 / 41
Przykład f(x 1, x 2 ) = x 2 1 + 2x 2 2, (γ = 2) 2 1 x 1 x2 0 x 3 x 2 1 2 3 2 1 0 1 2 3 x 1 30 / 41
Przykład f(x 1, x 2 ) = x 2 1 + 5x 2 2, (γ = 5) 2 1 x 1 x 3 x2 0 1 x 2 2 2 1 0 1 2 3 4 5 x 1 31 / 41
Przykład f(x 1, x 2 ) = x 2 1 + 10x 2 2, (γ = 10) 2 1 x 3 x 1 x2 0 1 x 2 2 2 0 2 4 6 8 10 x 1 32 / 41
Zbieżność algorytmu dla funkcji wypukłych Niech f(x) będzie funkcją wypukłą i dwukrotnie różniczkowalną z ciągłymi pochodnymi. Załóżmy, że hesjan 2 f(x ) w minimum x jest dodatnio określony. Wtedy algorytm najszybszego spadku zbiega liniowo (w sensie błędu optymalizacji) ze ciągiem współczynników zbieżności: β k k β = ( ) κ 1 2 κ + 1 gdzie κ jest wskaźnikiem uwarunkowania macierzy 2 f(x ) 33 / 41
Dobór kroku: reguła Armijo (backtracking) Motywacja: Dobór optymalnej długości kroku wymaga rozwiązania problemu optymalizacji jednowymiarowe w każdej iteracji, stąd jest kosztowny obliczeniowo Z kolei stała długość nie gwarantuje nawet obniżenia funkcji celu, wymaga dość precyzyjnego strojenia, aby w ogóle zadziałać Chcemy otrzymać szybką metodę doboru długości kroku, równocześnie gwarantującą istotne obniżenie funkcji celu 34 / 41
Przybliżona minimalizacja Celem jest przybliżona minimalizacja funkcji jednej zmiennej: min g(α), gdzie g(α) = f( x k α f(x k ) ) α 0 35 / 41
Przybliżona minimalizacja Celem jest przybliżona minimalizacja funkcji jednej zmiennej: min g(α), gdzie g(α) = f( x k α f(x k ) ) α 0 Pokazaliśmy wcześniej (twierdzenie o zygzakowaniu), że: g (α) = f(x k α f(x k )) f(x k ), co oznacza, że g (0) = f(x k ) 2 < 0 35 / 41
Przybliżona minimalizacja Celem jest przybliżona minimalizacja funkcji jednej zmiennej: min g(α), gdzie g(α) = f( x k α f(x k ) ) α 0 Pokazaliśmy wcześniej (twierdzenie o zygzakowaniu), że: g (α) = f(x k α f(x k )) f(x k ), co oznacza, że g (0) = f(x k ) 2 < 0 Tym samym funkcja g(α) jest malejąca w okolicy α = 0, więc wzięcie bardzo małego α gwarantuje spadek funkcji, tzn. g(α) < g(0) 35 / 41
Przybliżona minimalizacja Celem jest przybliżona minimalizacja funkcji jednej zmiennej: min g(α), gdzie g(α) = f( x k α f(x k ) ) α 0 Pokazaliśmy wcześniej (twierdzenie o zygzakowaniu), że: g (α) = f(x k α f(x k )) f(x k ), co oznacza, że g (0) = f(x k ) 2 < 0 Tym samym funkcja g(α) jest malejąca w okolicy α = 0, więc wzięcie bardzo małego α gwarantuje spadek funkcji, tzn. g(α) < g(0) Niestety, spadek funkcji będzie wtedy bardzo niewielki, a zbieżność algorytmu bardzo wolna 35 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) g(α) g(0) g(0) + 0.25αg (0) g(0) + 0.5αg (0) g(0) + 0.75αg (0) g(0) + αg (0) α 0 1 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) g(α) g(0) g(0) + 0.25αg (0) g(0) + 0.5αg (0) g(0) + 0.75αg (0) g(0) + αg (0) α 0 1 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) g(α) g(0) g(0) + 0.25αg (0) g(0) + 0.5αg (0) g(0) + 0.75αg (0) g(0) + αg (0) α 0 1 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) g(α) g(0) g(0) + 0.25αg (0) g(0) + 0.5αg (0) g(0) + 0.75αg (0) g(0) + αg (0) α 0 1 36 / 41
Reguła Armijo (backtracking) Rozważmy funkcję g(α) z g (0) < 0. Celem jest znalezienie α > 0, dla którego spadek funkcji względem zera g(0) g(α) jest znaczący Ze wzoru Taylora: g(α) = g(0) + αg (0) + O(α 2 ) g(0) + γαg (0), dla pewnego γ (0, 1) i odpowiednio małych α Szukamy jak największego α spełniającego regułę Armijo: g(α) g(0) + γαg (0), dla ustalonego γ (0, 1) g(α) g(0) g(0) + 0.25αg (0) g(0) + 0.5αg (0) g(0) + 0.75αg (0) g(0) + αg (0) α 0 1 36 / 41
Reguła Armijo (backtracking) Rozpoczynamy od dużej wartości α = α max i redukujemy α mnożąc przez stałą η (0, 1) tak długo, jak długo nie jest spełniona reguła Armijo Wejście: Parametry metody: α max > 0, γ (0, 1) oraz η (0, 1) Inicjalizuj: α = α max Tak długo, jak g(α) > g(0) + γαg (0), powtarzaj α ηα Zwróć długość kroku α 37 / 41
Reguła Armijo (backtracking) Rozpoczynamy od dużej wartości α = α max i redukujemy α mnożąc przez stałą η (0, 1) tak długo, jak długo nie jest spełniona reguła Armijo Wejście: Parametry metody: α max > 0, γ (0, 1) oraz η (0, 1) Inicjalizuj: α = α max Tak długo, jak f(x k α f(x k )) > f(x k ) αγ f(x k ) 2, powtarzaj α ηα Zwróć długość kroku α k = α 37 / 41
Reguła Armijo (backtracking) Rozpoczynamy od dużej wartości α = α max i redukujemy α mnożąc przez stałą η (0, 1) tak długo, jak długo nie jest spełniona reguła Armijo Wejście: Parametry metody: α max > 0, γ (0, 1) oraz η (0, 1) Inicjalizuj: α = α max Tak długo, jak f(x k α f(x k )) > f(x k ) αγ f(x k ) 2, powtarzaj α ηα Zwróć długość kroku α k = α Znalezione α k gwarantuje więc: f(x k ) f(x k+1 ) α k γ f(x k ) 2 Typowe wartości parametrów α max 1 γ [0.01, 0.3] η [0.1, 0.8] (określa dokładność metody, przetarg między jakością rozwiązania a złożonością obliczeniową) 37 / 41
Backtracking dla α max = 1, γ = 0.2, η = 0.75 f(x 1, x 2 ) = x 2 1 + 2x 2 2 1 x 2 0.5 x2 0 x 3 0.5 1 x 1 1 0.5 0 0.5 1 x 1 38 / 41
Dla porównania: algorytm najszybszego spadku f(x 1, x 2 ) = x 2 1 + 2x 2 2 1 0.5 x 2 x2 0 x 3 0.5 1 x 1 1 0.5 0 0.5 1 x 1 39 / 41
Backtracking dla α max = 1, γ = 0.5, η = 0.75 f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x2 0 x 3 x 2 1 x 1 2 2 1 0 1 2 x 1 40 / 41
Dla porównania: algorytm najszybszego spadku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x2 0 x 3 x 2 1 x 1 2 2 1 0 1 2 x 1 41 / 41