scipy の L-BFGS-B ミニマイザーを使用すると、内部で計算されたおおよその逆 Hessian を取得できますか?
任意の逆ヘッセ行列 (ベクトル積) を計算できるように、暗黙的な因数分解された形式にすることは問題ありません。
scipy の L-BFGS-B ミニマイザーを使用すると、内部で計算されたおおよその逆 Hessian を取得できますか?
任意の逆ヘッセ行列 (ベクトル積) を計算できるように、暗黙的な因数分解された形式にすることは問題ありません。
そうは見えません。私はこれらのアルゴリズムの専門家ではありませんが、特に L-BFGS ではそれができないようです。ウィキペディアによると:
逆 Hessian H_k の代わりに、L-BFGS は、位置 x と勾配 ∇f(x) の過去 m 回の更新の履歴を保持します。一般に、履歴サイズ m は小さくすることができます (多くの場合、m<10)。これらの更新は、H_k ベクトル積を必要とする操作を暗黙的に実行するために使用されます。
ただし、これを使用するscipy.fmin_bfgs
と、近似 (逆) ヘッセ行列が返されますが、それを維持するために必要なメモリが大きくなります。