ボックス制約のある非線形最小二乗


10

ボックス制約を使用して、非線形最小二乗法min を実行する推奨方法は何ですか?ボックスの制約を2次式にして、を最小化できるように ここで、は、\ _ _ _ /、 ような形をした「タブ関数」です。 これは理論的に機能しますか、実際に機能しますか? (NLS +に関する多くの理論的な論文があるようですが、私の興味は実用的です—Σerrp2loj<=pj<=hj

Σerrp2+CΣjtあなたbpjlojhj2
tあなたbバツlohメートルaバツloバツ0バツh


実際のまたは現実的なテストケースは、方法の中から選択するのに役立ちます。)

(専門家、タグを追加してください:「最小二乗」?)


5
厳密な制約をペナルティ関数に置き換えることは、数値最適化の一般的な手法です。あなたが提案しているのは、その置き換えの特定の形のようです。あなたはここでは、例えば、同様の技術についてのすべてを読むことができます:stanford.edu/~boyd/cvxbook
デヴィッドKetcheson

pp=最高lojpjhj

回答:


11

制約を取り除くためにペナルティ項の2乗を追加することは、オーダー1 /ペナルティファクターのみの精度を与える単純なアプローチです。したがって、計算中にペナルティを無限大にしない限り、高精度にすることはお勧めしません。しかし、ペナルティ係数が高いと、ヘッセ行列は非常に悪条件になり、制約を明示的に考慮せずに達成可能な全体の精度が制限されます。

バインドされた制約はペナルティに変換されないので、一般的な制約よりもはるかに扱いやすいことに注意してください。

ソルバーL-BFGS-B(約5次元の履歴で使用)は、通常、両方の低次元と高次元の両方で、制限された制約付き問題を非常に確実かつ高速に解決します。例外は、解法から離れると非常にフラットになる可能性のある問題に対する誤収束であり、降下法では行き詰まりが発生しやすくなります。

グローバル最適化ソフトウェアの一部として非常にロバストな境界制約ソルバーが必要だったため、多くの異なるソルバーを使用して、多くの異なる次元で非常に多様な関数について多くの実験を行いました。L-BFGS-Bは明らかに汎用的な方法として際立っていますが、もちろんsmeの問題では、他のソルバーのパフォーマンスが大幅に向上します。したがって、最初の選択肢としてL-BFGS-Bをお勧めします。L-BFGS-Bが特定のクラスの問題をうまく処理できない場合に備えて、別の手法を試してみます。


L-BFGSはIPOPTで利用できます。私の回答を修正しました。
アリ

5

私は単に汎用のNLPソルバー IPOPTを使用します。これは、私が試した中で最も堅牢なソルバーです。

特別な要件がない限り、ボックス制約のあるNLSでのみ機能する問題固有のソルバーを主張する理由はありません。

要件の変更(非線形制約の追加など)は、問題固有のソルバーで大きな頭痛の種を引き起こします。汎用IPOPTを使用すれば、そのような問題は発生しません。


更新:IPOPTL-BFGSを試すことができます。ドキュメントの準ニュートンの下を参照してください。

解決手順は、IPOPTの驚くべき堅牢性を損なうことを犠牲にして、より速くなる可能性があります。私の意見では、利用可能な場合は正確な派生物を使用します。パフォーマンスの問題が証明された場合にのみ、近似(L-BFGSなど)をいじり始めます。


IPOPTがどの程度うまく機能するかはわかりませんが、あなたの提案は、下り坂のシンプレックス法の擁護者による同様の発言を思い出させてくれます。非線形最小二乗は一般的な問題クラスであるため、既存のNLSソルバーのいずれかを使用して完全に拒否することは、少し疑わしいようです。
トーマスクリンペル

@ThomasKlimpelさて、denisが詳細を教えてくれれば、彼が適切なソルバーを選択できるようになります。:)または、彼はそれを自分で確認し、どれが自分のニーズに最も適しているかを見つけることができます。IPOPTは、そもそも良いソルバーのようです。
Ali

@アリ、「実際のまたは現実的なテストケース」を指摘していただけますか?
denis

@denisできましたが、そうするつもりはありません。あなたをコースから外してしまいます。重要なのは、IPOPTが問題をどのように処理するかだけです。あなたがいくつかの非常に特別な要件がない限り、それはそれをうまく解決するはずです。IPOPTには、MATLAB、C ++、C、Fortran、R、AMPL、CUTErへのインターフェイスがあります。1つのインターフェースを選択し、問題で何が発生するかをテストします:)問題固有のソルバーのテストも簡単ではありません。
Ali

@Thomas Klimpel、私ははっきりしていなかったと思います:私は拒否するのではなく、パッケージについて尋ねるのではなく、洞察やテストケースを求めます:この簡単な方法がうまくいかないのはなぜですか?
denis

1

R minpack.lm CRANパッケージはボックス制約にレーベンバーグ・マルカートの実装を提供します。

一般に、Levenberg-Marquardtは最小二乗問題に対してL-BFGS-Bよりもはるかに適しています。挑戦的な問題に(はるかに)収束します。また、非線形最小二乗問題に合わせて調整されているため、汎用IPOPTよりもはるかに高速です。

Rパッケージは、制約を適用するために非常に単純な射影アプローチを選択します(ソースコードを参照)。使用しているLM実装によっては、簡単に含めることができます。

ここで、変換の使用に関するコメントでの提案(たとえば、scipyのような正弦変換)も、制約のないLMアルゴリズムを制約のあるLMアルゴリズムに変換するための優れた単純な代替手段です。ヤコビアンが分析的な場合は、変換をヤコビアンに含める必要もあります。


0

(数年後)ボックス制約を処理する2つのソルバー:

  • Scipy least_squaresに は3つのメソッドがあり、詳細なドキュメントがあります。

    1. 'trf':信頼領域反射
    2. 「dogbox」
    3. 'lm':ボックス制約のない、MINPACKの従来のラッパー。
  • セレス

1
Scipyは、Levenberg-Marquardtアルゴリズムはボックス制約を処理できないと明確に述べています。
2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.