EM Algorithm
観測変数と、潜在変数を持つ何かしらの確率モデルの対数尤度を最大化するパラメータを求めたい問題を考える。
このとき、以下の条件が満たされるなら、EMアルゴリズムの登場となる。
- 対数尤度の最大化は難しいが、完全データ対数尤度の最大化は簡単
これだけ言われてもわかりづらいと思うけど、例はあとで見るのでとりあえず今は の計算をの計算に帰着させればOKと思って欲しい。
対数尤度をゴリゴリ変形する。
ここで、任意の確率分布を導入して、
イェンセンの不等式を用いると
ここで、は対数尤度の下限になっている。なので、EMアルゴリズムではを最大化するとを求めることで対数尤度を最大化する。
の式を見ると、その中にはなく、しか無いことが分かる。つまり簡単に計算できるようになったわけだ。
で、を最大化するとを求めるんだけど、
- を固定してについてを最大化するE-step
- を固定してについてを最大化するM-step
を交互に繰り返す。この繰り返しで対数尤度が必ず単調増加していくというのがEMアルゴリズムのポイントなんだけどその証明はいたるところにあるのでここでは省略。
E-step
を固定して、を最大化するを求める。
天下り的だけどまず
を示す。ここでは確率分布と確率分布の間のKLダイバージェンスを示す。
以下、を変形してを示す。
以上より示された。
超重要ポイントが一つ。の選び方について、確率分布であること以外はなんの仮定も置いていない。つまり、は何を選んでも良い。別の言い方をすると、どんなを選んでもの値にはなんの影響も与えない。
つまり、をにするを選べば、(は変化しないから)が最大になることが分かる。
そして、KLダイバージェンスはの時に限ってになるため、とすればがについて最大化されることが分かる。
M-step
を固定してを最大化するを求める。
Mステップでは、前回のEステップの結果、が与えられていると考える。ではなくとなっているのは、今回最大化するには関係ないということを意味している。つまり、は定数であると考える。
以下、を変形する
第二項はに関係ないから
つまり、を最大化するためには、を最大化するを求めれば良いことが分かる。これを、Q関数
と言う。
以上より、Mステップでは、と固定されたうえで、を最大化するを求める。を最大化するにはを最大化するを求めれば良い。
まとめ
- Eステップではを固定してを計算する
- Mステップではと固定してを最大化するを求める。