混合ガウスモデル

混合ガウスモデルの概要

定義(混合ガウスモデル)

\(K\) 個の多変量正規分布 \(\mathcal{N}(\boldsymbol{\mu}_k,\Sigma_k)~(k=1,2,\cdots,K)\) に対して、それぞれの確率密度関数を \(\mathcal{N}(\boldsymbol{x}|\boldsymbol{\mu}_k,\Sigma_k)\) とする。 このとき、重み

\[ \pi_{k}\in[0,1],\quad \sum_{k=1}^K\pi_k=1 \]

を用いて

\[ p(\boldsymbol{x})=\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x} \mid \boldsymbol{\mu}_k,\Sigma_k) \]

という確率密度関数を定めるモデルを混合ガウスモデルという。

EMアルゴリズム

アルゴリズム(混合ガウスモデルのEMアルゴリズム)

パラメータ \(\boldsymbol{\mu}_k,\Sigma_k,\pi_k\) の初期値を定め、以下の操作を収束するまで繰り返す。

  1. Eステップ

    全データ点 \(\boldsymbol{x}_i\) に対して、負担率を計算する。

    \[ r_{ik}^{(t)}=\frac{\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_j,\Sigma_j)} \quad (i=1,\cdots,N) \]
  2. Mステップ

    \(\displaystyle N_k=\sum_{i=1}^Nr_{ik}\) とし、パラメータを更新する。

    \[ \begin{align} \boldsymbol{\mu}_k &\gets \frac{1}{N_k}\sum_{i=1}^Nr_{ik}\\ \Sigma_k &\gets \frac{1}{N_k}\sum_{i=1}^Nr_{ik}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\\ \pi_k &\gets \frac{N_k}{N} \end{align} \]

混合ガウスモデルの理論

標本 \(\mathcal{X}=\{\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_N\}\) が得られたとき、尤度は

\[ \begin{align} L(\boldsymbol{\theta} \mid \mathcal{X}) &=\prod_{i=1}^Np(\boldsymbol{x}_i;\boldsymbol{\theta}) \\ &=\prod_{i=1}^N\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) \end{align} \]

対数尤度は

\[ \begin{align} \ell(\boldsymbol{\theta} \mid \mathcal{X}) &=\log L(\boldsymbol{\theta} \mid \mathcal{X}) \\ &=\sum_{i=1}^N\log\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) \end{align} \]
最適化問題
\[ \max_{\boldsymbol{\mu}_k,\Sigma_k}\sum_{i=1}^N\log\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) \quad \text{s.t.} \quad \sum_{k=1}^K\pi_k=1 \]

ラグランジュ関数は

\[ \mathcal{L}(\boldsymbol{\mu}_k,\Sigma_k,\lambda)=\sum_{i=1}^N\log\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) + \lambda\left(\sum_{k=1}^K\pi_k-1\right) \]

となり、次の条件を考えます。

\[ \frac{\partial\mathcal{L}}{\partial\boldsymbol{\mu}_k}=\boldsymbol{0}^\top,\quad \frac{\partial\mathcal{L}}{\partial\Sigma_k}=O,\quad \sum_{k=1}^K\pi_k=1 \]

\(\dfrac{\partial\mathcal{L}}{\partial\boldsymbol{\mu}_k}=\boldsymbol{0}^\top\) について

\[ \begin{align} \frac{\partial\mathcal{L}}{\partial\boldsymbol{\mu}_k} &=\frac{\partial}{\partial\boldsymbol{\mu}_k}\sum_{i=1}^N\log\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) \\ &=\sum_{i=1}^N\frac{\partial}{\partial\boldsymbol{\mu}_k}\log\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) \\ &=\sum_{i=1}^N \frac{\displaystyle\frac{\partial}{\partial\boldsymbol{\mu}_k}\sum_{k=1}^K\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_j,\Sigma_j)} \\ &=\sum_{i=1}^N \frac{\pi_k\dfrac{\partial}{\partial\boldsymbol{\mu}_k}\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_j,\Sigma_j)} \\ \end{align} \]

ここで

\[ \begin{align} \frac{\partial}{\partial\boldsymbol{\mu}_k} \mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k) &=\frac{\partial}{\partial\boldsymbol{\mu}_k} \frac{1}{\sqrt{(2\pi)^d|\Sigma_k|}}e^{-\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)} \\ &=\frac{1}{\sqrt{(2\pi)^d|\Sigma_k|}} \frac{\partial}{\partial\boldsymbol{\mu}_k} e^{-\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)} \\ &=\frac{1}{\sqrt{(2\pi)^d|\Sigma_k|}} (\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1}e^{-\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)} \\ &=\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1} \end{align} \]

なので

\[ \begin{align} \frac{\partial\mathcal{L}}{\partial\boldsymbol{\mu}_k} &=\sum_{i=1}^N \frac{\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_j,\Sigma_j)}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1} \\ \end{align} \]

となります。

\[ r_{ik}:=\frac{\pi_k\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_k,\Sigma_k)}{\displaystyle\sum_{j=1}^K\pi_j\mathcal{N}(\boldsymbol{x}_i \mid \boldsymbol{\mu}_j,\Sigma_j)} \]

とおくと

\[ \begin{align} \frac{\partial\mathcal{L}}{\partial\boldsymbol{\mu}_k} &=\sum_{i=1}^N r_{ik}(\boldsymbol{x}_i-\boldsymbol{\mu}_k)^\top\Sigma_k^{-1} \\ \end{align} \]

演習問題

問題

解答