Zamieszanie na temat reguły Armijo

13

Mam zamieszanie w związku z regułą Armijo używaną do wyszukiwania linii. Czytałem wyszukiwanie linii śledzenia wstecz, ale nie zrozumiałem, o co chodzi w tej regule Armijo. Czy ktoś może wyjaśnić, czym jest zasada Armijo? Wikipedia wydaje się nie wyjaśniać dobrze. Dzięki

użytkownik34790
źródło
Co jeśli w równaniu zmienna x nie jest wektorem, ale macierzą? Jak należy zaktualizować regułę Armijo?
Frank Puk
nic się nie zmienia. powinieneś po prostu przekształcić swoją X_k w wektor (kolumnowy) . Xkxk
GoHokies
Tam utknąłem. Kiedy staje się macierzą, wartość po lewej stronie ( ) jest nadal skalarem. Ale wartość po prawej stronie nie jest - zamiast tego jest to macierz ( jest skalarem, a jest macierzą.)xkf(xk+αpk)f(xk)βαf(xk)Tpk
Frank Puk
będziesz musiał pracować z wektorem, a nie z macierzą. więc przekształcasz swoją macierz zmiennych kontrolnych ( to przez ) w wektor z elementami. Kierunek wyszukiwania i gradient będą również wektorami z elementami . w ten sposób zarówno RHS, jak i LHS stanu Armijo są skalarami i można je porównać. N×NXkxkN2N2
GoHokies

Odpowiedzi:

19

Po uzyskaniu kierunku opadania dla funkcji celu należy wybrać „dobrą” długość kroku. Nie chcesz robić kroku, który jest zbyt duży, aby funkcja w nowym punkcie była większa niż bieżąca. Jednocześnie nie chcesz, aby twój krok był zbyt mały, aby zbieganie trwało wieczność.pf(x)

Stan Armijo zasadniczo sugeruje, że „dobra” długość kroku jest taka, że ​​masz „wystarczające zmniejszenie” w nowym punkcie. Warunek jest matematycznie określony jako gdzie jest kierunkiem opadania przy i . f

f(xk+αpk)f(xk)+βαf(xk)Tpk
pk β ( 0 , 1 )xkβ(0,1)

Intuicja tego polega na tym, że wartość funkcji w nowym punkcie powinna znajdować się pod zmniejszoną „linią styczną” w punkcie w kierunku . Zobacz książkę Nocedal & Wright „Optymalizacja numeryczna”. W rozdziale 3 znajduje się doskonały graficzny opis stanu wystarczającego zmniejszenia armijo.x k p kf(xk+αpk)xkpk

Paweł
źródło
1
Zamiast myśleć o nim jako o linii stycznej, można go również traktować jako rozszerzenie Taylora pierwszego rzędu. W tym przypadku jedynie zapewnia, że ​​istnieje taki krok . αβα
cjordan1
Powodem, dla którego to ma znaczenie, tj. Dlaczego potrzebny jest „dobry” krok, jest to, że wiele schematów optymalizacji będzie zbiegać się wolniej, jak mówi Paul, lub może wcale się nie zbiegać. Tak więc przeszukiwania linii - które występują w kilku odmianach, Armijo jest po prostu najbardziej popularny - można użyć do nadania algorytmom bardziej niezawodnych właściwości konwergencji.
cjordan1
1
Paul: twoje wyjaśnienie jest niepełne. Sama ta nierówność nie gwarantuje „wystarczającego” spadku. W rzeczywistości możesz mieć wartość alfa = 0 i nadal spełnia nierówności, które napisałeś. Ważną cechą reguły Armijo jest ograniczenie wielkości kroku od zera, co wynika z innej nierówności: f (gamma * x_new) -f (x_old)> beta * (gamma * x_new-x_old) ^ T * grad (f (x_old))
Po przeczytaniu tej dyskusji wciąż jestem zdezorientowany zasadą Armijo. Rozważmy , oraz (najbardziej stromy kierunek zniżania). Wybór która minimalizuje to . Jeśli jednak , to . Zatem reguła Armijo nie jest spełniona przy faktycznym minimum dla tego wyboru . W szczególności, jeśli masz wyszukiwanie liniowe, które iteracyjnie szuka lokalnego minimum, może skończyć się w nieskończoną pętlę. Czy coś brakuje? f(x)=x2xk=1pk=2αf(xk+αpk)α=1/2β>1/2 βf(xk+1/2pk)=0>12β=f(xk)+βαf(xk)pkβ
Joris Bierkens
Aby dodać do mojego powyższego komentarza, możesz powiedzieć, że jest zdecydowanie za duże (Nocedal, Wright wspomina o powszechnym wyborze ), ale z drugiej strony, na dowolny wybór możesz zbudować przykład jak wyżej. β = 10 - 4 ββ>1/2β=104β
Joris Bierkens,
0

Pięć lat później to pytanie jest nadal aktualne.

Tutaj (strony 16 i 17) można znaleźć świetne wyjaśnienie, w tym algorytm.

Bojan Hrnkas
źródło