インテル® DAAL 2017 デベロッパー・ガイド
記憶制限 BFGS アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
入力 ID |
入力 |
|
---|---|---|
inputArgument |
開始引数 x0 の値を含むサイズ 1 x p の数値テーブル。 |
記憶制限 BFGS アルゴリズムのパラメーターは次のとおりです。
パラメーター |
デフォルト値 |
説明 |
|
---|---|---|---|
algorithmFPType |
double |
アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。 |
|
method |
defaultDense |
パフォーマンス指向の計算メソッド。 |
|
function |
適用不可 |
目的関数。 |
|
nIterations |
100 |
アルゴリズムの最大反復回数。 |
|
accuracyThreshold |
1.0-e5 |
LBFGS アルゴリズムの正解率。この正解率に達するとアルゴリズムは終了します。 |
|
batchIndices |
NULL |
記憶制限 BFGS アルゴリズムのステップ 2 で使用する目的関数の項の 32 ビット整数インデックスを含むサイズ nIterations x batchSize の数値テーブル。インデックスが提供されない場合、実装はランダム・インデックスを生成します。 このパラメーターは、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。 |
|
batchSize |
10 |
確率的勾配を計算する観測数。batchIndices 数値テーブルが提供された場合、アルゴリズムの実装はこのパラメーターを無視します。 batchSize が目的関数の項の数と等しい場合、ランダム・サンプリングは実行されず、すべての項が勾配の計算に使用されます。 |
|
correctionPairBatchSize |
100 |
記憶制限 BFGS アルゴリズムのステップ 6.b.ii で補正ペア計算のためにサブサンプリングされたヘッセ行列を計算する観測数。correctionPairIndices 数値テーブルが提供された場合、アルゴリズムの実装はこのパラメーターを無視します。 correctionPairBatchSize が目的関数の項の数と等しい場合、ランダム・サンプリングは実行されず、すべての項がヘッセ行列の計算に使用されます。 |
|
correctionPairIndices |
NULL |
記憶制限 BFGS アルゴリズムのステップ 6.b.i で確率値の代わりに使用する 32 ビット整数インデックスを含むサイズ (nIterations/L) x correctionPairBatchSize の数値テーブル。インデックスが提供されない場合、実装はランダム・インデックスを生成します。 このパラメーターは、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。 |
|
m |
10 |
メモリー・パラメーター。ヘッセ行列の近似を定義する補正ペアの最大数。 |
|
L |
10 |
曲率推定計算間の反復回数。 |
|
stepLengthSequence |
1 に等しいデフォルトのステップ長を含むサイズ 1 x 1 の数値テーブル。 |
サイズ 1 x nIterations または 1 x 1 の数値テーブル。サイズに依存するテーブルのコンテンツ。
このパラメーターは、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。 |
|
seed |
777 |
目的関数からランダムに選択される項のシード。 |
記憶制限 BFGS アルゴリズムは次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。
結果 ID |
結果 |
|
---|---|---|
minimum |
引数 θ* を含むサイズ 1 x p の数値テーブル。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
|
nIterations |
アルゴリズムにより行われる 32 ビット整数の反復回数を含むサイズ 1 x 1 の数値テーブル。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix、PackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。 |
インテル® DAAL ディレクトリーの次のサンプルを参照してください。
C++: ./examples/cpp/source/optimization_solvers/lbfgs_batch.cpp
Java*: ./examples/java/source/com/intel/daal/examples/optimization_solvers/LBFGSBatch.java
Python*: ./examples/python/source/optimization_solvers/lbfgs_batch.py