Optymalizacja ciągła

Podobne dokumenty
Optymalizacja ciągła

Optymalizacja ciągła

Optymalizacja ciągła

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Metody numeryczne I Równania nieliniowe

KADD Minimalizacja funkcji

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

1 Pochodne wyższych rzędów

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Iteracyjne rozwiązywanie równań

KADD Minimalizacja funkcji

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Rozwiązywanie równań nieliniowych

Metody numeryczne. Równania nieliniowe. Janusz Szwabiński.

ANALIZA MATEMATYCZNA Z ELEMENTAMI STATYSTYKI MATEMATYCZNEJ

Wstęp do metod numerycznych 11. Minimalizacja: funkcje wielu zmiennych. P. F. Góra

Funkcje wielu zmiennych

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

II. FUNKCJE WIELU ZMIENNYCH

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Pochodne funkcji wraz z zastosowaniami - teoria

Metody systemowe i decyzyjne w informatyce

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Metody Optymalizacji: Przeszukiwanie z listą tabu

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Optymalizacja (minimalizacja) funkcji. Plan wykładu: 1. Sformułowanie problemu, funkcja celu. 2. Metody bezgradientowe

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Definicja pochodnej cząstkowej

1 Równania nieliniowe

RÓWNANIA NIELINIOWE Maciej Patan

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

Informacja o przestrzeniach Sobolewa

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

5. Metody Newtona. 5.1 Wzór Taylora

Pochodna funkcji. Pochodna funkcji w punkcie. Różniczka funkcji i obliczenia przybliżone. Zastosowania pochodnych. Badanie funkcji.

Wstęp do metod numerycznych 12. Minimalizacja: funkcje wielu zmiennych. P. F. Góra

2. ZASTOSOWANIA POCHODNYCH. (a) f(x) = ln 3 x ln x, (b) f(x) = e2x x 2 2.

Techniki Optymalizacji: Optymalizacja wypukła

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

Lokalna odwracalność odwzorowań, odwzorowania uwikłane

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

5. Metody stochastyczne (symulowane wyżarzanie, algorytmy genetyczne) -> metody Monte Carlo

1 Funkcje dwóch zmiennych podstawowe pojęcia

Przegląd metod optymalizacji wielowymiarowej. Funkcja testowa. Funkcja testowa. Notes. Notes. Notes. Notes. Tomasz M. Gwizdałła

Zaawansowane metody numeryczne

2. Definicja pochodnej w R n

Matematyka dyskretna dla informatyków

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

Wykład 3 Równania rózniczkowe cd

Układy równań i równania wyższych rzędów

Programowanie nieliniowe. Badania operacyjne Wykład 3 Metoda Lagrange a

Matematyka stosowana i metody numeryczne

1 Wartości własne oraz wektory własne macierzy

Metoda gradientu prostego

Funkcje dwóch zmiennych

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

3. Funkcje wielu zmiennych

3. FUNKCJA LINIOWA. gdzie ; ół,.

Notatki z Analizy Matematycznej 3. Jacek M. Jędrzejewski

Wykład 4 Przebieg zmienności funkcji. Badanie dziedziny oraz wyznaczanie granic funkcji poznaliśmy na poprzednich wykładach.

Funkcje analityczne. Wykład 3. Funkcje holomorficzne. Paweł Mleczko. Funkcje analityczne (rok akademicki 2016/2017) z = x + iy A

1.3. Optymalizacja geometrii czasteczki

13. Funkcje wielu zmiennych pochodne, gradient, Jacobian, ekstrema lokalne.

3. Metoda najszybszego spadku

Obliczenia naukowe Wykład nr 2

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Metody optymalizacji. notatki dla studentów matematyki semestr zimowy 2015/2016

Zastosowania pochodnych

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Wykład z równań różnicowych

Metoda mnożników Lagrange a i jej zastosowania w ekonomii

Ważną rolę odgrywają tzw. funkcje harmoniczne. Przyjmujemy następującą definicję. u = 0, (6.1) jest operatorem Laplace a. (x,y)

Przykładowe zadania z teorii liczb

Rachunek Różniczkowy

Wykład 14 i 15. Równania różniczkowe. Równanie o zmiennych rozdzielonych. Definicja 1. Równaniem różniczkowym zwyczajnym rzędu n nazywamy równanie

Metody systemowe i decyzyjne w informatyce

5. Rozwiązywanie układów równań liniowych

Funkcje charakterystyczne zmiennych losowych, linie regresji 1-go i 2-go rodzaju

1.1 Przegląd wybranych równań i modeli fizycznych. , u x1 x 2

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Równanie przewodnictwa cieplnego (I)

Elementy metod numerycznych

Metoda Karusha-Kuhna-Tuckera

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Metoda mnożników Lagrange a i jej zastosowania w ekonomii

1. Pochodna funkcji. Twierdzenie Rolle a i twierdzenie Lagrange a.

Funkcja jednej zmiennej - przykładowe rozwiązania 1. Badając przebieg zmienności funkcji postępujemy według poniższego schematu:

Bardzo łatwa lista powtórkowa

Wykład 16. P 2 (x 2, y 2 ) P 1 (x 1, y 1 ) OX. Odległość tych punktów wyraża się wzorem: P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Transkrypt:

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