高斯混合模型詳細推導


一、高斯混合模型定義

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

$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步計算出相應參數即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM