インテル® DAAL 2017 デベロッパー・ガイド
記憶制限 BFGS (Broyden-Fletcher-Goldfarb-Shanno) は、関数和として表すことができる目的関数を最小化するアルゴリズムです。
以下に一般的な形式の問題を解くアルゴリズム [Byrd2015] を示します。
以下の項目を指定します。
k を 1 から nIterations まで反復します。
t = -1 を設定します。
置換なしのインデックスのセット I = {i1, i2, ... , ib}, 1 ≤ il < n, l ∈ {1, ..., b}, |I| = b = batchSize を選択します。
次の項の勾配を計算します。
次の場合に停止します。
xk をインクリメントします。
ここで、H は、ヘッセ更新アルゴリズムにより m 補正ペアから計算された逆ヘッセ行列の近似です。
L 反復の補正ペアを計算します。mod(k, L) = 0 の場合:
t = t + 1 を設定します。
t > 0 の場合:
置換なしのインデックスのセット IH = {i1, i2, ... , ibH}, 1 ≤ il < n, l ∈ {1, ..., bH}, | IH | = bH = correctionPairBatchSize を選択します。
サブサンプリングされたヘッセ行列を計算します。
ここで、
は関数 Fi のヘッセ行列です。
補正ペア (st, yt) を計算します。
結果は、ループ終了後の xk の値です。
このアルゴリズムは、補正ペアのセットから逆ヘッセ行列の近似を計算します [Byrd2015]。
補正ペアのセットで以下の計算を行います。
H を設定します。
j を反復します。
BFGS (Broyden-Fletcher-Goldfarb-Shanno) 公式を適用します。
H を返します。