趣旨
EMアルゴリズムを理解する。
なぜEMアルゴリズム?
なんか名前がかっこいいから機械学習を学ぶ人間として当然だから。
他にも解説記事いっぱいあるけど?
表記揺れ、定義の揺れが酷すぎて比較しづらい。例えば後述のEステップについて揺れがある。
では解説する。
表記法
- : 観測変数(即ち入力)
- : 潜在変数(観測されない変数 欠損データと呼ばれたりするが、実在性は特に重要ではない)
- : モデルパラメタ
問題設定
最尤推定がしたい。つまり、事前確率を最大にするようなを求めたい。
しかし、直接偏微分して解くことが難しく、代わりには陽に得られている状況を考える。
解法
に適当な初期値を与えた後、以下のEステップ、Mステップを収束するまで繰り返す。
Eステップ
まず以下のような事後確率を計算する。
次に先ほど計算したを用いて、以下のような期待値をとする。
期待値をとってるからE(xpectation)ステップ。
Mステップ
先ほど計算したをについて最大化し解をとする。
最大化しているからM(aximization)ステップ。
なんでうまくいくの?
細かい計算は飛ばして、ざっくり概要を述べる。めんどくさいし。
Eステップ
1. 潜在変数による周辺化
目的関数であるを潜在変数についての周辺化によって表現する。
2. を導入
任意の確率分布を導入し、以下のように式変形する。
3. Jensenの不等式を導入
3-1. Jensenの不等式って?
関数が(下に)凸であるとき、
が成立し、等号成立は以下の2種類のいずれかを満足すると成立する。
- (の値に関わらず一定)
- が原点を通る直線である(まず満足しない)
これをJensen(イェンゼン、イェンセン)の不等式と言う。なんでこれが成り立つのかは他のサイトに譲る。ともかくこれを適用することを試みる。
3-2. さっきの式に適用する
具体的には以下の右辺。
関数がであって欲しい。残念ながらは凸は凸でも上に凸だ。しかし逆に考えればとすれば下に凸になってくれる。よって、
のような対応関係を結べば、
と分かり、不等式は
と書ける(不等号の向きに注意せよ)。
3-3. 等号成立条件
では等号成立はどの時だろうか。Jensenによれば、それはの時である(が直線な訳ないので)。即ち、
で、っていくらなの? それはについて周辺化してやれば分かる。
と言うわけで、であり、等号成立条件は
と書き表せるのだった。
3-4. 等号が成立したら何が嬉しいの?
先ほどの不等式
において左辺は本来はに依存しない値であるから、をいじって等号を成立させることは右辺(下限)の最大化を意味する。よって、目的関数の値は変わってないが、それの下限の値が最大化され、続くMステップにおいて目的関数の値を増加させるのに貢献するのである。
3-5. Eステップとやってること違わない?
右辺についてに着目し式展開を行うと、
と書ける。よって、
- とした上でを求めることは
- の最大値を求めること、ひいては
- の(あくまで)下限のにおける最大値を求めることに等しい。
3-6. 厳密には
実際のEステップでは、の値としてが得られている。よって、先ほどまでの議論は実はの下限を最大化していたのだった。ではなぜそう書かないのか。おそらくだが、続くMステップでの値をいじるため、定数ではなく変数として扱うことを強調したかったのだろう。
Mステップ
先のEステップにおいて、の下限をについて最大化した。Mステップでは、その下限を今度はについて最大化している。
Jensenの不等式における右辺はEステップによって
のように表記できる。この式の最右辺をについて最大化することは、の(あくまで)下限を最大化することと等価である。しかしここで問題が発生する。
等号成立の崩壊
Eステップで導入したJensenの不等式において、等号成立条件を
と書いた。そして、実際は定数を用いて、
のように計算した。しかし、について最大化、つまりの値をいじってとしたとき、
となってしまう。要するに、旧来の(を用いた)のままでは、不等式
の等号成立条件を満たさなくなってしまう。これは何を意味するのか?
等号成立の崩壊は進歩を意味する
Mステップでやっていることは、等号が成立していた不等式
の右辺を最大化することで等号を不成立にすることである。最大化しているのだから、右辺はもちろん増加する。だが、等号が不成立なのだから、左辺はそれ以上に増加するのである。左辺というのはすなわち目的関数なので、目的関数の値が増加する結果となるのである。
Eステップに戻る
等号が不成立になっちゃったのなら、またをいじって成立させればいいじゃない、そしてまた最大化して不成立にさせればいいじゃない。それを繰り返せばいつかは目的関数の値は上限に到達し、は最尤解に限りなく近づくだろう。
結局
EMアルゴリズムは、の下限を
- について最大化(目的関数下限)
- について最大化(目的関数下限になり結果的に目的関数の値が増加)
し続けるアルゴリズムなのである。終わり。
具体的にはどこで使われてるの?
GMM(混合ガウス分布)があまりにも有名だが、IRT(項目反応理論)でも用いられていたりする。予想しないタイミングでひょっこり顔を出すので注意。
GMMだとどういう更新則になるの?
知らん。その辺のサイトに転がっているので確認せよ。書いたよ。
まとめ
EMアルゴリズムを私なりに説明した。難解なことをやっているようで(実際しっかり理解しようとすると相当厄介なのだが)実際はそこまででもない。KLダイバージェンスの説明や行間の式変形、また理論的に解が得られる保証を省略したので、概要を掴んだ後はより詳しいサイトに行ってみよう。
おまけ
変分ベイズとかもかっこいいよね。響きが。