Zmienna kodowa w funkcji nlm ()

9

W R jest funkcja nlm (), która dokonuje minimalizacji funkcji f przy użyciu algorytmu Newtona-Raphsona. W szczególności funkcja ta generuje wartość kodu zmiennej zdefiniowanego następująco:

zakoduj liczbę całkowitą wskazującą, dlaczego proces optymalizacji został zakończony.

1: gradient względny jest bliski zeru, prawdopodobnie obecny iterat jest rozwiązaniem.

2: kolejne iteracje w granicach tolerancji, aktualny iterat jest prawdopodobnie rozwiązaniem.

3: podczas ostatniego globalnego kroku nie udało się zlokalizować punktu niższego niż szacunek. Każde oszacowanie jest przybliżonym lokalnym minimum funkcji lub steptol jest zbyt mały.

4: przekroczony limit iteracji.

5: maksymalny rozmiar kroku stepmax został przekroczony pięć razy z rzędu. Albo funkcja jest nieograniczona poniżej, staje się asymptotyczna do skończonej wartości z góry w pewnym kierunku lub stepmax jest zbyt mały.

Czy ktoś może mi wyjaśnić (może używając prostej ilustracji z funkcją tylko jednej zmiennej), co odpowiada sytuacjom 1-5?

Na przykład sytuacja 1 może odpowiadać następującemu obrazowi:

wprowadź opis zdjęcia tutaj

Z góry dziękuję!

ocram
źródło

Odpowiedzi:

8

Sytuacje te są bardziej zrozumiałe, biorąc pod uwagę, czym tak naprawdę jest minimalizacja lub maksymalizacja i jak działa optymalizacja.

Załóżmy, że mamy funkcję która ma lokalne minimum na . Metody optymalizacji próbują skonstruować sekwencję która jest zbieżna z . Zawsze pokazano, że teoretycznie skonstruowana sekwencja jest zbieżna do punktu lokalnego minimum dla pewnej klasy funkcji .fx0xix0f

Aby uzyskać następny kandydata w iteracji może być procesem długotrwałym, więc to normalne, że wszystkie algorytmy ograniczyć liczbę iteracji. To odpowiada sytuacji 4 .i

Następnie dla każdego zbliżonego do mamy to . Jeśli więc oznacza to, że osiągnęliśmy minimum. To odpowiada sytuacji 3xx0f(x)>f(x0)f(xi)>f(xi1)

Teraz, jeśli funkcja ma pochodną na to koniecznie . Metoda Newtona-Raphsona oblicza gradient na każdym kroku, więc jeśli , jest prawdopodobnie rozwiązaniem, które odpowiada sytuacji 1 .fx0f(x0)=0f(xi)0xi

Każda zbieżna sekwencja rzeczywistych wektorów jest sekwencją Cauchy'ego i odwrotnie, co z grubsza oznacza, że ​​jeśli jest bliskie , to jest bliskie i odwrotnie, gdzie jest liczbą iteracyjną. Więc jeśli , i wiemy, że teoretycznie zbiega się do , powinniśmy być blisko punktu minimalnego. To odpowiada sytuacji 2 .xix0xixi+1i|xixi1|<εxix0

Zbieżne sekwencje mają właściwość, którą kurczą się, tzn. Jeśli jesteśmy blisko zbieżności, wszystkie pozostałe elementy sekwencji znajdują się na małym obszarze. Jeśli więc sekwencja, która teoretycznie powinna się zbieżna, zaczyna robić duże kroki, oznacza to, że prawdopodobnie nie ma zbieżności. To odpowiada sytuacji 5

Uwaga Ścisłe definicje matematyczne zostały celowo pominięte.

mpiktas
źródło