固定: σ₁=σ₂=1.5、π₁=π₂=0.5(初期値)。真値: μ=(0, 4), σ=(1.0, 1.5), π=(0.4, 0.6), N=200。
上: ヒストグラム(灰)/真の混合密度(黒破線)/推定混合密度(青実線)/成分1(緑破線)/成分2(赤破線)。下: 反復ごとの対数尤度 LL[t](赤線、単調増加)。
2 成分ガウス混合モデル $p(x)=\pi_1\mathcal{N}(x|\mu_1,\sigma_1^2)+\pi_2\mathcal{N}(x|\mu_2,\sigma_2^2)$ を、E ステップと M ステップを反復する EM 法で推定します。
E ステップ(responsibility $\gamma_{ik}$ は、データ $x_i$ が成分 $k$ から生成された事後確率):
$$\gamma_{ik}=\frac{\pi_k\,\mathcal{N}(x_i|\mu_k,\sigma_k^2)}{\sum_j \pi_j\,\mathcal{N}(x_i|\mu_j,\sigma_j^2)}$$M ステップ(責任度の重みで $\mu_k, \sigma_k^2, \pi_k$ を更新):
$$N_k=\sum_i \gamma_{ik},\quad \mu_k\leftarrow\frac{1}{N_k}\sum_i \gamma_{ik}\,x_i,\quad \sigma_k^2\leftarrow\frac{1}{N_k}\sum_i \gamma_{ik}(x_i-\mu_k)^2,\quad \pi_k\leftarrow\frac{N_k}{N}$$対数尤度(EM の各反復で単調増加することが保証):
$$\mathrm{LL}=\sum_i \log\!\left(\sum_k \pi_k\,\mathcal{N}(x_i|\mu_k,\sigma_k^2)\right)$$LL の単調増加は実装の正しさの確認に使えます。反復ごとに LL が下がる場合は計算式にバグがあります。