View on GitHub

memo

Expectation Maximization Algorithm

EM algorithm

観測可能な変数以外にモデルを制御する確率変数(潜在変数と呼ばれる)がある場合に、行う最尤法のようなもの。

最尤法では、観測値の確率が最も大きくなるように尤度関数を最大化する。 潜在変数$Z$がある場合は尤度関数の最大化をしても$Z$の$\theta$は$Z$についてrandomなままである。 尤度関数を最大化する前に、潜在変数について(条件付き)期待値を取り、その期待値をパラメータ$\theta$について最大化するのが、EM algorithmである。

潜在変数を考える理由は、例えば株価の予測をする際に市場で観測できる指標以外に、世界情勢や政策などの必ずしも観測可能でない変数の影響を受けて株価が変化するといったモデルを考える場合に有用となる。

Definition

Algorithm

対数尤度関数を以下で定義し、

\[L(\bar{x}_{N}, \bar{z}_{N}; \theta) := \ln p_{\bar{X}_{N}, \bar{Z}_{N}}(\bar{x}_{N}, \bar{z}_{N}; \theta)\]

\(\bar{x}_{N}\)と\(x_{1}, \ldots x_{N}\)などを記法の簡潔さの為区別せず用いる。 以下の反復法で、$\theta^{k}$を更新して行く方法をEM algorithmという。

Step1

$\theta^{0}$を適当にきめ、$k=0$とする。

Step2 (Expectation)

$Q^{k}$を以下のように決める。

\[Q^{k}(\theta) := \int p_{Z_{1}, \ldots, Z_{N} \mid \bar{X}_{N}}(z_{1}, \ldots, z_{N} \mid \bar{x}_{N}; \theta^{k}) L(\bar{x}_{N}, z_{1}, \ldots, z_{N}; \theta) \ dz_{1} \cdots dz_{N}\]

対数尤度関数について、潜在変数$Z$の(条件付き)期待値をとって、$Z$のrandomnessを取り除いている。

Step3 (Maximization)

尤度関数最大化と同じく、$Z$に対して期待値を取ったおのに対して最大化を行う。

\[\theta^{k+1} := \argmax_{\theta} Q^{k}(\theta)\]

$\theta^{k}$が収束していないければ、$k \leftarrow k + 1$としてStep2へ戻る。