ラインサーチで3次と2次の内挿を決定するのに役立ちます


9

準ニュートンBFGSアルゴリズムの一部としてラインサーチを実行しています。ラインサーチの1つのステップで、3次補間を使用して、ローカルミニマイザーに近づけます。

してみましょうf:R→R,f∈C1関心の関数です。f ′(x ∗)≈0となるようなを見つけたい。x∗f′(x∗)≈0

ましょうf(xk)、f′(xk)、f(xk+1)とf′(xk+1)知られています。また、想定0≤xk<x∗<xk+1。三次多項式Q(x)=ax3+bx2+cx+dので、Q(0)=f(xk)、Q′(0)=f′(xk)、Q(xk+1−xk)=f(xk+1)と。Q′(xk+1−xk)=f′(xk+1)

私は二次方程式を解きます:は、閉形式の解を使用して、求めたx ∗ に対してです。(1):Q′(x∗−xk)=0x∗

上記は、が(1 )の閉じた形の解をaで割るaで除算する場合を除いて、ほとんどの場合にうまく機能します。f(x)=O(x2)(1)a0

私の解決策を見ていると、それは「小さすぎる」であれば、単純に二次多項式の最小化のための閉じた形のソリューション取るQ 2(X )= B のx 2 + C X + D私はすでに係数の持っているBを、C 、Dへの以前のフィットからQ (X )。aQ2(x)=bx2+cx+db,c,dQ(x)

私の質問は次のとおりです。立方体に対して2次補間を行うタイミングを調べるにはどうすればよいでしょうか。以下のためのテストへの単純なアプローチ≡ 0は私が探していますので、数値的な理由による悪いです| a | < ε τどこεはマシンの精度ですが、私は良いのかを決定することができないんだτの規模不変だFを。a≡0|a|<ϵτϵτf

おまけの質問:失敗した3次近似からの係数使用に数値的な問題はありますか、または係数を計算する適切な方法で新しい2次近似を実行する必要がありますか?b,c,d

明確化のための編集: 私の質問で一般に呼ばれているもの、実際にあるφ (α )= F (ˉ X K + α ¯ P K)文献に記載されています。質問の定式化を単純化しました。私が解決している最適化問題は、6次元では非線形です。また、BFGSライン検索にはWolfe条件で十分であることをよく知っているので、f ′(x ∗)≈0に興味があったと述べています。fϕ(α)=f(x¯k+αpk¯)f′(x∗)≈0; 強力なウルフ条件を満足するものを探しています。3次近似の最小化を行うことは、そのための良いステップです。

問題はBFGSについてではなく、2次近似がより適切であるほど3次係数が小さい場合をどのように決定するかでした。

編集2:表記法を更新します。方程式は変更されません。

回答:


4

うーん... 3次補間は、ラインサーチでは前例のないものではありませんが、通常はやり過ぎです。

私があなたの問題を正しく読んでいる場合、は単なるスカラーですか?この場合、BFGSはおそらく問題を解決する最も効率的な方法ではありません。ブレンスの方法のようなスカラー最適化アルゴリズムは、問題をより早く解決する可能性があります。x

BFGSには多くのライン探索アルゴリズムがあります。私自身のアプリケーションの場合、メモリ制限のあるBFGS(L-BFGS)を使用すると、このラインサーチは非常にうまく機能します。ウォルフ条件を満たすだけで十分であり、正確な最小化関数を見つけることであまり効果が得られないことに注意してください。

とにかく、実際にあなたの質問に答えるために:3次のものを解いてNaNやInf(ここで行われているように)などの「悪い」値が得られる場合は、単純に2次多項式に切り替えることを検討します。

を使用してあなたが何を意味するのかよくわかりませんか?3次近似のこれらの係数は2次近似の係数と同じではないため、再利用できません。b,c,d

最後に、f (x 0)ではなくを使用することもできます。これは、関数が(おそらく)ローカルではほぼ3次または2次であるためであり、x kおよびx k − 1はより互いに(及び溶液)X 0。f(xk−1)f(x0)xkxk−1x0

お役に立てれば。


明確にするために編集。"を用いて "私は私は立方フィットしなかったことを意味Q (X )= A X 3 + B X 2 + C X + Dと見られる≡ 0こうして私はQ (X )= Bをx 2 + c x + dこれはすでに2次多項式です。そして問題は、係数b 、c 、db,c,dQ(x)=ax3+bx2+cx+da≡0Q(x)=bx2+cx+db,c,dこの近似で得られた値は、補間を行う場合、または一般的な2次近似の新しい係数を再計算する必要がある場合に使用するのが賢明です。
— エミリーL.

もちろん、そうです。数値的な観点から係数を使用しても問題はありません。私が重要だと思う唯一の点は、とにかく終了するソリューションに非常に近いことです。
— LKlevin 2014年

キュービックを計算し、「悪い」値をチェックすることで、あなたの答えを動機づけることができますか?なぜときに実行することが安全である< < Bまたは≈ 0?a<<ba≈0
— エミリーL.

場合≈ 0、B 、C及びDは、およそ次の場合のものであろう。BFGSラインサーチは非常に堅牢であるため、完全に正確でなくても、これらを使用しても問題ありません。ウルフ条件に従う限り、収束するでしょう。「悪い」値については、コンピュータが必要な精度で正確に計算を実行できる限り、すべてが良好です。できない場合は、infとNaNが表示されます。a≈0b,cd
— LKlevin 2014年

4

それについて、Nocedalによって実装されたMoréの論文があります。

ホルヘJ.モレとデビッドJ.トゥエンテ。1994.十分な減少が保証されたラインサーチアルゴリズム。ACM Trans。数学。Softw。20、3(1994年9月)、286-307。DOI http://dx.doi.org/10.1145/192115.192132 (プレプリント)。


SciComp.SEへようこそ!論文を見つけやすくするために、投稿をフォーマットしました。Nocedalの実装へのリンクを見つけることができれば、それは役に立ちます。
— クリスチャンクラソン2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.