Metoda quasi-Newtona - Quasi-Newton method

Metody quasi-Newtona to metody używane do znajdowania zer lub lokalnych maksimów i minimów funkcji, jako alternatywa dla metody Newtona. Można ich użyć, jeśli jakobian lub hes jest niedostępny lub jest zbyt drogi do obliczenia w każdej iteracji. Metoda „pełnego” Newtona wymaga jakobianu do wyszukiwania zer lub heskiego do znajdowania ekstremów.

Szukaj zer: znajdowanie korzeni

Metoda Newtona znaleźć zerowych funkcji wielu zmiennych określał , gdzie jest lewa odwrotny od Jacobiego matrycy z oceniano .

Ściśle mówiąc, każda metoda, która zastępuje dokładny jakobian przybliżeniem, jest metodą quasi-Newtona. Na przykład, prostym przykładem jest metoda akordów (gdzie jest zastępowana przez dla wszystkich iteracji). Podane poniżej metody optymalizacji odnoszą się do ważnej podklasy metod quasi-Newtonowych, czyli metod siecznych.

Korzystanie z metod opracowanych do znajdowania ekstremów w celu znalezienia zer nie zawsze jest dobrym pomysłem, ponieważ większość metod używanych do znajdowania ekstremów wymaga, aby użyta macierz była symetryczna. Chociaż obowiązuje to w kontekście wyszukiwania ekstremów, rzadko sprawdza się podczas wyszukiwania zer. „Dobra” i „zła” metoda Broydena to dwie metody powszechnie używane do znajdowania ekstremów, które można również zastosować do znalezienia zer. Inne metody, które mogą być stosowane są metody kolumny aktualizacji The odwrotny sposób kolumny aktualizacji The quasi-Newtona metodą najmniejszych kwadratów , a pseudo-Newtona odwrotną metodą najmniejszych kwadratów .

Ostatnio metody quasi-Newtona zostały zastosowane do znalezienia rozwiązania wielu sprzężonych układów równań (np. problemy interakcji płyn-struktura lub problemy interakcji w fizyce). Pozwalają one na znalezienie rozwiązania, rozwiązując każdy system składowy oddzielnie (co jest prostsze niż system globalny) w sposób cykliczny, iteracyjny, aż do znalezienia rozwiązania systemu globalnego.

Szukaj ekstremów: optymalizacja

Poszukiwanie minimum lub maksimum funkcji o wartościach skalarnych to nic innego jak poszukiwanie zer gradientu tej funkcji. Dlatego metody quasi-Newtona można łatwo zastosować do znalezienia ekstremów funkcji. Innymi słowy, jeśli jest gradientem , to poszukiwanie zer funkcji o wartościach wektorowych odpowiada poszukiwaniu ekstremów funkcji o wartościach skalarnych ; jakobian z teraźniejszości staje się Heskim z . Główna różnica polega na tym, że macierz Hesja jest macierzą symetryczną , w przeciwieństwie do jakobianu przy wyszukiwaniu zer . Większość metod quasi-Newtonowych stosowanych w optymalizacji wykorzystuje tę właściwość.

W optymalizacji , metody quasi-Newtona (szczególny przypadek metody zmiennej metryki ) są algorytmy dla znalezienia lokalnego minimum i maksimum z funkcji . Metody quasi-Newtona opierają się na metodzie Newtona w celu znalezienia punktu stacjonarnego funkcji, gdzie gradient wynosi 0. Metoda Newtona zakłada, że ​​funkcja może być lokalnie aproksymowana jako kwadratowa w obszarze wokół optimum i wykorzystuje pierwszą i drugą pochodne, aby znaleźć punkt stacjonarny. W wyższych wymiarach metoda Newtona wykorzystuje gradient i macierz Hessian drugich pochodnych funkcji do zminimalizowania.

W metodach quasi-Newtonowych nie ma potrzeby obliczania macierzy Hessów. Hessian jest aktualizowany poprzez analizę kolejnych wektorów gradientu. Metody quasi-Newtona są uogólnieniem metody siecznych w celu znalezienia pierwiastka pierwszej pochodnej dla problemów wielowymiarowych. W wielu wymiarach równanie siecznych jest niedostatecznie określone , a metody quasi-Newtona różnią się sposobem, w jaki ograniczają rozwiązanie, zazwyczaj przez dodanie prostej aktualizacji niskiego rzędu do bieżącego oszacowania hessu.

Pierwszy algorytm quasi-Newtona został zaproponowany przez Williama C. Davidona , fizyka pracującego w Argonne National Laboratory . W 1959 r. opracował pierwszy algorytm quasi-Newtona: formułę aktualizacji DFP , która została później spopularyzowana przez Fletchera i Powella w 1963 r., ale jest obecnie rzadko używana. Najpopularniejszymi algorytmami quasi-Newtona są obecnie formuła SR1 (dla „symetrycznej rangi jeden”), metoda BHHH , rozpowszechniona metoda BFGS (sugerowana niezależnie przez Broydena, Fletchera, Goldfarba i Shanno w 1970 r.) oraz jej niski -rozszerzenie pamięci L-BFGS . Klasa Broydena jest liniową kombinacją metod DFP i BFGS.

