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

バッチ処理

アルゴリズムの入力

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

入力 ID

入力

data

EM アルゴリズムを適用するデータを含む n x p 数値テーブルのポインター。入力は、NumericTable の派生クラスのオブジェクトです。

inputWeights

初期混合重みを含む 1 x k 数値テーブルのポインター。この入力は、NumericTable の派生クラスのオブジェクトです。

inputMeans

k x p 数値テーブルのポインター。このテーブルの各行は、i 番目のコンポーネントの平均の初期値を含みます。ここで、i=0, 1, …, k-1。この入力は、NumericTable の派生クラスのオブジェクトです。

inputCovariances

k 数値テーブル、次のサイズの i 番目の混合コンポーネントの p x p 分散共分散行列を含む DataCollection オブジェクトのポインター。

  • p x p - フル共分散行列格納スキームの場合

  • 1 x p - 対角共分散行列格納スキームの場合

NumericTable の派生クラスのオブジェクトをコレクションに含めることができます。

inputValues

GMM 用 EM 初期化アルゴリズムの結果のポインター。初期化の結果は、重み、平均、共分散のコレクションを含みます。重み、平均、分散のコレクションを明示的に指定する代わりに、この入力を使用して GMM 用 EM アルゴリズムの初期値を設定できます。

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

GMM 用 EM アルゴリズムのパラメーターは次のとおりです。

パラメーター

デフォルト値

説明

algorithmFPType

float

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

method

defaultDense

パフォーマンス指向の計算メソッド。アルゴリズムでサポートされている唯一のメソッドです。

nComponents

適用不可

ガウス混合モデルのコンポーネントの数、必須パラメーター

maxIterations

10

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

accuracyThreshold

1.0e-04

アルゴリズムを終了するしきい値。

covariance

BatchIface クラスのオブジェクトのポインター

共分散行列を計算するアルゴリズムのポインターです。デフォルトでは、それぞれのインテル® DAAL アルゴリズムが使用され、BatchIface の派生クラスで実装されます。

regularizationFactor

0.01

悪条件データの場合の共分散正規化係数

covarianceStorage

full

ガウス混合モデルの共分散行列格納スキーム。

  • full - 共分散行列はサイズ p x p の数値テーブルとして格納されます。行列のすべての要素が処理中に更新されます。

  • diagonal - 共分散行列はサイズ 1 x p 数値テーブルとして格納されます。行列の対角要素のみ処理中に更新され、残りの要素は 0 であると仮定されます。

アルゴリズムの出力

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

結果 ID

結果

weights

混合重みを含む 1 x k 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

means

各行に i 番目の混合コンポーネントの平均の推定を含む k x p 数値テーブルのポインター。ここで、i=0, 1, …, k-1。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

covariances

k 数値テーブル、次のサイズの i 番目の混合コンポーネントの p x p 分散共分散行列を含む DataCollection オブジェクトのポインター。

  • p x p - フル共分散行列格納スキームの場合

  • 1 x p - 対角共分散行列格納スキームの場合

デフォルトでは、このコレクションは HomogenNumericTable クラスのオブジェクトを含みますが、(CSRNumericTable および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

goalFunction

最後の反復後の尤度関数の対数値を含む 1 x 1 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトです。

nIterations

アルゴリズムの完了後に計算される反復回数を含む 1 x 1 数値テーブルのポインター。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトです。

サンプル

C++: em_gmm_dense_batch.cpp

Java*: EmGmmDenseBatch.java

Python*: em_gmm_dense_batch.py

関連情報