Optymalizacja ciągła 5. Metody kierunków poparwy (metoda Newtona-Raphsona, metoda gradientów sprzężonych) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.03.2019 1 / 56
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 (poprzedni wykład) 2. Metoda spadku wzdłuż gradientu (poprzedni wykład) 3. Metoda Newtona-Raphsona 4. Modyfikacje metody Newtona-Rapshona 5. Metoda gradientów sprzężonych 2 / 56
Przypomnienie: metody kierunków poprawy Iteracyjne metody generujące punkty x 1, x 2,... zgodnie z: x k+1 = x k + α k v k, Kierunek v k jest kierunkiem poprawy: gwarantuje, że przy dostatecznie małych α R: f(x k + αv k ) < f(x k ) Równoważnie, pochodna kierunkowa wzdłuż v k musi być ujemna: f(x k ) v k = f(x k ) v k < 0 Długość kroku α k dobierana jest aby zapewnić odpowiednio duży spadek funkcji celu 3 / 56
Metoda Newtona-Raphsona 4 / 56
Przypomnienie: metoda Newtona x k+1 = x k f (x k ) f (x k ) f(x) f(x k ) + f (x k )(x x k ) + f (x k ) 2 (x x k ) 2 x k x k+1 5 / 56
Metoda Newtona-Raphsona Wielowymiarowa wersja metody Newtona Generujemy iteracyjnie ciąg punktów x 1, x 2,... W każdej iteracji k = 1, 2,..., przybliżamy funkcję f(x) wielomianem Taylora drugiego rzędu w aktualnym punkcie x k : P 2 (x; x k ) = f(x k ) + f(x k ) (x x k ) + 1 2 (x x k) 2 f(x k )(x x k ) Założenie: hesjan 2 f(x k ) jest dodatnio określony Jako kolejny punkt x k+1 bierzemy punkt minimalizujący P 2 (x; x k ) 6 / 56
Metoda Newtona-Raphsona Przypomnienie: Minimum funkcji kwadratowej x Ax + b x + c z dodatnio określoną macierzą A ma postać x = 1 2 A 1 b 7 / 56
Metoda Newtona-Raphsona Przypomnienie: Minimum funkcji kwadratowej x Ax + b x + c z dodatnio określoną macierzą A ma postać x = 1 2 A 1 b Wniosek: Minimum funkcji kwadratowej: F (v) = 1 2 v 2 f(x k )v + f(x k ) v + f(x k ) jest w punkcie v = ( 2 f(x k )) 1 f(x k ) 7 / 56
Metoda Newtona-Raphsona Przypomnienie: Minimum funkcji kwadratowej x Ax + b x + c z dodatnio określoną macierzą A ma postać x = 1 2 A 1 b Wniosek: Minimum funkcji kwadratowej: F (v) = 1 2 v 2 f(x k )v + f(x k ) v + f(x k ) jest w punkcie v = ( 2 f(x k )) 1 f(x k ) Wniosek: Biorąc v = x x k, minimum wielomianu: P 2 (x; x k ) = f(x k ) + f(x k ) (x x k ) + 1 2 (x x k) 2 f(x k )(x x k ) jest w punkcie x spełniającym: x x k = ( 2 f(x k )) 1 f(x k ) 7 / 56
Metoda Newtona-Raphsona Przypomnienie: Minimum funkcji kwadratowej x Ax + b x + c z dodatnio określoną macierzą A ma postać x = 1 2 A 1 b Wniosek: Minimum funkcji kwadratowej: F (v) = 1 2 v 2 f(x k )v + f(x k ) v + f(x k ) jest w punkcie v = ( 2 f(x k )) 1 f(x k ) Wniosek: Biorąc v = x x k, minimum wielomianu: P 2 (x; x k ) = f(x k ) + f(x k ) (x x k ) + 1 2 (x x k) 2 f(x k )(x x k ) jest w punkcie x spełniającym: x x k = ( 2 f(x k )) 1 f(x k ) Metoda Newtona-Raphsona: x k+1 = x k ( 2 f(x k )) 1 f(x k ) 7 / 56
Metoda Newtona-Raphsona 2 1 x2 0 1 x 1 2 2 1 0 1 2 x 1 8 / 56
Metoda Newtona-Raphsona 2 1 x2 0 1 x 1 2 2 1 0 1 2 x 1 8 / 56
Metoda Newtona-Raphsona 2 1 x 2 x2 0 1 x 1 2 2 1 0 1 2 x 1 8 / 56
Metoda Newtona-Raphsona Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k ( 2 f(x k )) 1 f(x k ) 9 / 56
Metoda Newtona-Raphsona Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k ( 2 f(x k )) 1 f(x k ) Porównaj z metodą Newtona dla jednej zmiennej: x k+1 = x k f (x k ) f (x k ) 9 / 56
Metoda Newtona-Raphsona Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k ( 2 f(x k )) 1 f(x k ) Porównaj z metodą Newtona dla jednej zmiennej: x k+1 = x k f (x k ) f (x k ) Metoda obliczeniowo wolniejsza od spadku wzdłuż gradientu: wymaga odwrócenia macierzy w każdej iteracji (w praktyce zamiast odwracać macierz rozwiązuje się układ równań liniowych Ax = b z A = 2 f(x k ) i b = f(x k )) 9 / 56
Metoda Newtona-Raphsona Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k ( 2 f(x k )) 1 f(x k ) Porównaj z metodą Newtona dla jednej zmiennej: x k+1 = x k f (x k ) f (x k ) Metoda obliczeniowo wolniejsza od spadku wzdłuż gradientu: wymaga odwrócenia macierzy w każdej iteracji (w praktyce zamiast odwracać macierz rozwiązuje się układ równań liniowych Ax = b z A = 2 f(x k ) i b = f(x k )) Zainicjalizowana dostatecznie blisko minimum zbiega bardzo szybko, ale źle zainicjalizowana może się rozbiec! 9 / 56
Metoda Newtona-Raphsona: przykład 1 0.5 x2 0 x 2 f(x 1, x 2 ) = x 2 1 + 2x 2 2 0.5 1 x 1 1 0.5 0 0.5 1 x 1 10 / 56
Metoda Newtona-Raphsona: przykład 1 0.5 x2 0 x 2 f(x 1, x 2 ) = x 2 1 + 2x 2 2 0.5 1 x 1 1 0.5 0 0.5 1 x 1 Metoda Newtona-Rapshona znajduje minimum funkcji kwadratowej: f(x) = x Ax + b x + c w jednym kroku, niezależnie od punktu inicjalizacji! 10 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 Rozpoczynamy od dowolnego punktu x 1 i wybieramy punkt x 2 jako: x 2 = x 1 ( 2 f(x 1 )) 1 f(x 1 ) 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 Rozpoczynamy od dowolnego punktu x 1 i wybieramy punkt x 2 jako: x 2 = x 1 1 2 A 1 (2Ax 1 + b) 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 Rozpoczynamy od dowolnego punktu x 1 i wybieramy punkt x 2 jako: x 2 = x 1 A } 1 {{ A } x 1 1 2 A 1 b I 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 Rozpoczynamy od dowolnego punktu x 1 i wybieramy punkt x 2 jako: x 2 = x 1 x 1 1 2 A 1 b 11 / 56
Metoda Newtona-Raphsona dla funkcji kwadratowej Rozważmy minimalizację funkcji funkcji kwadratowej z dodatnio określoną macierzą A: f(x) = x Ax + x b + c, f(x) = 2Ax + b, 2 f(x) = 2A, ( 2 f(x)) 1 = 1 2 A 1 Rozpoczynamy od dowolnego punktu x 1 i wybieramy punkt x 2 jako: x 2 = 1 2 A 1 b Ale jest to punkt minimum x funkcji kwadratowej! 11 / 56
Metoda Newtona-Raphsona: przykład f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x 2 x2 0 1 x 1 2 x 3 2 1 0 1 2 x 1 12 / 56
Metoda Newtona-Raphsona: przykład f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2 1 x2 0 1 x 3 2 2 1 0 1 2 x 1 12 / 56
Metoda Newtona-Raphsona jako metoda spadkowa Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + v k, v k = ( 2 f(x k )) 1 f(x k ) Z założenia 2 f(x k ) jest dodatnio określona, czyli ma wszystkie wartości własne dodatnie 13 / 56
Metoda Newtona-Raphsona jako metoda spadkowa Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + v k, v k = ( 2 f(x k )) 1 f(x k ) Z założenia 2 f(x k ) jest dodatnio określona, czyli ma wszystkie wartości własne dodatnie Wtedy ( 2 f(x k )) 1 jest też dodatnio określona, gdyż wartości własne A 1 są odwrotnościami wartości własnych A 13 / 56
Metoda Newtona-Raphsona jako metoda spadkowa Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + v k, v k = ( 2 f(x k )) 1 f(x k ) Z założenia 2 f(x k ) jest dodatnio określona, czyli ma wszystkie wartości własne dodatnie Wtedy ( 2 f(x k )) 1 jest też dodatnio określona, gdyż wartości własne A 1 są odwrotnościami wartości własnych A Czyli x ( 2 f(x k )) 1 x > 0 dla dowolnego niezerowego x 13 / 56
Metoda Newtona-Raphsona jako metoda spadkowa Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + v k, v k = ( 2 f(x k )) 1 f(x k ) Z założenia 2 f(x k ) jest dodatnio określona, czyli ma wszystkie wartości własne dodatnie Wtedy ( 2 f(x k )) 1 jest też dodatnio określona, gdyż wartości własne A 1 są odwrotnościami wartości własnych A Czyli x ( 2 f(x k )) 1 x > 0 dla dowolnego niezerowego x Wniosek: v k = ( 2 f(x k )) 1 f(x k ) jest kierunkiem poprawy f(x k ) v k = f(x k )( 2 f(x k )) 1 f(x k ) < 0 13 / 56
Metoda Newtona-Raphsona jako metoda spadkowa Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + v k, v k = ( 2 f(x k )) 1 f(x k ) Z założenia 2 f(x k ) jest dodatnio określona, czyli ma wszystkie wartości własne dodatnie Wtedy ( 2 f(x k )) 1 jest też dodatnio określona, gdyż wartości własne A 1 są odwrotnościami wartości własnych A Czyli x ( 2 f(x k )) 1 x > 0 dla dowolnego niezerowego x Wniosek: v k = ( 2 f(x k )) 1 f(x k ) jest kierunkiem poprawy f(x k ) v k = f(x k )( 2 f(x k )) 1 f(x k ) < 0 Uwaga: Długość kroku α k jest stała i równa 1 13 / 56
Zbieżność metody Newtona-Raphsona Jeśli funkcja f(x) jest trzykrotnie różniczkowalna w sposób ciągły, algorytm Newtona zainicjalizowany odpowiednio blisko minimum lokalnego x z dodatnio określonym hesjanem 2 f(x ) zbiega z kwadratowym rzędem zbieżności Dowód koncepcyjnie bardzo podobny jak w przypadku jednowymiarowym, ale skomplikowany przez wektorowo-macierzowe przybliżenie Taylora 14 / 56
Zbieżność metody Newtona-Raphsona Jeśli funkcja f(x) jest trzykrotnie różniczkowalna w sposób ciągły, algorytm Newtona zainicjalizowany odpowiednio blisko minimum lokalnego x z dodatnio określonym hesjanem 2 f(x ) zbiega z kwadratowym rzędem zbieżności Dowód koncepcyjnie bardzo podobny jak w przypadku jednowymiarowym, ale skomplikowany przez wektorowo-macierzowe przybliżenie Taylora Źle zainicjalizowana metoda Newtona-Raphsona może się nawet rozbiec! Z tego powodu stosuje się modyfikacje metody, które mają zapobiec problemom ze zbieżnością 14 / 56
Modyfikacje metody Newtona-Raphsona 15 / 56
Zmienna długość kroku (damped Newton-Raphson) Metoda Newtona-Raphsona (oryginalna): Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + α k v k, v k = ( 2 f(x k )) 1 f(x k ), α k = 1 Metoda nie gwarantuje spadku wartości funkcji f(x k+1 ) < f(x k )! 16 / 56
Zmienna długość kroku (damped Newton-Raphson) Metoda Newtona-Raphsona (oryginalna): Rozpocznij od punktu x 1 i powtarzaj dla k = 1, 2,...: x k+1 = x k + α k v k, v k = ( 2 f(x k )) 1 f(x k ), α k = 1 Metoda nie gwarantuje spadku wartości funkcji f(x k+1 ) < f(x k )! Jeśli hesjan 2 f(x k ) jest dodatnio określony, v k jest kierunkiem poprawy i możemy zmodyfikować metodę dobierając α k : optymalnie: α k = argmin α 0 f(x k + α k v k ), za pomocą algorytmu backtracking, co zagwarantuje nam f(x k+1 ) < f(x k ) 16 / 56
Metoda Newtona Raphsona z optymalnym doborem kroku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x 2 x2 0 x 3 1 x 1 2 2 1 0 1 2 x 1 17 / 56
Dla porównania: klasyczna metoda Newtona Raphsona f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 1 x 2 x2 0 1 x 1 2 x 3 2 1 0 1 2 x 1 18 / 56
Metoda Newtona Raphsona z optymalnym doborem kroku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2, x 3, x 4,... 1 x2 0 1 2 2 1 0 1 2 x 1 19 / 56
Metoda Newtona Raphsona z optymalnym doborem kroku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2, x 3, x 4,... 1 x2 0 1 2 2 1 0 1 2 x 1 Dlaczego algorytm utknął w x 2? 19 / 56
x 2 = (0.99, 1.46) f(x 2 ) = (0.77, 2.4) [ ] 2 16.8 9.9 f(x 2 ) = 9.9 5.0 Analiza v 2 = ( 2 (x 2 )) 1 (x 2 ) = ( 1.42, 2.33) f(x 2 ) v 2 = 4.5 > 0 x2 3 2 1 0 v 2 x 2 f(x 2 ) 1 2 1 0 1 2 x 1 20 / 56
x 2 = (0.99, 1.46) f(x 2 ) = (0.77, 2.4) [ ] 2 16.8 9.9 f(x 2 ) = 9.9 5.0 Analiza v 2 = ( 2 (x 2 )) 1 (x 2 ) = ( 1.42, 2.33) f(x 2 ) v 2 = 4.5 > 0 Kierunek v 2 nie jest kierunkiem poprawy x2 3 2 1 0 v 2 x 2 f(x 2 ) 1 2 1 0 1 2 x 1 20 / 56
x 2 = (0.99, 1.46) f(x 2 ) = (0.77, 2.4) [ ] 2 16.8 9.9 f(x 2 ) = 9.9 5.0 Analiza v 2 = ( 2 (x 2 )) 1 (x 2 ) = ( 1.42, 2.33) f(x 2 ) v 2 = 4.5 > 0 Kierunek v 2 nie jest kierunkiem poprawy x2 3 2 1 0 v 2 x 2 f(x 2 ) 1 2 1 0 1 2 Wartości własne hesjanu: (22.4, 0.62) = nie jest dodatnio określony Optymalna długość kroku to α 2 = 0, ponieważ nie możemy polepszyć funkcji celu wzdłuż kierunku v 2 x 1 20 / 56
x 2 = (0.99, 1.46) f(x 2 ) = (0.77, 2.4) [ ] 2 16.8 9.9 f(x 2 ) = 9.9 5.0 Analiza v 2 = ( 2 (x 2 )) 1 (x 2 ) = ( 1.42, 2.33) f(x 2 ) v 2 = 4.5 > 0 Kierunek v 2 nie jest kierunkiem poprawy x2 3 2 1 0 v 2 x 2 f(x 2 ) 1 2 1 0 1 2 Wartości własne hesjanu: (22.4, 0.62) = nie jest dodatnio określony Optymalna długość kroku to α 2 = 0, ponieważ nie możemy polepszyć funkcji celu wzdłuż kierunku v 2 Wniosek: Optymalizacja długości kroku może zawieść, jeśli hesjan nie jest dodatnio określony! x 1 20 / 56
Wartości własne hesjanu Dotychczas zakładaliśmy, że hesjan 2 f(x k ) jest dodatnio określony, czyli ma wszystkie wartości własne dodatnie i stąd jest odwracalny. W praktyce: Nawet dla funkcji wypukłych, hesjan może być tylko dodatnio półokreślony i jedna lub więcej wartości własnych może być równa zero; wtedy odwrotność ( 2 f(x k )) 1 nie istnieje Dla funkcji niewypukłych, wartości własne mogą być ujemne, a wtedy kierunek v k = ( 2 f(x k )) 1 f(x k ) nie musi być już kierunkiem poprawy! 21 / 56
Przykład Rozważmy minimalizację funkcji postaci: f(x) = x 4 1 + x 2 2 x 1 x 2 22 / 56
Przykład Rozważmy minimalizację funkcji postaci: f(x) = x 4 1 + x 2 2 x 1 x 2 f x 1 = 4x 3 1 1, f x 2 = 2x 2 1 22 / 56
Przykład Rozważmy minimalizację funkcji postaci: f(x) = x 4 1 + x 2 2 x 1 x 2 2 f x 2 1 = 12x 2 1, f x 1 = 4x 3 1 1, 2 f x 2 2 = 2, f x 2 = 2x 2 1 2 f x 1 x 2 = 0, 2 f(x) = [ ] 12x 2 1 0 0 2 22 / 56
Przykład Rozważmy minimalizację funkcji postaci: 2 f x 2 1 = 12x 2 1, f(x) = x 4 1 + x 2 2 x 1 x 2 f x 1 = 4x 3 1 1, 2 f x 2 2 = 2, f x 2 = 2x 2 1 2 f x 1 x 2 = 0, 2 f(x) = [ ] 12x 2 1 0 0 2 Ponieważ hesjan w x ma wartości własne (12x 2 1, 2), nieujemne dla dowolnego x 1, jest macierzą dodatnio półokreśloną dla każdego x, a więc f(x) jest funkcją wypukłą 22 / 56
Przykład Rozważmy minimalizację funkcji postaci: 2 f x 2 1 = 12x 2 1, f(x) = x 4 1 + x 2 2 x 1 x 2 f x 1 = 4x 3 1 1, 2 f x 2 2 = 2, f x 2 = 2x 2 1 2 f x 1 x 2 = 0, 2 f(x) = [ ] 12x 2 1 0 0 2 Ponieważ hesjan w x ma wartości własne (12x 2 1, 2), nieujemne dla dowolnego x 1, jest macierzą dodatnio półokreśloną dla każdego x, a więc f(x) jest funkcją wypukłą Rozpoczynając metodę Newtona-Raphsona od x 1 = 0 mamy hesjan: [ ] 2 0 0 f(x 1 ) =, 0 2 o wartościach własnych (0, 2), nie dający się odwrócić! 22 / 56
Rozważmy minimalizację funkcji: Przykład 2 1 f(x) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 f(x) = [ 30x 2 1 10x 2 + 2 ] 10x 1 10x 1 5 x2 0 1 2 2 1 0 1 2 x 1 23 / 56
Rozważmy minimalizację funkcji: Przykład 2 1 f(x) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 f(x) = [ 30x 2 1 10x 2 + 2 ] 10x 1 10x 1 5 x2 0 1 2 2 1 0 1 2 x 1 Rozpoczynając metodę Newtona-Raphsona od x 1 = (0, 0.3) dostajemy: 2 f(x 1 ) = [ ] 1 0 0 5 o wartościach własnych ( 1, 5) 23 / 56
Rozważmy minimalizację funkcji: Przykład 2 1 f(x) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 f(x) = [ 30x 2 1 10x 2 + 2 ] 10x 1 10x 1 5 x2 0 1 2 2 1 0 1 2 x 1 Rozpoczynając metodę Newtona-Raphsona od x 1 = (0, 0.3) dostajemy: 2 f(x 1 ) = [ ] 1 0 0 5 o wartościach własnych ( 1, 5) Wielomian Taylora w x 1 nie jest funkcją wypukłą, a kolejny punkt x 2 jest jego punktem siodłowym, a nie minimum! Kierunek ( 2 f(x 1 )) 1 f(x 1 ) nie jest kierunkiem poprawy! 23 / 56
Przykład f(x) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2, x 1 = (0, 0.3) 2 1 x 1 x2 0 x 2 1 2 2 1 0 1 2 x 1 24 / 56
Przesunięcie wartości własnych Fakt: jeśli symetryczna macierz A ma wartości własne (λ 1,..., λ n ) to macierz A + ɛi ma wartości własne (λ 1 + ɛ,..., λ n + ɛ) 25 / 56
Przesunięcie wartości własnych Fakt: jeśli symetryczna macierz A ma wartości własne (λ 1,..., λ n ) to macierz A + ɛi ma wartości własne (λ 1 + ɛ,..., λ n + ɛ) Dowód: Jeśli v k jest wektorem własnym A z wartością własną λ k : Av k = λ k v k, to v k jest też wektorem własnym A + ɛi z wartością własną λ k + ɛ: (A + ɛi)v k = Av k + ɛiv k = λ k v k + ɛv k = (λ k + ɛ)v k 25 / 56
Przesunięcie wartości własnych Fakt: jeśli symetryczna macierz A ma wartości własne (λ 1,..., λ n ) to macierz A + ɛi ma wartości własne (λ 1 + ɛ,..., λ n + ɛ) Dowód: Jeśli v k jest wektorem własnym A z wartością własną λ k : Av k = λ k v k, to v k jest też wektorem własnym A + ɛi z wartością własną λ k + ɛ: (A + ɛi)v k = Av k + ɛiv k = λ k v k + ɛv k = (λ k + ɛ)v k Wniosek: Przy odpowiednim doborze ɛ, możemy zagwarantować, że wszystkie wartości własne macierzy A + ɛi będą dodatnie (tzn. macierz będzie dodatnio określona 25 / 56
Przykład f(x) = 3x 2 1 8x 1 x 2 + 2x 2 2, x = (x 1, x 2 ) 10 5 0 5 1 0.5 v 2 0.5 v 1 0 0 0.5 0.5 x 2 x 1 1 1 1 26 / 56
f(x) = x Ax, A = Przykład [ ] 3 4, λ 4 2 1 = 6.53, λ 2 = 1.53 10 5 0 5 1 0.5 v 2 1 0.5 v 1 0 0 0.5 0.5 x 2 x 1 1 1 26 / 56
f(x) = x (A + I)x, A + I = Przykład [ ] 4 4, λ 4 3 1 = 7.53, λ 2 = 0.53 15 10 5 0 5 1 0.5 v 2 1 0.5 v 1 0 0 0.5 0.5 x 2 x 1 1 1 27 / 56
Przykład f(x) = x (A + 2I)x, A + 2I = [ ] 5 4, λ 4 4 1 = 8.53, λ 2 = 0.47 15 10 5 0 5 1 0.5 v 2 1 0.5 v 1 0 0 0.5 0.5 x 2 x 1 1 1 28 / 56
Metoda Levenberga-Marquardta W każdej iteracji k = 1, 2,... dodajemy do hesjanu macierz ɛ k I aby zapewnić jego dodatnią określoność: x k+1 = x k + α k v k, v k = ( 2 f(x k ) + ɛ k I) 1 f(x k ) 29 / 56
Metoda Levenberga-Marquardta W każdej iteracji k = 1, 2,... dodajemy do hesjanu macierz ɛ k I aby zapewnić jego dodatnią określoność: x k+1 = x k + α k v k, v k = ( 2 f(x k ) + ɛ k I) 1 f(x k ) Dobór współczynnika ɛ k : Dla funkcji wypukłych wystarczy stała, niewielka wartość ɛ, np. ɛ = 10 5. Długość kroku można dobrać jako α k = 1 (jak w metodzie Newtona-Raphsona) lub optymalizować Dla funkcji niewypukłych, w każdej iteracji trzeba wyznaczyć wartości własne hesjanu i wybrać ɛ k tak, aby wszystkie przesunąć powyżej zera W tym przypadku zaleca się zawsze używanie zmiennej (optymalizowanej) długości kroku α k! 29 / 56
Metoda Levenberga-Marquardta: interpretacja Rozważmy ogólną metodę spadkową postaci x k+1 = x k + α k v k 30 / 56
Metoda Levenberga-Marquardta: interpretacja Rozważmy ogólną metodę spadkową postaci x k+1 = x k + α k v k W metodzie Newtona-Rapshona v k = ( 2 f(x k )) 1 f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji kwadratowej: g(v) = f(x k ) v+ 1 2 v 2 f(x k )v 30 / 56
Metoda Levenberga-Marquardta: interpretacja Rozważmy Minimum ogólną funkcji metodę kwadratowej spadkową x b postaci + 1 2 x Ax x k+1 = x k + α k v k to x = A 1 b W metodzie Newtona-Rapshona v k = ( 2 f(x k )) 1 f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji kwadratowej: g(v) = f(x k ) v+ 1 2 v 2 f(x k )v 30 / 56
Metoda Levenberga-Marquardta: interpretacja Rozważmy ogólną metodę spadkową postaci x k+1 = x k + α k v k W metodzie Newtona-Rapshona v k = ( 2 f(x k )) 1 f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji kwadratowej: g(v) = f(x k ) v+ 1 2 v 2 f(x k )v W metodzie spadku wzdłuż gradientu v k = f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji: g(v) = f(x k ) v + 1 2 v Iv 30 / 56
Metoda Levenberga-Marquardta: interpretacja Rozważmy ogólną metodę spadkową postaci x k+1 = x k + α k v k W metodzie Newtona-Rapshona v k = ( 2 f(x k )) 1 f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji kwadratowej: g(v) = f(x k ) v+ 1 2 v 2 f(x k )v W metodzie spadku wzdłuż gradientu v k = f(x k ) możemy przedstawić jako rozwiązanie problemu minimalizacji funkcji: g(v) = f(x k ) v + 1 2 v Iv Metoda Levenberga-Marquardta jest interpolacją obu metod dobierając kierunek spadku jako rozwiązanie problemu minimalizacji funkcji: g(v) = f(x k ) v + 1 ) 2 v ( ɛ k I + 2 f(x k ) v Jest to szczególny przypadek metod quasi-newtonowskich, gdzie w funkcji kwadratowej dobiera się dowolną macierz dodatnio określoną A k 30 / 56
Metoda Newtona Raphsona z optymalnym doborem kroku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2, x 3, x 4,... 1 x2 0 1 2 2 1 0 1 2 x 1 31 / 56
M. Levenberga-Marquardta z optymalnym doborem kroku f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2 1 x2 0 x 3 1 2 2 1 0 1 2 x 1 32 / 56
Dla porównania: klasyczna metoda Newtona Raphsona f(x 1, x 2 ) = 2.5(x 2 1 x 2 ) 2 + (1 x 1 ) 2 2 x 1 x 2 1 x2 0 1 x 3 2 2 1 0 1 2 x 1 33 / 56
Podsumowanie Dwie modyfikacje: 1. Optymalizacja długości kroku α k 2. Zapewnienie dodatniej określoności hesjanu (Levenberg-Marquardt) 34 / 56
Podsumowanie Dwie modyfikacje: 1. Optymalizacja długości kroku α k 2. Zapewnienie dodatniej określoności hesjanu (Levenberg-Marquardt) Jeśli stosujemy (1), powinniśmy również stosować (2), inaczej algorytm może się zatrzymać w nieoptymalnym rozwiązaniu! 34 / 56
Podsumowanie Dwie modyfikacje: 1. Optymalizacja długości kroku α k 2. Zapewnienie dodatniej określoności hesjanu (Levenberg-Marquardt) Jeśli stosujemy (1), powinniśmy również stosować (2), inaczej algorytm może się zatrzymać w nieoptymalnym rozwiązaniu! Optymalizacja długości kroku zapewnia zbieżność algortymu, ale niekoniecznie polepsza szybkość jego działania, a równocześnie zwiększa złożoność obliczeniową 34 / 56
Podsumowanie Dwie modyfikacje: 1. Optymalizacja długości kroku α k 2. Zapewnienie dodatniej określoności hesjanu (Levenberg-Marquardt) Jeśli stosujemy (1), powinniśmy również stosować (2), inaczej algorytm może się zatrzymać w nieoptymalnym rozwiązaniu! Optymalizacja długości kroku zapewnia zbieżność algortymu, ale niekoniecznie polepsza szybkość jego działania, a równocześnie zwiększa złożoność obliczeniową Dobry kompromis: Stosuj klasyczną metodę Newtona-Raphsona (z α k = 1), ale jeśli jej krok nie daje spadku funkcji celu (lub hesjan jest nieodwracalny), zastosuj krok Levenberga-Marquardta z optymalizacją α k. 34 / 56
Metoda gradientów sprzężonych 35 / 56
Przypomnienie z algebry: baza przestrzeni wektorowej Zbiór wektorów {v 1,..., v m } nazywamy liniowo niezależnym, jeśli żaden wektor z tego zbioru nie da się przedstawić w postaci kombinacji liniowej pozostałych W przestrzeni R n zbiór wektorów liniowo niezależnych może składać się maksymalnie z n wektorów, i zbiór taki nazywamy bazą przestrzeni wektorowej Wniosek: Jeśli {v 1,..., v n } jest bazą to dowolny inny wektor x R n musi być kombinacją liniową wektorów z bazy, tzn. dla pewnych współczynników c 1,..., c n R n x = c k v k k=1 36 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą Dowód: Wystarczy pokazać ich liniową niezależność. Załóżmy przeciwnie, że istnieje wektor v k liniowo zależny od pozostałych, tzn. v k = i k α i v i 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą Dowód: Wystarczy pokazać ich liniową niezależność. Załóżmy przeciwnie, że istnieje wektor v k liniowo zależny od pozostałych, tzn. v k = i k α i v i Ale oznacza to, że: Av k = i k α i Av i 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą Dowód: Wystarczy pokazać ich liniową niezależność. Załóżmy przeciwnie, że istnieje wektor v k liniowo zależny od pozostałych, tzn. v k = i k α i v i Ale oznacza to, że: v k Av k = i k α i v k Av i 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą Dowód: Wystarczy pokazać ich liniową niezależność. Załóżmy przeciwnie, że istnieje wektor v k liniowo zależny od pozostałych, tzn. v k = i k α i v i Ale oznacza to, że: v k Av k = i k α i v k Av i }{{} =0 37 / 56
Wektory sprzężone Niech A będzie macierzą dodatnio określoną Zbiór niezerowych wektorów {v 1,..., v n } nazywamy sprzężonymi (ze względu na macierz A), jeśli v i Av j = 0, dla dowolnych i j Fakt: Zbiór wektorów sprzężonych jest bazą Dowód: Wystarczy pokazać ich liniową niezależność. Załóżmy przeciwnie, że istnieje wektor v k liniowo zależny od pozostałych, tzn. v k = i k α i v i Ale oznacza to, że: v k Av k = 0 co prowadzi do sprzeczności, ponieważ A jest dodatnio określona, a v k jest niezerowy, więc v k Av k > 0 37 / 56
Funkcja kwadratowa Będziemy rozważali minimalizację funkcji kwadratowej: f(x) = 1 2 x Ax x b, A dodatnio określona Pomijamy współczynnik c (nie wpływa na optymalizację) Pozostałe współczynniki dobieramy w ten sposób, aby: f(x) = 0 Ax = b, tzn. minimum x = A 1 b jest rozwiązaniem układu równań Ax = b 38 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) i=1 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) i=1 g(α) = 1 2 (x k + αv k ) A(x k + αv k ) (x k + αv k ) b 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) i=1 g(α) = α2 2 v k Av k + α ( v k Ax k v k b ) + const 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, gradient: Ax k b = f(x k ) i=1 natomiast współczynniki oznaczamyα przez k wyznaczamy g k rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) g(α) = α2 2 v k Av k + αvk ( Axk b ) + const 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) g(α) = α2 2 v k Av k + αv k g k + const i=1 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) g (α) = αv k Av k + v k g k i=1 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) g (α) = 0 αv k Av k = v k g k i=1 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) α k = v k g k v k Av k i=1 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) α k = v k g k v k Av k i=1 = v k (Ax k b) v k Av k 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = v k g k v k Av k α k = argmin f(x k + α k v k ) α }{{} g(α) i=1 = v k (Ax k Ax 1 + Ax 1 b) v k Av k 39 / 56
Metoda gradientów sprzężonych: wprowadzenie k 1 f(x) = 1 Ponieważ x k x 1 = 2 x Ax α i v i, xotrzymujemy b, A dodatnio określona i=1 Niech {v 1,..., v n } będzie k 1 zbiorem wektorów sprzężonych ze względu na A v k A(x k x 1 ) = α i vk Av i = 0 Będziemy rozważali metodę } spadkową {{} minimalizacji funkcji kwadratowej, i=1 =0 w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = v k g k v k Av k α k = argmin f(x k + α k v k ) α }{{} g(α) i=1 = v k (Ax 1 b) + v k A(x k x 1 ) v k Av k 39 / 56
Metoda gradientów sprzężonych: wprowadzenie f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } będzie zbiorem wektorów sprzężonych ze względu na A Będziemy rozważali metodę spadkową minimalizacji funkcji kwadratowej, w której kolejne kierunki poprawy to kolejne wektory sprzężone, tzn.: k x k+1 = x k + α k v k, tzn. x k+1 = x 1 + α i v i, natomiast współczynniki α k wyznaczamy rozwiązując: α k = argmin f(x k + α k v k ) α }{{} g(α) α k = v k g k v k Av k = v k (b Ax 1) v k Av k Optymalna wartość α k zależy tylko od punktu startowego x 1! Możemy wyznaczyć α k niezależne od pozostałych współczynników i wcześniejszych kroków algorytmu 39 / 56 i=1
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i Wyznaczmy optymalne współczynniki α k i=1 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i i=1 Wyznaczmy optymalne współczynniki α k n Ax Ax 1 = α i Av i i=1 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i i=1 Wyznaczmy optymalne współczynniki α k n b Ax 1 = α i Av i i=1 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i i=1 Wyznaczmy optymalne współczynniki α k n vk (b Ax 1 ) = α k vk Av i }{{} i=1 =0 dla k i 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i i=1 Wyznaczmy optymalne współczynniki α k vk (b Ax 1 ) = α k vk Av k 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i Wyznaczmy optymalne współczynniki α k i=1 α k = v k (b Ax 1) vk Av, k 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i Wyznaczmy optymalne współczynniki α k α k = v k (b Ax 1) vk Av, k Ale są to te same współczynniki, które dobiera w kolejnych krokach metoda gradientów sprzężonych, tzn. n x n+1 = x 1 + α k v k = x k=1 i=1 40 / 56
Funkcja kwadratowa a wektory sprzężone f(x) = 1 2 x Ax x b, A dodatnio określona Niech {v 1,..., v n } zbiór wektorów sprzężonych. Ponieważ jest to baza, n x x 1 = α i v i Wyznaczmy optymalne współczynniki α k α k = v k (b Ax 1) vk Av, k Ale są to te same współczynniki, które dobiera w kolejnych krokach metoda gradientów sprzężonych, tzn. n x n+1 = x 1 + α k v k = x Wniosek: Metoda gradientów sprzężonych w każdym kroku optymalnie dobiera współczynnik α k, a rozwiązanie x otrzymujemy po n iteracjach! k=1 i=1 40 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. v i g k = 0, dla i = 1,..., k 1 41 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. Dowód: v i g k = 0, dla i = 1,..., k 1 v i g k = v i (Ax k b) 41 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. Dowód: v i g k = 0, dla i = 1,..., k 1 vi g k = vi (Ax k b) ( = vi Ax 1 + A ( k 1 j=1 ) ) α j v j b 41 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. Dowód: v i g k = 0, dla i = 1,..., k 1 vi g k = vi (Ax k b) ( = vi Ax 1 + A ( k 1 j=1 k 1 = vi (Ax 1 b) + α j j=1 ) ) α j v j b v i Av j }{{} =0 dla i j 41 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. Dowód: v i g k = 0, dla i = 1,..., k 1 vi g k = vi (Ax k b) ( = vi Ax 1 + A ( k 1 j=1 k 1 = vi (Ax 1 b) + α j j=1 ) ) α j v j b = v i (Ax 1 b) + α i v i Av i v i Av j }{{} =0 dla i j 41 / 56
Ortogonalność gradientów Gradient w danej iteracji g k = f(x k ) jest ortogonalny do wszystkich poprzednich kierunków poprawy v 1,..., v k 1, tzn. Dowód: v i g k = 0, dla i = 1,..., k 1 vi g k = vi (Ax k b) ( = vi Ax 1 + A ( k 1 j=1 k 1 = vi (Ax 1 b) + α j j=1 ) ) α j v j b = v i (Ax 1 b) + α i v i Av i v i Av j }{{} =0 dla i j = vi (Ax 1 b) + v i (b Ax 1) vi Av vi Av i = 0 i 41 / 56
Jak znaleźć kierunki sprzężone? 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: v k+1 = k g k+1 + β k,i v i i=1 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: Av k+1 = k Ag k+1 + β k,i Av i i=1 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: vj Av k+1 = k vj Ag k+1 + β k,i vj Av i i=1 }{{} =0 dla j i 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: v j Av k+1 }{{} =0 = v j Ag k+1 + β k,j v j Av j 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: v j Ag k+1 = β k,j v j Av j 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: β k,j = v j Ag k+1 v j Av j 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: β k,j = g k+1 Av j v j Av j Problem: w danej iteracji trzeba wyznaczyć k współczynników β k,1,..., β k,k i zapamiętać poprzednie kierunku poprawy v 1,..., v k 42 / 56
Jak znaleźć kierunki sprzężone? Jako pierwszy kierunek sprzężony możemy obrać negatywny gradient: v 1 = f(x 1 ) = g 1 Załóżmy, że dobraliśmy już kierunki sprzężone v 1,..., v k i chcemy dobrać kierunek v k+1. Ponownie, sensownym kandydatem jest g k+1, ale niekoniecznie jest on sprzężony do {v 1,..., v k } Pomysł: dodajmy do gradientu kombinację liniową poprzednich kierunków aby stał się sprzężony, tzn. aby v j Av k+1 = 0 dla j k v k+1 = k g k+1 + β k,i v i i=1 Wyznaczmy te współczynniki: β k,j = g k+1 Av j v j Av j Problem: Magia w danej gradientów iteracji trzeba sprzężonych: wyznaczyć k współczynników β k,1,..., Zachodzi β k,k i zapamiętać β k,j = 0 dla poprzednie j = 1,.. kierunku., k 1, czyli poprawy pozostaje v 1,..., v k tylko jeden niezerowy współczynnik β k,k 42 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Najpierw pokazujemy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1g j = 0, dla j = 1,..., k 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Najpierw pokazujemy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1g j = 0, dla j = 1,..., k Pokazaliśmy już, że gradient jest ortogonalny do poprzednich kierunków poprawy, tzn. dla j k mamy g k+1 v j = 0 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Najpierw pokazujemy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1g j = 0, dla j = 1,..., k Pokazaliśmy już, że gradient jest ortogonalny do poprzednich kierunków poprawy, tzn. dla j k mamy g k+1 v j = 0 Z zasady doboru kierunku poprawy: j 1 j 1 v j = g j + β j 1,i v i = g j = v j + β j 1,i v i i=1 i=1 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Najpierw pokazujemy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1g j = 0, dla j = 1,..., k Pokazaliśmy już, że gradient jest ortogonalny do poprzednich kierunków poprawy, tzn. dla j k mamy g k+1 v j = 0 Z zasady doboru kierunku poprawy: j 1 j 1 v j = g j + β j 1,i v i = g j = v j + β j 1,i v i i=1 i=1 Czyli dla j k: gk+1g j = gk+1v j }{{} =0 j 1 + i=1 β j 1,i g k+1v i }{{} =0 = 0 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Pokazaliśmy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1 g j = 0 dla j = 1,..., k 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Pokazaliśmy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1 g j = 0 dla j = 1,..., k Teraz wykorzystamy fakt, że: g k+1 = Ax k+1 b = A(x k + α k v k ) b = Ax k b }{{} =g k +Aα k v k, 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Pokazaliśmy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1 g j = 0 dla j = 1,..., k Teraz wykorzystamy fakt, że: g k+1 = Ax k+1 b = A(x k + α k v k ) b = Ax k b }{{} =g k +Aα k v k, Jeśli α k = 0, to g k+1 = g k, a ponieważ g k+1 g k = 0, wnioskujemy, że g k+1 = f(x k+1 ) = 0, czyli jesteśmy w optimum. 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Pokazaliśmy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1 g j = 0 dla j = 1,..., k Teraz wykorzystamy fakt, że: g k+1 = Ax k+1 b = A(x k + α k v k ) b = Ax k b }{{} =g k +Aα k v k, Jeśli α k = 0, to g k+1 = g k, a ponieważ g k+1 g k = 0, wnioskujemy, że g k+1 = f(x k+1 ) = 0, czyli jesteśmy w optimum. Jeśli α k 0, mamy: Av k = 1 α k (g k+1 g k ) 43 / 56
Kluczowy punkt konstrukcji algorytmu Zachodzi g k+1 Av j = 0 dla j = 1,..., k 1 Dowód: Pokazaliśmy, że gradient g k+1 jest ortogonalny do wszystkich poprzednich gradientów, tzn. g k+1 g j = 0 dla j = 1,..., k Teraz wykorzystamy fakt, że: g k+1 = Ax k+1 b = A(x k + α k v k ) b = Ax k b }{{} =g k +Aα k v k, Jeśli α k = 0, to g k+1 = g k, a ponieważ g k+1 g k = 0, wnioskujemy, że g k+1 = f(x k+1 ) = 0, czyli jesteśmy w optimum. Jeśli α k 0, mamy: Av k = 1 α k (g k+1 g k ) Stąd otrzymujemy dla j k 1: gk+1av j = 1 g α k+1(g j+1 g j ) = 1 ( g k α k+1g j+1 gk+1g j k }{{}}{{} =0 =0 ) = 0 43 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : α k = v k g k v k Av k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można Zgodnie otrzymać z v k = jako: g k + β k 1 v k 1 v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : α k = (g k β k 1 v k 1 ) g k v k Av k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone gradient {vortogonalny 1,..., v n } można do poprzednich otrzymaćkierunków: jako: v 1 = gv 1 j g k = 0 dla j < k v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : α k = g k g k β k 1 v k 1 g k v k Av k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : α k = g k g k v k Av k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 Av k v k Av k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 (α kav k ) v k (α kav k ) 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: W dowodzie v 1 = na gpoprzednim 1 slajdzie pokazaliśmy, że: v k+1 = g α k+1 + β k v k, β = g k+1 Av k Av k = g k+1 g k k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 (α kav k ) v k (α kav k ) 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 (g k+1 g k ) v k (g k+1 g k ) 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: gradient v 1 = ortogonalny g 1 do poprzednich gradientów: g v k+1 = g k+1 + β k v k, β k = g k+1 Av k+1 g j = 0 dla j k k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 g k+1 g k+1 g k v k g k+1 v k g k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k gradient ortogonalny do poprzednich kierunków: vk Av, k vj Uwaga: Zwykle stosuje się inną g k+1 = 0 dla j k postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 g k+1 v k g k+1 v k g k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 Pokazaliśmy przy przekształceniu α k, że v k+1 = g k+1 + β k v k, β v k = g k+1 Av k g vk k = g Av k, g k k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 g k+1 v k g k 44 / 56
Dobór kierunków sprzężonych Wniosek: W algorytmie gradientów sprzężonych: x k+1 = x k + α k v k, α k = v k g k v k Av k kierunki sprzężone {v 1,..., v n } można otrzymać jako: v 1 = g 1 v k+1 = g k+1 + β k v k, β k = g k+1 Av k vk Av, k Uwaga: Zwykle stosuje się inną postać współczynników α k : Podobnie, dla współczynnika β k : α k = g k g k v k Av k β k = g k+1 g k+1 g k g k 44 / 56