私は、確率的勾配降下法を使用してガウス混合モデルに適合するオンラインカテゴリ学習モデルに取り組んでいます。このモデルは、Toscano&McMurray(2010)で使用されているオンライン学習モデルに基づいています。
勾配降下法はカテゴリーの平均と頻度/混合確率を推定するのにかなりうまく機能しているようですが、混合成分の共分散の推定に問題があります。勾配降下法の更新に使用してきた偏微分は、Petersen&Pedersen(2008)(p。
で始まります
ピーターセン&ペダーセンは、共分散行列に関して偏微分を与えるとして
Pythonで実装しているので、各の勾配降下ステップは次のです(これはわずかな簡略化であり、すべてのコンポーネントのは更新を実行する前に計算されます)。 Δ Σ
j.sigma += learning_rate*(G(x)/M(x))*0.5*(-inv(j.sigma) + inv(j.sigma).dot((x-j.mu).dot((x-j.mu).transpose())).dot(inv(j.sigma)))
ここで、jは混合の番目の成分を表すオブジェクトであり、j.sigmaとj.muはその成分の平均と分散です。G(x)/ M(x)は、を計算するいくつかのコードのρ jのNは、 xは(μ J、Σ jは)
だから、私のコードに何か問題があるのではないか(非常に可能性が高い)、またはこれが3次元を超えるデータを処理するときにこの種のモデルに当てはまる本当に悪い方法であるのかと思います(単変量のアルゴリズムについてはToscano&McMurrayを参照)間違いなく機能する2変量データ)。
参考文献:Toscano、JC、&McMurray、B.(2010)。カテゴリとのキューの統合:教師なし学習と分布統計を使用して、音声の音響キューに重みを付けます。認知科学、34、434-464。
ピーターセンとペダーソン。マトリックスクックブック、バージョン:2008年11月14日