Die Codevariable in der Funktion nlm ()

9

In R gibt es eine Funktion nlm (), die eine Minimierung einer Funktion f unter Verwendung des Newton-Raphson-Algorithmus durchführt. Diese Funktion gibt insbesondere den Wert des Variablencodes aus, der wie folgt definiert ist:

Code eine Ganzzahl, die angibt, warum der Optimierungsprozess beendet wurde.

1: relativer Gradient ist nahe Null, aktuelle Iteration ist wahrscheinlich eine Lösung.

2: Aufeinanderfolgende Iterationen innerhalb der Toleranz, aktuelle Iteration ist wahrscheinlich eine Lösung.

3: Der letzte globale Schritt konnte keinen Punkt finden, der unter der Schätzung liegt. Entweder ist die Schätzung ein ungefähres lokales Minimum der Funktion oder Steptol ist zu klein.

4: Iterationsgrenze überschritten.

5: Die maximale Schrittweite von stepmax wurde fünf Mal hintereinander überschritten. Entweder ist die Funktion unten unbegrenzt, wird von oben in eine Richtung zu einem endlichen Wert asymptotisch oder stepmax ist zu klein.

Kann mir jemand erklären (vielleicht anhand einer einfachen Abbildung mit einer Funktion von nur einer Variablen), welchen Situationen 1-5 entsprechen?

Zum Beispiel könnte Situation 1 dem folgenden Bild entsprechen:

Geben Sie hier die Bildbeschreibung ein

Vielen Dank im Voraus!

ocram
quelle

Antworten:

8

Diese Situationen werden klarer verstanden, wenn man bedenkt, was Minimierung oder Maximierung wirklich ist und wie Optimierung funktioniert.

Angenommen, wir haben die Funktion die bei lokales Minimum hat . Optimierungsmethoden versuchen, die Sequenz zu konstruieren, die gegen konvergiert . Es wird immer gezeigt, dass theoretisch die konstruierte Sequenz für eine Klasse von Funktionen gegen den Punkt des lokalen Minimums konvergiert .fx0xix0f

Zu erhalten , in Iteration nächste Kandidaten kann ein langwieriger Prozess sein, so ist es üblich, dass alle Algorithmen die Anzahl der Iterationen begrenzen. Dies entspricht Situation 4 .i

Dann haben wir für jedes nahe das . Wenn also dies ein Hinweis darauf, dass wir das Minimum erreicht haben. Dies entspricht Situation 3xx0f(x)>f(x0)f(xi)>f(xi1)

Wenn nun die Funktion eine Ableitung bei dann ist notwendigerweise . Die Newton-Raphson-Methode berechnet den Gradienten bei jedem Schritt. Wenn also , ist wahrscheinlich eine Lösung, die Situation 1 entspricht .fx0f(x0)=0f(xi)0xi

Jede konvergente Folge von reellen Vektoren ist eine Cauchy- Folge und umgekehrt, was ungefähr bedeutet, dass wenn nahe an , nahe an und umgekehrt, wobei die Iterationszahl ist. Wenn also und wir wissen, dass theoretisch gegen konvergiert , sollten wir nahe am Minimalpunkt sein. Dies entspricht Situation 2 .xix0xixi+1i|xixi1|<εxix0

Konvergierende Sequenzen haben die Eigenschaft, dass sie sich zusammenziehen, dh wenn wir uns der Konvergenz nähern, sind alle verbleibenden Elemente der Sequenz in einem kleinen Bereich enthalten. Wenn also die Sequenz, die theoretisch konvergieren sollte, große Schritte unternimmt, ist dies ein Hinweis darauf, dass es wahrscheinlich keine Konvergenz gibt. Dies entspricht Situation 5

Hinweis Strenge mathematische Definitionen wurden absichtlich weggelassen.

mpiktas
quelle