Algorytm Broydena – Fletchera – Goldfarba – Shanno - Broyden–Fletcher–Goldfarb–Shanno algorithm

W numerycznej optymalizacji The Broyden-Fletcher-Goldfarb-Shanno ( BFGS ) algorytm jest iteracyjna metoda dla rozwiązania nie ograniczające nieliniowych optymalizacji problemów. Tak jak związane z metodą Davidon-Fletcher Powell , BFGS określa kierunek zanurzania przez wstępnego z gradientem z informacjami krzywizny. Czyni to zwiększając stopniowo aproksymacją Heskiego matrycy do funkcji strat uzyskane wyłącznie z ocen nachylenia (gradientu lub przybliżonej oceny) poprzez uogólnionej metody siecznej .

Ponieważ aktualizacje BFGS krzywizna matryca nie wymaga odwracania macierzy , jej złożoność obliczeniowa jest tylko w stosunku do w metodzie Newtona . W powszechnym użyciu jest również L-BFGS , który jest wersją BFGS z ograniczoną pamięcią, który jest szczególnie dostosowany do problemów z bardzo dużą liczbą zmiennych (np.> 1000). Wariant BFGS-B obsługuje proste ograniczenia pola.

Algorytm został nazwany na cześć Charlesa George'a Broydena , Rogera Fletchera , Donalda Goldfarba i Davida Shanno .

Racjonalne uzasadnienie

Problem optymalizacji polega na zminimalizowaniu , gdzie jest wektor i jest różniczkowalną funkcją skalarną. Nie ma ograniczeń co do wartości, które mogą przyjąć.

Algorytm rozpoczyna się od wstępnego oszacowania optymalnej wartości i przechodzi iteracyjnie, aby uzyskać lepsze oszacowanie na każdym etapie.

Kierunku wyszukiwania P K w etapie K otrzymuje przez roztwór analogu równania Newton:

gdzie jest przybliżeniem do macierzy Hesja , która jest aktualizowana iteracyjnie na każdym etapie, i jest gradientem funkcji obliczanej przy x k . Wyszukiwania linia w kierunku p k jest następnie wykorzystywany do znalezienia następnego punktu x k +1 minimalizując przez skalar

Warunek quasi-Newtona nałożony na aktualizację wynosi

Niech a , wówczas spełnia , co stanowi sieczną równanie. Warunek krzywizny powinien być spełniony, aby był określony dodatnio, co można zweryfikować przez wstępne pomnożenie równania siecznego przez . Jeśli funkcja nie jest mocno wypukła, warunek musi zostać wymuszony jawnie.

Zamiast wymagać pełnej macierzy Hesji w punkcie do obliczenia jako , przybliżony Hesjan na etapie k jest aktualizowany przez dodanie dwóch macierzy:

Obie i są symetrycznymi macierzami rangi jeden, ale ich suma jest macierzą aktualizacji rzędu drugiego. Macierz aktualizacji BFGS i DFP różnią się od swojego poprzednika macierzą drugiego stopnia. Inna prostsza metoda pierwszego rzędu jest znana jako symetryczna metoda pierwszego rzędu , która nie gwarantuje jednoznaczności pozytywnej . W celu zachowania symetrii i pozytywnej określoności , forma aktualizacji może zostać wybrana jako . Nakładając warunek sieczny, . Wybierając i możemy uzyskać:

Wreszcie możemy zastąpić i do i uzyskać równanie aktualizacji systemu :

Algorytm

Od początkowego przypuszczenia i przybliżonej macierzy Hesja, następujące kroki są powtarzane, aby uzyskać rozwiązanie:

  1. Uzyskaj wskazówki , rozwiązując .
  2. Wykonaj jednowymiarową optymalizację ( wyszukiwanie liniowe ), aby znaleźć akceptowalną wielkość kroku w kierunku znalezionym w pierwszym kroku. Jeśli przeprowadzane jest dokładne wyszukiwanie wierszy, to . W praktyce zwykle wystarcza niedokładne przeszukiwanie linii, z akceptowalnymi, spełniającymi warunkami Wolfe'a .
  3. Ustaw i zaktualizuj .
  4. .
  5. .

oznacza minimalizowaną funkcję celu. Zbieżność może być kontrolowane przez obserwowanie normę gradientu . Jeśli jest zainicjowany za pomocą , pierwszy krok będzie równoważny z obniżaniem gradientu , ale dalsze kroki są coraz bardziej dopracowane przez przybliżenie do Hesji.

Pierwszy krok algorytmu jest wykonywany z wykorzystaniem odwrotności macierzy , którą można skutecznie uzyskać stosując wzór Shermana-Morrisona do kroku 5 algorytmu, dając

To można obliczyć efektywnie bez przejściowych matrycach, uznając, że jest symetryczny, a i są skalary, używając rozszerzenia takie jak

W problemach estymacji statystycznej (takich jak maksymalne prawdopodobieństwo lub wnioskowanie bayesowskie) wiarygodne przedziały lub przedziały ufności dla rozwiązania można oszacować na podstawie odwrotności ostatecznej macierzy Hesja. Jednak wielkości te są technicznie zdefiniowane przez prawdziwą macierz Hesja, a przybliżenie BFGS może nie zbiegać się z prawdziwą macierzą Hesja.

Godne uwagi implementacje

  • Oprogramowanie do optymalizacji nieliniowej na dużą skalę Artelys Knitro implementuje między innymi algorytmy BFGS i L-BFGS.
  • W GSL narzędzia BFGS jak gsl_multimin_fdfminimizer_vector_bfgs2.
  • W MATLAB Optimization Toolbox funkcja fminunc używa BFGS z wyszukiwaniem w linii sześciennej, gdy rozmiar problemu jest ustawiony na „średnią skalę”.
  • W R algorytm BFGS (i wersja L-BFGS-B, która dopuszcza ograniczenia skrzynek) jest zaimplementowana jako opcja funkcji bazowej optim ().
  • W SciPy funkcja scipy.optimize.fmin_bfgs implementuje BFGS. Możliwe jest również uruchomienie BFGS przy użyciu dowolnego z algorytmów L-BFGS poprzez ustawienie parametru L na bardzo dużą liczbę.

Zobacz też

Bibliografia

Dalsza lektura