La variabile di codice nella funzione nlm ()


9

In R c'è una funzione nlm () che esegue una minimizzazione di una funzione f usando l'algoritmo Newton-Raphson. In particolare, tale funzione genera il valore del codice variabile definito come segue:

codificare un numero intero che indica perché il processo di ottimizzazione è terminato.

1: il gradiente relativo è vicino allo zero, l'iterazione corrente è probabilmente una soluzione.

2: iterate successive entro tolleranza, l'iterazione corrente è probabilmente una soluzione.

3: l'ultimo passaggio globale non è riuscito a individuare un punto inferiore alla stima. Entrambe le stime rappresentano un minimo locale approssimativo della funzione o steptol è troppo piccolo.

4: limite di iterazione superato.

5: la dimensione massima del passo stepmax è stata superata per cinque volte consecutive. O la funzione non ha limiti di seguito, diventa asintotica a un valore finito dall'alto in una direzione o stepmax è troppo piccolo.

Qualcuno può spiegarmi (magari usando una semplice illustrazione con una funzione di una sola variabile) a quali corrispondano le situazioni 1-5?

Ad esempio, la situazione 1 potrebbe corrispondere alla seguente immagine:

inserisci qui la descrizione dell'immagine

Grazie in anticipo!

Risposte:


8

Queste situazioni sono comprese più chiaramente quando si ha in mente che cos'è realmente la minimizzazione o la massimizzazione e come funziona l'ottimizzazione.

Supponiamo di avere la funzione che ha un minimo locale in . I metodi di ottimizzazione cercano di costruire la sequenza che converge in . Viene sempre mostrato che in teoria la sequenza costruita converge al punto del minimo locale per alcune classi di funzioni .fx0xix0f

Per ottenere prossimo candidato iterazione può essere un processo lento, quindi è normale che tutti gli algoritmi limitano il numero di iterazioni. Ciò corrisponde alla situazione 4 .i

Quindi per ogni vicino a abbiamo quella . Quindi se questa è un'indicazione che abbiamo raggiunto il minimo. Ciò corrisponde alla situazione 3xx0f(x)>f(x0)f(xi)>f(xi1)

Ora se la funzione ha una derivata su allora necessariamente . Il metodo Newton-Raphson calcola il gradiente ad ogni passo, quindi se , è probabilmente una soluzione, che corrisponde alla situazione 1 .fx0f(x0)=0f(xi)0xi

Ogni sequenza convergente di vettori reali è la sequenza di Cauchy e viceversa, indicando approssimativamente che se è vicino a , allora è vicino a e viceversa, dove è il numero di iterazione. Quindi se , e sappiamo che in teoria converge in , allora dovremmo essere vicini al punto minimo. Ciò corrisponde alla situazione 2 .x 0 x i x i + 1 i | x i - x i - 1 | < ε x i x 0xix0xixi+1i|xixi1|<εxix0

Le sequenze convergenti hanno la proprietà che si contraggono, cioè se siamo vicini alla convergenza tutti gli elementi rimanenti della sequenza sono contenuti in una piccola area. Quindi, se la sequenza che in teoria dovrebbe convergere inizia a fare grandi passi, ciò indica che probabilmente non c'è convergenza. Ciò corrisponde alla situazione 5

Nota Le rigorose definizioni matematiche sono state omesse intenzionalmente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.