高斯混合模型详细推导

一、高斯混合模型定义

  高斯混合模型具有如下概率分布形式:

$P(y|\theta)=\sum\limits_{k=1}^{K}\alpha_k\phi(y|\theta_k)$    (9.24)

其中,$\alpha$是系数,$\alpha_k\geqslant0$,$\sum\limits_{k=1}^{K}\alpha_k=1$;$\phi(y|\theta_k)$是高斯分布,$\theta_k=(\mu_k,\sigma_{k}^{2})$,

$\phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}exp\left(-\frac{(y-\mu_k)^2}{2\sigma_{k}^{2}}\right)$    (9.25)

为第$k$个高斯分布。

 

二、确定模型的对数似然函数

  设想观测数据$y_j$,$j=1,2,\cdots,N$是这样产生的:首先依概率$\alpha_k$选择第k个高斯分布模型$\phi(y|\theta_k)$;然后依第$k$个分模型的概率分布$\phi(y|\theta_k)$生成观测数据$y_j$。反映观测数据$y_j$来自第$k$个分模型的数据是未知的,$k=1,2,\cdots,K$,以隐变量$\gamma_{jk}$表示,其定义如下:

$\gamma_{jk}=1,\ if\ y_j\ from\ \phi_k\\  \gamma_{jk}=0,\ else$    (9.27)

$\gamma_{jk}$是0-1随机变量。

  模型的对数似然函数为

$logP(y|\theta)=log\prod\limits_{j=1}^{N}[\sum\limits_{k=1}^{K}\alpha_k\phi(y_j|\theta_k)]=\sum\limits_{j=1}^{N}log\sum\limits_{k=1}^{K}\alpha_k\phi(y_j|\theta_k)$    (9.28)

   由于该式子包含累和的对数的形式,直接用极大似然法处理很困难,在这里采用EM算法进行参数求解。

 

三、EM算法的E步:确定Q函数

$Q(\theta,\theta^{(i)})=\sum\limits_{Z}P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)=\sum\limits_{k=1}^{K}\sum\limits_{j=1}^{N}P(\gamma_{jk}|y_j,\theta^{(i)})log\alpha_k\phi(y_j|\theta_k)$

  由于$P(\gamma_{jk}|y_j,\theta^{(i)})$表示在观测数据和该次迭代参数的条件下,数据$y_j$来自高斯分布$k$的概率,因此易得

$P(\gamma_{jk}|y_j,\theta^{(i)})=\frac{\alpha_k^{(i)}\phi(y_j|\theta_k^{(i)})}{\sum\limits_{k=1}^{K}\alpha_k^{(i)}\phi(y_j|\theta_k^{(i)})}=\hat{\gamma_{jk}}$

$\hat{\gamma_{jk}}$表示分模型$k$对观测数据$j$的响应度, 所以

$Q(\theta,\theta^{(i)})=\sum\limits_{k=1}^{K}\left\{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}log\alpha_k+\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}\left[log\left(\frac{1}{\sqrt(2\pi)}\right)-log\sigma_k-\frac{1}{2\sigma_{k}^{2}}(y_j-\mu_k)^2\right]\right\}\\=\sum\limits_{k=1}^{K}n_klog\alpha_k+\sum\limits_{k=1}^{K}\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}\left[log\left(\frac{1}{\sqrt{2\pi}}\right)-log\sigma_k-\frac{1}{2\sigma_{k}^{2}}(y_j-\mu_k)^2\right]$    (9.29)

其中$n_k=\sum_{j=1}^{N}\hat{\gamma_{jk}}$。

 

四、EM算法的M步

  迭代的M步是求函数$Q(\theta,\theta^{(i)})$对$\theta$的极大值,即求新一轮迭代的模型参数:

$\theta^{(i+1)}=argmaxQ(\theta,\theta^{(i)})$

  用$\hat{\mu_k}$,$\hat{\sigma_k^2}$及$\hat{\alpha_k}$,$k=1,2,\cdots,K$,表示$\theta^{(i+1)}$的各参数。求$\hat{\mu_k}$,$\hat{\sigma_k^2}$只需将式(9.29)分别对$\hat{\mu_k}$,$\hat{\sigma_k^2}$求偏导数并令其为0,即可得到;求$\hat{\alpha_k}$是在$\sum\limits_{k=1}^{K}\alpha_k=1$条件下求偏导数并令其为0得到的。结果如下:

$\hat{\mu_k}=\frac{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}y_j}{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}}$    (9.30)

$\hat{\sigma_{k}^{2}}=\frac{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}(y_j-\mu_k)^2}{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}}$    (9.31)

$\hat{\alpha_k}=\frac{\sum\limits_{j=1}^{N}\hat{\gamma_{jk}}}{N}$    (9.32)

重复以上计算,直到对数似然函数值不再有明显的变化为止。

实际计算中M步只需计算$\hat{\gamma_{jk}}$,E步计算出相应参数即可。

转载于:https://www.cnblogs.com/ningjing213/p/10392175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值