GMMのパラメータ推定

GMMのパラメータ推定#

混合ガウスモデル(GMM)は以下のような式で表される.

\[ \begin{align} p(\boldsymbol{x}; \boldsymbol{\phi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \sum_{k = 1}^K \phi_k \mathcal{N}(\boldsymbol{x}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \end{align} \]

ここで,データ \(\mathcal{D} = \{\boldsymbol{x}^{(1)}, \boldsymbol{x}^{(1)}, \ldots, \boldsymbol{x}^{(N)}\}\) が与えられたとき,パラメータ \(\boldsymbol{\phi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}\) を最尤推定によって求めることを考える.

簡単のため,パラメータをまとめて \(\boldsymbol{\theta} ~(= (\boldsymbol{\phi}, \boldsymbol{\mu}, \boldsymbol{\Sigma}))\) とする.モデルがパラメータ \(\theta\) をとるときの尤度 \(p(\mathcal{D}; \boldsymbol{\theta})\) は,

\[ \begin{align} p(\mathcal{D}; \boldsymbol{\theta}) &= p(\boldsymbol{x}^{(1)}; \boldsymbol{\theta}) ~ p(\boldsymbol{x}^{(2)}; \boldsymbol{\theta}) ~ \cdots ~ p(\boldsymbol{x}^{(N)}; \boldsymbol{\theta}) \end{align} \]

と表される.

そのままでは扱いづらいので,対数をとると以下のようになる.

\[\begin{split} \begin{align} \log p(\mathcal{D}; \boldsymbol{\theta}) &= \log (~ p(\boldsymbol{x}^{(1)}; \boldsymbol{\theta}) ~ p(\boldsymbol{x}^{(2)}; \boldsymbol{\theta}) ~ \cdots ~ p(\boldsymbol{x}^{(N)}; \boldsymbol{\theta}) ~)\\ &= \sum_{n = 1}^N \log p(\boldsymbol{x}^{(n)}; \boldsymbol{\theta})\\ &= \sum_{n = 1}^N \left( \log \sum_{k = 1}^K \phi_k \mathcal{N}(\boldsymbol{x}^{(n)}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \right) \end{align} \end{split}\]

ここで,尤度が最も高い,すなわち \(\log p(\mathcal{D}; \boldsymbol{\theta})\) を最大にするような \(\theta\) が,データ \(\mathcal{D}\) に最も適合したパラメータということになる,

よってこれを求めればよいが,式(5) は解析的に解くことが難しいため,別の手法が必要とされる.


参考:「ゼロから作るディープラーニング 5」p84