最適化ソルバー

最適化ソルバーは、損失関数の最適解を求めて、損失(コスト)関数の極値(最大または最小)を調べる関数です。

Oracle Machine Learningには、記憶制限ブロイデン・フレッチャー・ゴールドファーブ・シャンノ(L-BFGS)が直線探索およびAdamソルバーとともに実装されています。

Limited-memory Broyden–Fletcher–Goldfarb–Shannoソルバー

L-BFGSは、準ニュートン法です。この方法では、勾配評価によって指定されたランク1の更新を使用してヘッセ行列を近似します。この方法は、限定的な量のメモリーしか必要としません。L-BFGSは下降方向を調べるために使用され、直線探索は適切なステップ・サイズを調べるために使用されます。L-BFGSソルバーで保持される履歴コピーの数は、LBFGS_HISTORY_DEPTHソルバー設定によって定義されます。反復回数が履歴の深さよりも小さいときに、L-BFGSによって計算されるヘッセは正確なものになります。反復回数が履歴の深さより多いときに、L-BFGSによって計算されるヘッセは近似値になります。そのため、履歴の深さが大きすぎたり小さすぎたりしないようにして、計算速度が遅くなりすぎないようにします。通常、この値は310の間にします。

Adamソルバー

Adamは、ミニバッチ最適化を使用する確率的勾配降下の拡張機能です。L-BFGSソルバーはより安定したソルバーであるのに対し、Adamソルバーは参照するデータを少くなくして進捗を早めることができます。Adamは、メモリー要件が少なく、計算効率が高いため、データまたはパラメータ(あるいはその両方)の観点から大きな問題に特に適しています。