EMアルゴリズム
EMアルゴリズム(expectation–maximization algorithm)とは、統計学において、確率モデルのパラメータを最尤推定する手法の一つであり、観測不可能な潜在変数に確率モデルが依存する場合に用いられる。EM法、期待値最大化法(きたいちさいだいかほう)とも呼ばれる。その一般性の高さから、機械学習、音声認識、因子分析など、広汎な応用がある。
EMアルゴリズムは反復法の一種であり、期待値(expectation, E) ステップと最大化 (maximization, M)ステップを交互に繰り替えすことで計算が進行する。Eステップでは、現在推定されている潜在変数の分布に基づいて、モデルの尤度の期待値を計算する。Mステップでは、E ステップで求まった尤度の期待値を最大化するようなパラメータを求める。M ステップで求まったパラメータは、次の E ステップで使われる潜在変数の分布を決定するために用いられる。
今、2値x、zを取る確率分布があり、その確率分布の確率密度関数p(x,z|\theta)が未知の母数\theta\in\mathbb{R}^mによりパラメトライズされているとする。ここで\mathbb{R}は実数全体の集合を表す。
そしてp(x,z|\theta)に従って標本(x_1,z_1),\ldots,(x_n,z_n)を独立に抽出したものの、何らかの事情でZ=(z_1,\ldots,z_n)の値は観測できず、X=(x_1,\ldots,x_n)だけが観測できたとする。実応用上は例えば、\theta=(\theta_1,\theta_2)という形をしており、まず観測不能なz_i\sim p_1(z|\theta_1)が選ばれた後、z_iに依存して観測可能なx_i\sim p_2(x|\theta_2,z_i)が選ばれる、といったケースにEMアルゴリズムが使われる事が多いが、必ずしもこのケースにあてはまらなくてもよい。
簡単の為、記号を混用してX、Zの同時確率分布の確率密度関数もp(X,Z|\theta)と書く。以下ではZが離散変数の場合について説明するが、Zが連続変数の場合も総和を積分に置き換える以外は同様である。
このような状況において母数θを最尤推定する事が我々の目標である。しかしZを知らない場合のX=(x_1,\ldots,x_n)に関する対数尤度
\ell(\theta|X):=\log p(X|\theta)=\log \sum_Zp(X,Z|\theta)
を最大値を直接計算するのは一般には簡単ではない。
EMアルゴリズムは、反復法により、数列\hat{\theta}^{(t)}で対数尤度\ell(\hat{\theta}^{(t)}|X) が単調非減少であるものを作るアルゴリズムである。最尤推定量を\hat{\theta}_{\mathrm{MLE}とすると、
\ell(\hat{\theta}_{\mathrm{MLE}|X)\ge \ell(\hat{\theta}^{(t)}|X)
である事から、\ell(\hat{\theta}_{\mathrm{MLE}|X)が有限であれば\ell(\hat{\theta}^{(t)}|X) の単調性より\ell(\hat{\theta}^{(t)}|X) は必ず収束する。
EMアルゴリズムでは、以下の手順により数列\hat{\theta}^{(0)},\hat{\theta}^{(1)},\ldotsを作る。
初期値\hat{\theta}^{(0)}を(何らかの方法で)選ぶ。
t=0,1,\ldotsに対して以下を実行する
E ステップ: p(Z|X,\hat{\theta}^{(t)})を求める。
M ステップ: \hat{\theta}^{(t+1)} = \underset{\theta} {\operatorname{arg\,max} \ Q(\theta|\hat{\theta}^{(t)}) \, を求める。
ここでQは対数尤度関数 \log p (X,Z|\theta)のZに関する条件付き期待値
Q(\theta|\theta^{(t)})
= \operatorname{E}_{Z|X,\hat{\theta}^{(t)}\big[ \log p(X,Z|\theta)  \big] =\sum_Z p(Z|X,\hat{\theta}^{(t)}) \log p (X,Z|\theta) \,
である。実応用上は、\hat{\theta}^{(t)}の値が十分小さくなったと判定する何らかの条件を事前に定めておき、その条件を満たしたら上述のループを終了する。ループを終了する条件は、パラメータ値や対数尤度関数を使って定められる。
EステップとMステップの切れ目は書籍により異なるので注意が必要である。本項では次節の議論と整合性をとる為に文献の切れ目に従ったが、文献ではQ(\theta|\hat{\theta}^{(t)})  を計算する所までがEステップであり、Q(\theta|\hat{\theta}^{(t)})  の\operatorname{arg\,max} を取るところだけがMステップである。
ステップの名称「E」と「M」はそれぞれExpectation(期待値)、Maximization(最大化)の略であり、文献のようにEステップでQ(\theta|\hat{\theta}^{(t)})  を求める為に期待値を計算し、MステップでQ(\theta|\hat{\theta}^{(t)})  の\operatorname{arg\,max} を取るところに名称の由来がある。
EMアルゴリズムで我々が求めたいのは、X=(x_1,\ldots,x_n)を観測した際における対数尤度
\ell(\theta|X):=\log p(X|\theta)
を最大化する母数\thetaであった。EMアルゴリズムの動作原理を説明する為、以下のような汎関数を考える:
\mathcal{L}(q,\theta)
=\sum_Z q(Z) \log {p(X,Z|\theta)\over q(Z)}   ...(Eq.1)
ここでq(Z) は任意の確率密度関数である。p_{X,\theta}(Z):=p(Z|X,\theta) とすると、p(Z|X,\theta) p(X|\theta) = p(X,Z|\theta) より、カルバック・ライブラー情報量
\mathrm{KL}(q||p_{X,\theta})=-\sum_Z q(Z)\log{p(Z|X,\theta) \over q(Z)}
\mathcal{L}(q,\theta)=\ell(\theta|X)-\mathrm{KL}(q||p_{X,\theta})  ...(Eq.2)
と書ける事が分かる。カルバック・ライブラー情報量が常に非負である事(ギブスの不等式)から、
\ell(\theta|X)\ge\mathcal{L}(q,\theta)
であるので、\mathcal{L}(q,\theta) は\ell(\theta|X) の下限になっている。EMアルゴリズムはこの下限\mathcal{L}(q,\theta) を逐次的に改善していくことで、\ell(\theta|X) を可能な限り最大化するアルゴリズムである。すなわち、EステップとMステップは以下のように書き換えられる事を示す事ができる:
E ステップ: \hat{q}^{(t)} = \underset{q}{\operatorname{arg\,max} \mathcal{L}(q,\hat{\theta}^{(t)})  を求める。
M ステップ: \hat{\theta}^{(t+1)} = \underset{\theta}{\operatorname{arg\,max}\mathcal{L}(\hat{q}^{(t)},\theta)  を求める。
この事実から対数尤度\ell(\hat{\theta}^{(t)}|X) の単調非減少性が明らかに従う。
本節ではEステップ、Mステップが上述のように書き換えられることを示す。本節の証明は文献を参考にした。
カルバック・ライブラー情報量\mathrm{KL}(q||p_{X,\theta}) が最小値0になるのはq=p_{\theta,X}の場合だけであった事から、(Eq.2)より\mathcal{L}(q,\theta) は
q(Z)=p(Z|X,\theta)
が満たされる場合に最大値を取る。すなわちEMアルゴリズムにおけるEステップは、\theta=\hat{\theta}^{(t)} を固定したままの状態で、\mathcal{L}(q,\theta) を最大化するqである
\hat{q}^{(t)} := p_{X,\hat{\theta}^{(t)} = \underset{q}{\operatorname{arg\,max}\mathcal{L}(q,\hat{\theta}^{(t)})
を求めるステップである。
\mathcal{L}(q,\theta) の定義式(Eq.1)に\hat{q}^{(t)}=p_{X,\hat{\theta}^{(t)}を代入すると、
\mathcal{L}(\hat{q}^{(t)},\theta)
=\sum_Z p(Z|X,\theta^{(t)})\log {p(X,Z|\theta)\over p(Z|X,\theta^{(t)})}
=Q(\theta|\theta^{(t)})-H_{X,\theta^{(t)}(Z)
が成立し(ここでH_{X,\theta^{(t)}(Z)=\textstyle \sum_Z p(Z|X,\theta^{(t)}) \log p(Z|X,\theta^{(t)})は条件付きエントロピー)、上式右辺第二項はθに依存しないので、
\hat{\theta}^{(t+1)}
= \underset{\theta}{\operatorname{arg\,max} Q(\theta|\hat{\theta}^{(t)})
= \underset{\theta}{\operatorname{arg\,max} \mathcal{L}(p_{X,\hat{\theta}^{(t)},\theta)
が成立する。
EMアルゴリズムは観測データの対数尤度を、E ステップとM ステップの繰り返しにより最大化するアルゴリズムであるので、正確にはlog-EMアルゴリズムというべきものである。log関数にはα-logとよばれる一般化された対数があるので、それを用いるとlog-EMを特例として含むアルゴリズムを作り上げることができる。ただし、この場合は尤度ではなくてα-log尤度比とαダイバージェンスを用いて基本等式を導くことになる。このようにして得られたものがα-EMアルゴリズム  であり、log-EMアルゴリズムをサブクラスとして含んでいる。α-EMアルゴリズムは適切なαを選ぶことにより、log-EMアルゴリズムよりも高速になる。また、log-EMが隠れマルコフモデル推定アルゴリズム(Baum-Welchアルゴリズム)を含んでいるように、α-EMアルゴリズムから高速なα-HMMアルゴリズムを得ることができる。
EMアルゴリズムは、アーサー・デンプスター、ナン・レアード、ドナルド・ルービンによる1977年の論文で導入され、その名が付けられた。彼らは、EMアルゴリズムがほかの複数の著者によって「特殊な文脈でなんども提案されてきた」("proposed many times in special circumstances") ことを述べた上で、EMアルゴリズムの一般化を行い、その背後にある理論を追求した。
本来のEMアルゴリズムでは、期待値の評価において潜在変数のとりうる値すべてを列挙することが必要なため、効率的に扱える分布が限られていた。しかしその後、マルコフ連鎖モンテカルロ法や変分ベイズ法が考案されたことにより、より一般の分布でも現実的な時間での計算が可能になった。