インテル® DAAL 2017 デベロッパー・ガイド

計算

アルゴリズムの入力

確率的勾配降下法アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

inputArgument

開始引数 θ0 の値を含むサイズ 1 x p の数値テーブル。

アルゴリズムのパラメーター

確率的勾配降下法アルゴリズムのパラメーターは次のとおりです。一部のパラメーターは計算メソッド・パラメーター method の特定の値でのみ必要です。

パラメーター

method

デフォルト値

説明

algorithmFPType

defaultDense

または

miniBatch

double

アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。

method

適用不可

defaultDense

利用可能な計算メソッド。

  • defaultDense - 1 つの項が各反復の勾配の計算に使用されます。
  • miniBatch - batchSize の項が各反復の勾配の計算に使用されます。

function

defaultDense

または

miniBatch

適用不可

関数和として表される目的関数。

nIterations

defaultDense

または

miniBatch

100

アルゴリズムの最大反復回数。

accuracyThreshold

defaultDense

または

miniBatch

1.0-e5

アルゴリズムの正解率。この正解率に達するとアルゴリズムは終了します。

batchIndices

defaultDense

または

miniBatch

NULL

目的関数の項の 32 ビット整数インデックスを含む数値テーブル。method パラメーターは数値テーブルのサイズを決定します。

  • method=defaultDense: nIterations x 1
  • method=miniBatch: nIterations x batchSize

インデックスが提供されない場合、実装はランダム・インデックスを生成します。

このパラメーターは、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。

batchSize

miniBatch

128

確率的勾配を計算するバッチ・インデックスの数。batchSize が目的関数の項の数と等しい場合、ランダム・サンプリングは実行されず、すべての項が勾配の計算に使用されます。

batchIndices パラメーターが提供された場合、アルゴリズムはこのパラメーターを無視します。

conservativeSequence

miniBatch

1 に等しいデフォルトの保守的係数を含むサイズ 1 x 1 の数値テーブル。

サイズ 1 x nIterations または 1 x 1 の数値テーブル。サイズに依存するテーブルのコンテンツ。

  • size = 1 x nIterations: 保守的係数数列 γk (k = 1, …, nIterations) の値。
  • size = 1 x 1: 各反復の保守的係数数列 γ1 = ... = γnIterations の値。

このパラメーターは、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。

innerNIterations

miniBatch

5

miniBatch メソッドの内部反復回数。

learningRateSequence

defaultDense

または

miniBatch

1 に等しいデフォルトのステップ長を含むサイズ 1 x 1 の数値テーブル。

サイズ 1 x nIterations または 1 x 1 の数値テーブル。サイズに依存するテーブルのコンテンツ。

  • size = 1 x nIterations: 学習率数列 ηk (k = 1, …, nIterations) の値。
  • size = 1 x 1: 各反復の学習率数列 η1 = ... = ηnIterations の値。

このパラメーターは、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトです。

seed

defaultDense

または

miniBatch

777

目的関数の項の 32 ビット整数インデックスの乱数生成用のシード。

アルゴリズムの出力

確率的勾配降下法アルゴリズムは次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

minimum

引数 θ* を含むサイズ 1 x p の数値テーブル。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrix および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

nIterations

アルゴリズムにより行われる 32 ビット整数の反復回数を含むサイズ 1 x 1 の数値テーブル。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(PackedSymmetricMatrixPackedTriangularMatrix、および CSRNumericTable を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

サンプル

インテル® DAAL ディレクトリーの次のサンプルを参照してください。

C++:

Java*:

Python*:

関連情報