1

EM を使用して GMM を計算するための Mapreduce の実装 (またはチュートリアル) はどこにありますか?
また、mapreduce フレームワークを使用してそれを行うことは本当に実現可能ですか?

この講義のリンクを見つけましたが、詳細な説明が含まれていません。また、データ(平均と分散)が大きい場合、マッパーからレデューサーに渡すにはどうすればよいですか?

4

1 に答える 1

4

OK、あなたは EM アルゴリズムを実装した経験があると言いました。説明は簡単です。

EMアルゴリズム

ご存じのとおり、EM アルゴリズムは最尤法を見つけるための反復法です。1 回の反復は、期待値 (E ステップ) と最大化ステップ (M ステップ) の 2 つのステップで構成されます。

E-stepでは、サンプルの尤度が前のモデルから計算されます。をサンプル数とすると、尤度nを得ることができますn


ここで、尤度計算は独立して実行される。したがって、これはマルチプロセッサ環境を使用して実行できます。


1 台のマシンに 4 つの CPU があると仮定すると、n/4可能性は各 CPU で計算できます。4倍高速です(IO時間は無視されます)

M-stepでは、新しいモデルが尤度によって導出されます。

マップリデュースする

計算電磁界

  • E-step は、mapperサンプルが互いに独立しているため、mapreduce 上のタスクに拡張できます。
    • 入力
      • キー:なんでも
      • 値: サンプル
    • 出力
      • キー:なんでも
      • value: 入力サンプルの尤度
  • M-step はreducerタスクに拡張できます (これは複数のレデューサーにすることができますが、単に 1 つのレデューサーをお勧めします)。
    • 入力
      • キー:なんでも
      • 値: 可能性
    • 出力
      • キー:なんでも
      • 値: 次のモデル

データ表現

  • トレーニング サンプルは次のディレクトリにあります。HDFS
    • これはの入力になりますmapreduce
  • 以前のモデルもあるHDFSが、トレーニング サンプルとは異なるディレクトリに ある
    • 分散キャッシュを使用しmappersて、モデルがどこにあるかを知らせます

反復

1 つの mapreduce タスクは、EM アルゴリズムの 1 回の反復に類似しています。したがって、収束するまで次の mapreduce タスクを繰り返す必要があります

簡単に説明しました。実装中に多くの問題に直面します。

これが役立つことを願っています。

于 2014-04-26T07:40:24.263 に答える