nlm()関数のコード変数


9

Rには、Newton-Raphsonアルゴリズムを使用して関数fの最小化を実行する関数nlm()があります。特に、この関数は次のように定義された変数コードの値を出力します。

最適化プロセスが終了した理由を示す整数をコーディングします。

1:相対勾配はゼロに近く、現在の反復はおそらく解決策です。

2:許容範囲内で連続して反復します。現在の反復はおそらく解決策です。

3:最後のグローバルステップで、推定よりも低いポイントを特定できませんでした。推定値が関数の近似極小値であるか、steptolが小さすぎます。

4:反復制限を超えました。

5:最大ステップサイズstepmaxが5回連続して超えました。関数が下で無制限であるか、上からある方向に有限値に漸近するか、stepmaxが小さすぎるかのいずれかです。

誰かが私に(変数が1つしかない関数の簡単な図を使用しているかもしれません)、対応する状況1-5について説明できますか?

たとえば、状況1は次の図に対応する場合があります。

ここに画像の説明を入力してください

前もって感謝します!

回答:


8

これらの状況は、最小化または最大化が実際に何であるか、および最適化がどのように機能するかを念頭に置くと、より明確に理解されます。

極小値をもつ関数あるとします。最適化メソッドは、収束するシーケンスを構築しようとします。理論的には、構築されたシーケンスが関数あるクラスの極小点に収束することが常に示されています。fx0xix0f

反復で次の候補を取得するために、は長いプロセスになる可能性があるため、通常、すべてのアルゴリズムが反復の数を制限します。これは状況4に対応します。i

次に、に近いごとに、ます。したがって、これは最小値に達したことを示しています。これは状況3に対応しますxx0f(x)>f(x0)f(xi)>f(xi1)

ここで、関数が導関数を持つ場合、必然的にます。ニュートンラプソン法は各ステップで勾配を計算するため、場合、はおそらくソリューション1に対応するソリューションです。fx0f(x0)=0f(xi)0xi

実数ベクトルの各収束配列は、コーシーおおよそ場合つまり、その逆配列及び副 近くにある、次いで近くにある及びその逆、反復回数です。したがって、であり、理論的にはがに収束する場合、最小点に近いはずです。これは状況2に対応します。xix0xixi+1i|xixi1|<εxix0

収束シーケンスには、それらが収縮する特性があります。つまり、収束に近い場合、シーケンスの残りのすべての要素は小さな領域に含まれます。したがって、理論上収束するはずのシーケンスが大きなステップを開始している場合、これはおそらく収束がないことを示しています。これは状況5に対応します

厳密な数学的定義は意図的に省略されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.