1
BFGS対L-BFGS —実際にはどのように違うのですか?
PythonでBFGSとL-BFGSを使用してPythonで最適化手順を実装しようとしていますが、2つのケースで驚くほど異なる結果が得られます。L-BFGSは適切な最小値に超高速で収束しますが、BFGSは非常にゆっくりと収束し、それも無意味な最小値に収束します。 質問:私の測定値から、BFGSとL-BFGSは基本的にアルゴリズム(準ニュートン法)であるように見えますが、後者はメモリ使用量が少ないため高速です。本当?そうでなければ、それらがより異なっている場合、どのようにしてそうでしょうか? 最終的に、パフォーマンスの違いが実際のアルゴリズムの違いによるものなのか、それともPython SciPyモジュールでの実装によるものなのかを把握したいと思います。 編集: 2つのアルゴリズムからの逸脱した動作の私の主張をサポートするためにいくつかのデータを追加しています。 RUNNING THE L-BFGS-B CODE * * * Machine precision = 2.220D-16 N = 147 M = 10 This problem is unconstrained. At X0 0 variables are exactly at the bounds At iterate 0 f= 2.56421D+04 |proj g|= 1.19078D+03 At iterate 1 f= 2.12904D+04 |proj …