多次元混合ガウス分布での incremental EM 更新式


計算してみた。
が、Σの式、ちょっと自信がないから実装する前に晒しとく。


[2010/03/15] Σの更新式が間違っていたので訂正(今度も絶対あってる自信はないが)


x_m について更新するとき、

E step


\gamma(z_{nk})^{(t+1)} = \gamma(z_{nk})^{(t)}, \; (n \ne m)


\gamma(z_{mk})^{(t+1)} = \frac {\pi_k^{(t)} \mathcal{N}(\bf{x}_m | \bf{\mu}_k^{(t)}, \bf{\Sigma}_k^{(t)})} {\sum_{j=1}^K \pi_j^{(t)} \mathcal{N}(\bf{x}_m | \bf{\mu}_j^{(t)}, \bf{\Sigma}_j^{(t)})}, \; (k=1,...,K)

M step


\Delta_k^{(t+1)} = \gamma(z_{mk})^{(t+1)} - \gamma(z_{mk})^{(t)} とおくと


N_k^{(t+1)} = N_k^{(t)} + \Delta_k^{(t+1)}


\pi_k^{(t+1)} = \pi_k^{(t)} + \frac{\Delta_k^{(t+1)}}{N}


\bf{\mu}_k^{(t+1)} = \bf{\mu}_k^{(t)} + \frac{\Delta_k^{(t+1)}}{N_k^{(t+1)}} (\bf{x}_m - \bf{\mu}_k^{(t)})


\bf{\Sigma}_k^{(t+1)} = \left(1-\frac{\Delta_k^{(t+1)}}{N_k^{(t+1)}}\right) \left\{ \bf{\Sigma}_k^{(t)} + \frac{\Delta_k^{(t+1)}}{N_k^{(t+1)}} (\bf{x}_m - \bf{\mu}_k^{(t)})(\bf{x}_m - \bf{\mu}_k^{(t)})^T\right\}