Formuła SR1 nie gwarantuje, że macierz aktualizacji zachowa dodatnią jednoznaczność i może być używana do rozwiązywania nieokreślonych problemów. Metoda Broydena nie wymaga, aby macierz aktualizacji była symetryczna i służy do znalezienia pierwiastka ogólnego układu równań (zamiast gradientu) poprzez aktualizację jakobianu (zamiast heskiego).

Jedną z głównych zalet metod quasi-Newtona nad metodą Newtona jest to, że macierz Hess (lub w przypadku metod quasi-Newtona jej aproksymacja) nie musi być odwracana. Metoda Newtona i jej pochodne, takie jak metody punktów wewnętrznych , wymagają odwrócenia hesjanu, co jest zwykle realizowane przez rozwiązywanie układu równań liniowych i często jest dość kosztowne. W przeciwieństwie do tego, metody quasi-Newtona zwykle generują oszacowanie bezpośrednio.

Podobnie jak w metodzie Newtona , do znalezienia minimum funkcji używa się przybliżenia drugiego rzędu . Szereg Taylora z wokół iterate jest

gdzie ( ) jest gradientem i przybliżeniem do macierzy Hess . Gradient tego przybliżenia (w odniesieniu do ) wynosi

a ustawienie tego gradientu na zero (co jest celem optymalizacji) zapewnia krok Newtona:

Przybliżenie Hess jest wybrane, aby spełnić

które nazywa się siecznym równaniem (seria Taylora samego gradientu). W więcej niż jednym wymiarze jest niedookreślony . W jednym wymiarze rozwiązanie i zastosowanie kroku Newtona ze zaktualizowaną wartością jest równoważne z metodą siecznych . Różne metody quasi-Newtona różnią się doborem rozwiązania równania siecznych (w jednym wymiarze wszystkie warianty są równoważne). Większość metod (ale z wyjątkami, takimi jak metoda Broydena ) poszukuje rozwiązania symetrycznego ( ); ponadto, warianty wymienione poniżej mogą być motywowane znalezieniem aktualizacji, która jest jak najbardziej zbliżona do jakiejś normy ; czyli , gdzie jest pewną dodatnio określoną macierzą, która definiuje normę. Przybliżona wartość początkowa jest często wystarczająca do osiągnięcia szybkiej konwergencji, chociaż nie ma ogólnej strategii do wyboru . Zauważ, że powinno być dodatnio-definitywne. Nieznana jest aktualizowana przy zastosowaniu kroku Newtona obliczonego przy użyciu aktualnej przybliżonej macierzy Hess :

  • , z wybranymi do spełnienia warunków Wolfe ;
  • ;
  • Gradient obliczony w nowym punkcie i

służy do aktualizacji przybliżonej wartości Hessian lub bezpośrednio jej odwrotności za pomocą wzoru Shermana-Morrisona .

  • Kluczową właściwością aktualizacji BFGS i DFP jest to, że jeśli jest określony dodatnio i zostanie wybrany w celu spełnienia warunków Wolfe'a, to również jest określony dodatnio.

Najpopularniejsze formuły aktualizacji to:

metoda
BFG
Broyden
Rodzina Broydenów
DFP
SR1

Inne metody to metoda Pearsona, metoda McCormicka, symetryczna metoda Broydena (PSB) Powella oraz metoda Greenstadta.

Związek z inwersją macierzy

Gdy jest wypukłą funkcją kwadratową z dodatnio-określoną funkcją Hessian , można by oczekiwać, że macierze wygenerowane metodą quasi-Newtona będą zbieżne do odwrotności Hessian . Tak jest w przypadku klasy metod quasi-Newtonowskich opartych na aktualizacjach o najmniejszej zmianie.

Wybitne wdrożenia

Implementacje metod quasi-Newtonowych są dostępne w wielu językach programowania. Godne uwagi implementacje obejmują:

  • Mathematica zawiera solwery quasi-Newtona.
  • NAG biblioteka zawiera liczne procedury w celu zminimalizowania lub maksymalizacji funkcji, które wykorzystują algorytmy quasi Newtona.
  • W MATLAB za Optimization Toolbox , że fminunczastosowania funkcji (między innymi metodami) Do BFGS Metoda quasi-Newtona. Wiele ograniczonych metod zestawu narzędzi optymalizacji wykorzystuje BFGS i wariant L-BFGS .
  • R jest optimuniwersalnym optymalizacji rutynowe wykorzystuje BFGS sposób za pomocą method="BFGS".
  • Scipy .optimize ma fmin_bfgs. W scipy rozszerzenie Pythona The scipy.optimize.minimizeFunkcja ta obejmuje, między innymi metodami, a BFGS realizacji.

Zobacz też

Bibliografia

Dalsza lektura