混合高斯(2)

期望最大化算法

  上节中公式(9.17),(9.19),(9.22)给出了混合高斯分布模型,单个高斯参数均值、协方差,以及高斯分布的系数。

\[\mu_k = \frac{\sum_{n=1}^{N} \gamma(z_{nk}) x_n}{\sum_{n=1}^{N} \gamma(z_{nk})} \tag{9.17} \]

\[\Sigma_k = \frac{\sum_{n=1}^{N} \gamma(z_{nk}) (x_n-\mu_k)(x_n-\mu_k)^T}{\sum_{n=1}^{N} \gamma(z_{nk})} \tag{9.19} \]

\[\pi_k =\frac{1}{N}\sum_{n=1}^N \gamma(z_{nk})=\frac{N_k}{N} \tag{9.22} \]

而这些模型参数求解表达式,又要依赖后验概率值\(\gamma(z_{k})\)

\[\begin{aligned} \gamma(z_{k}) =p(z_k=1|x) & = \frac{p(z_k=1)p(x|z_k=1)}{\sum_{j=1}^{K}p(z_j=1)p(x|z_j=1)}\\ & = \frac{\pi_k \mathcal N(x|\mu_k, \Sigma_k)}{\sum_{j=1}^{K}\pi_j \mathcal N(x|\mu_j, \Sigma_j)} \end{aligned} \tag {9.13} \]

因此就有一种迭代的方法来求解最大似然解。首先为均值、协方差、混合系数选择一个初始值,然后就可以求后验概率;接下来就是这两个过程可以交替进行。具体如下:

  • 初始化均值\(\mu_k\)、协方差\(\Sigma_k\)和混合系数\(\pi_k\),计算对数似然函数的初始值。
  • E 步:使用当前参数值计算各个高斯分量的贡献占比。

\[\gamma(z_{nk}) = \frac{\pi_k \mathcal N(x_n|\mu_k, \Sigma_k)}{\sum_{j=1}^{K}\pi_j \mathcal N(x_n|\mu_j, \Sigma_j)} \tag {9.23} \]

  • M 步:使用当前贡献占比,重新估计模型参数。

\[\mu_k^{new} = \frac{\sum_{n=1}^{N} \gamma(z_{nk}) x_n}{\sum_{n=1}^{N} \gamma(z_{nk})} \tag{9.24} \]

\[\Sigma_k^{new} = \frac{\sum_{n=1}^{N} \gamma(z_{nk}) (x_n-\mu_k^{new})(x_n-\mu_k^{new})^T}{\sum_{n=1}^{N} \gamma(z_{nk})} \tag{9.25} \]

\[\pi_k^{new} =\frac{1}{N}\sum_{n=1}^N \gamma(z_{nk})=\frac{N_k}{N} \tag{9.26} \]

  • 计算对数似然函数

\[ln\{p(X|\pi,\mu,\Sigma)\} = \sum_{n=1}^N ln \{ \sum_{k=1}^K \pi_k \mathcal N(x_n|\mu_k,\Sigma_k) \} \tag {9.28} \]

检查模型参数或者对数似然函数的收敛性,如果没有满足收敛准则,则返回E步继续迭代计算。

TODO list
使用EM算法估计混合高斯分布参数。

posted @ 2023-05-14 17:21  星辰大海,绿色星球  阅读(18)  评论(0编辑  收藏  举报