机器学习笔记五——EM算法与高斯混合模型

本文介绍EM算法原理及应用,并详细解析如何使用EM算法进行高斯混合模型的参数估计。

一、EM算法

概率模型有时既含有观测变量,又含有隐变量(latent variable)。如果只含观测变量,那么直接用极大似然估计法估计模型参数即可;但当模型含有隐变量时,就需要采用EM算法,EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

1.1 EM算法

YYY表示观测随机变量的数据,ZZZ表示隐随机变量的数据,YYYZZZ连在一起称为完全数据。假设给定观测数据YYY,其概率分布是P(Y∣θ)P(Y|\theta)P(Yθ),其中θ\thetaθ是需要估计的模型参数,YYYZZZ的联合概率分布是P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Zθ),那么完全数据的对数似然函数是log⁡P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Zθ)P(Z∣Y,θ)P(Z|Y,\theta)P(ZY,θ)是给定观测数据YYY和参数θ\thetaθ下隐变量ZZZ的条件概率分布,EM算法通过迭代求解L(θ)=log⁡P(Y∣θ)L(\theta)=\log P(Y|\theta)L(θ)=logP(Yθ)的极大似然估计:

∙\bullet\quad选择参数的初始值θ(0)\theta^{(0)}θ(0)
∙E\bullet\quad EE步:记θ(i)\theta^{(i)}θ(i)为第iii次迭代参数θ\thetaθ的估计值,在第i+1i+1i+1次,计算Q(θ,θ(i))=EZ[log⁡P(Y,Z∣θ)∣Y,θ(i)]=∑Zlog⁡P(Y,Z∣θ)P(Z∣Y,θ(i))(1)Q(\theta, \theta^{(i)})=E_Z[\log P(Y, Z|\theta)|Y,\theta^{(i)}]=\sum_{Z}\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)})\tag1Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=ZlogP(Y,Zθ)P(ZY,θ(i))(1)
其中,P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(ZY,θ(i))是在给定观测数据YYY和当前的参数估计θ(i)\theta^{(i)}θ(i)下隐变量数据ZZZ的条件概率分布,Q(θ,θ(i))Q(\theta, \theta^{(i)})Q(θ,θ(i))的第1个变元表示要极大化的参数,第二个变元表示参数的当前估计值,每次迭代实际在求Q(θ,θ(i))Q(\theta, \theta^{(i)})Q(θ,θ(i))及其极大。

∙M\bullet\quad MM步:求使Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))极大化的θ\thetaθ,确定第i+1i+1i+1步迭代的参数的估计值θ(i+1)\theta^{(i+1)}θ(i+1)θ(i+1)=arg⁡max⁡θQ(θ,θ(i))(2)\theta^{(i+1)}=\arg \max_\theta Q(\theta,\theta^{(i)})\tag2θ(i+1)=argθmaxQ(θ,θ(i))(2)

∙\bullet\quad重复EEE步和MMM步,直至收敛

QQQ函数
完全数据的对数似然函数log⁡P(Y,Z∣θ)\log P(Y,Z|\theta)logP(Y,Zθ) 关于在给定观测数据YYY和当前参数θ(i)\theta^{(i)}θ(i) 对未观测数据ZZZ的条件概率分布P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(ZY,θ(i))的期望 称为QQQ函数,即Q(θ,θ(i))=EZ[log⁡P(Y,Z∣θ)∣Y,θ(i)](3)Q(\theta, \theta^{(i)})=E_Z[\log P(Y, Z|\theta)|Y,\theta^{(i)}]\tag3Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)](3)

1.2 EM算法的导出

为什么EM算法能近似实现对观测数据的极大似然估计呢?

对于含有隐变量的概率模型,目标是极大化观测数据YYY关于参数θ\thetaθ的对数似然函数,即极大化L(θ)=log⁡P(Y∣θ)=log⁡∑ZP(Y,Z∣θ)=log⁡(∑ZP(Z∣θ)P(Y∣Z,θ))(4)L(\theta)=\log P(Y|\theta)=\log \sum_ZP(Y,Z|\theta)=\log (\sum_ZP(Z|\theta)P(Y|Z,\theta))\tag4L(θ)=logP(Yθ)=logZP(Y,Zθ)=log(ZP(Zθ)P(YZ,θ))(4)
注意到P(Y,Z∣θ)=P(Z∣θ)P(Y∣Z,θ)P(Y,Z|\theta)=P(Z|\theta)P(Y|Z,\theta)P(Y,Zθ)=P(Zθ)P(YZ,θ)

极大化(4)(4)(4)式的主要困难是含有未观测数据并有包含和(或积分)的对数。

EM算法是通过逐步迭代近似极大化L(θ)L(\theta)L(θ)的。假设θ(i)\theta^{(i)}θ(i)为第iii次迭代参数θ\thetaθ的估计值,我们希望新的估计值θ\thetaθ能使L(θ)L(\theta)L(θ)增加,即L(θ)>L(θ(i))L(\theta)\gt L(\theta^{(i)})L(θ)>L(θ(i)),为此,考虑它们的差L(θ)−L(θ(i))=log⁡(∑ZP(Z∣θ)P(Y∣Z,θ))−log⁡P(Y∣θ(i))(5)L(\theta) - L(\theta^{(i)})=\log(\sum_ZP(Z|\theta)P(Y|Z,\theta))-\log P(Y|\theta^{(i)})\tag5L(θ)L(θ(i))=log(ZP(Zθ)P(YZ,θ))logP(Yθ(i))(5)
利用Jensen不等式[1]得到其下界L(θ)−L(θ(i))=log⁡(∑ZP(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i)))−log⁡P(Y∣θ(i))L(\theta) - L(\theta^{(i)})=\log(\sum_Z P(Z|Y,\theta^{(i)})\frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})})-\log P(Y|\theta^{(i)})L(θ)L(θ(i))=log(ZP(ZY,θ(i))P(ZY,θ(i))P(Zθ)P(YZ,θ))logP(Yθ(i))≥∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))−log⁡P(Y∣θ(i))\ge\sum_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})}-\log P(Y|\theta^{(i)})ZP(ZY,θ(i))logP(ZY,θ(i))P(Zθ)P(YZ,θ)logP(Yθ(i))=∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i))(6)=\sum_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\tag6=ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(Zθ)P(YZ,θ)(6)

B(θ,θ(i))=L(θ(i))+∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i))B(\theta,\theta^{(i)})=L(\theta^{(i)})+\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}B(θ,θ(i))=L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(Zθ)P(YZ,θ),则L(θ)≥B(θ,θ(i))L(\theta)\ge B(\theta,\theta^{(i)})L(θ)B(θ,θ(i))

即函数B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))L(θ)L(\theta)L(θ)的一个下界,为了使L(θ)L(\theta)L(θ)尽可能增大,可选择θ(i+1)\theta^{(i+1)}θ(i+1)使B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))尽可能增大,即θ(i+1)=arg⁡max⁡θB(θ,θ(i))(7)\theta^{(i+1)}=\arg \max_\theta B(\theta,\theta^{(i)})\tag7θ(i+1)=argθmaxB(θ,θ(i))(7)

所以θ(i+1)=arg⁡max⁡θ(L(θ(i))+∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i)))\theta^{(i+1)}=\arg \max_\theta (L(\theta^{(i)})+\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})})θ(i+1)=argθmax(L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(Zθ)P(YZ,θ))=arg⁡max⁡θ(∑ZP(Z∣Y,θ(i))log⁡P(Z∣θ)P(Y∣Z,θ)P(Z∣Y,θ(i))P(Y∣θ(i)))=\arg \max_\theta (\sum\limits_Z P(Z|Y,\theta^{(i)})\log \frac{P(Z|\theta)P(Y|Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})})=argθmax(ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(Zθ)P(YZ,θ))=arg⁡max⁡θ∑ZP(Z∣Y,θ(i))log⁡(P(Y∣Z,θ)P(Z∣θ))=\arg \max_\theta \sum\limits_Z P(Z|Y,\theta^{(i)})\log (P(Y|Z,\theta)P(Z|\theta))=argθmaxZP(ZY,θ(i))log(P(YZ,θ)P(Zθ))=arg⁡max⁡θ∑ZP(Z∣Y,θ(i))log⁡(P(Y,Z∣θ))=\arg \max_\theta \sum\limits_Z P(Z|Y,\theta^{(i)})\log (P(Y, Z|\theta))=argθmaxZP(ZY,θ(i))log(P(Y,Zθ))=arg⁡max⁡θQ(θ,θ(i))(8)=\arg \max_\theta Q(\theta,\theta^{(i)})\tag8=argθmaxQ(θ,θ(i))(8)

EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。

1.3 EM算法的收敛

θ(i)(i=1,2,⋯ )\theta^{(i)}(i=1,2,\cdots)θ(i)(i=1,2,)为EM算法得到参数估计序列,P(Y∣θ(i))P(Y|\theta^{(i)})P(Yθ(i))为对应的似然函数序列,则P(Y∣θ(i))P(Y|\theta^{(i)})P(Yθ(i))是单调递增的,即P(Y∣θ(i+1))≥P(Y∣θ(i))(9)P(Y|\theta^{(i+1)})\ge P(Y|\theta^{(i)})\tag9P(Yθ(i+1))P(Yθ(i))(9)

EM算法不能保证找到全局最优值,因此初始值的选择会对最后的结果产生影响,常用的办法是选取几个不同的初始值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

二、高斯混合模型

2.1 高斯混合模型

高斯混合模型是指具有如下形式的概率分布模型P(y∣θ)=∑k=1Kαkϕ(y∣θk)(10)P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k)\tag{10}P(yθ)=k=1Kαkϕ(yθk)(10)
其中,αk\alpha_kαk是系数,αk≥0,∑k=1Kαk=1\alpha_k\ge0, \sum\limits_{k=1}^K\alpha_k=1αk0,k=1Kαk=1ϕ(y∣θk)\phi(y|\theta_k)ϕ(yθk)是高斯分布密度函数,θk=(μk,σk2)\theta_k=(\mu_k,\sigma^2_k)θk=(μk,σk2) ϕ(y∣θk)=12πσkexp⁡{−(y−μk)22σk2}(11)\phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\{-\frac{(y-\mu_k)^2}{2\sigma_k^2}\}\tag{11}ϕ(yθk)=2πσk1exp{2σk2(yμk)2}(11)

2.2 高斯混合模型参数估计的EM算法

假设观测数据y1,⋯ ,yNy_1,\cdots,y_Ny1,,yN由高斯混合模型P(y∣θ)=∑k=1Kαkϕ(y∣θk)P(y|\theta)=\sum\limits_{k=1}^K\alpha_k\phi(y|\theta_k)P(yθ)=k=1Kαkϕ(yθk)生成,其中,θ=(α1,⋯ ,αK;θ1,⋯ ,θK)\theta=(\alpha_1,\cdots,\alpha_K;\theta_1,\cdots,\theta_K)θ=(α1,,αK;θ1,,θK),我们用EM算法来估计参数θ\thetaθ

定义隐变量γjk={1第j个观测数据来自第k个分模型0否则(12)\gamma_{jk}=\begin{cases} 1&第j个观测数据来自第k个分模型\\ 0&否则 \end{cases}\tag{12}\\ γjk={10jk(12)
其中j=1,2⋯ ,N;k=1,2⋯ ,Kj=1,2\cdots,N;\quad k=1,2\cdots,Kj=1,2,N;k=1,2,K

从而有完全数据(yj,γj1,⋯ ,γjK)(y_j, \gamma_{j1},\cdots,\gamma_{jK})(yj,γj1,,γjK)j=1,2⋯ ,Kj=1,2\cdots,Kj=1,2,K,所以可以写出完全数据的似然函数P(y,γ∣θ)=∏j=1NP(yj,γj1,⋯ ,γjK∣θ)=∏k=1K∏j=1N[αkϕ(yj∣θk)]γjk=∏k=1Kαknk∏j=1N[12πσkexp⁡{−(yj−μk)22σk2}]γjk(12)P(y,\gamma|\theta)=\prod_{j=1}^NP(y_j, \gamma_{j1},\cdots,\gamma_{jK}|\theta)\\ =\prod_{k=1}^K\prod_{j=1}^N[\alpha_k\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ =\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N[\frac{1}{\sqrt{2\pi}\sigma_k}\exp\{-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}\}]^{\gamma_{jk}}\tag{12}P(y,γθ)=j=1NP(yj,γj1,,γjKθ)=k=1Kj=1N[αkϕ(yjθk)]γjk=k=1Kαknkj=1N[2πσk1exp{2σk2(yjμk)2}]γjk(12)
其中nk=∑j=1Nγjk,∑k=1Knk=Nn_k=\sum\limits_{j=1}^N\gamma_{jk}, \sum\limits_{k=1}^Kn_k=Nnk=j=1Nγjk,k=1Knk=N
所以对数似然函数为log⁡P(y,γ∣θ)=∑k=1K{nklog⁡αk+∑j=1Nγjk[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}(13)\log P(y,\gamma|\theta)=\sum_{k=1}^K\{n_k\log\alpha_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\tag{13}logP(y,γθ)=k=1K{nklogαk+j=1Nγjk[log(2π1)logσk2σk21(yjμk)2]}(13)


∙E−step\bullet\quad E-stepEstep
所以Q(θ,θ(i))=E[log⁡P(y,γ∣θ)∣y,θ(i)]=E{∑k=1K{nklog⁡αk+∑j=1Nγjk[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}=∑k=1K{∑j=1NE(γjk)log⁡αk+∑j=1NE(γjk)[log⁡(12π)−log⁡σk−12σk2(yj−μk)2]}(14)Q(\theta,\theta^{(i)})=E[\log P(y,\gamma|\theta)|y,\theta^{(i)}]=E\{\sum_{k=1}^K\{n_k\log\alpha_k+\sum\limits_{j=1}^N\gamma_{jk}[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\\ =\sum_{k=1}^K\{\sum_{j=1}^NE(\gamma_{jk})\log\alpha_k+\sum_{j=1}^NE(\gamma_{jk})[\log(\frac{1}{\sqrt{2\pi}})-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2]\}\tag{14}Q(θ,θ(i))=E[logP(y,γθ)y,θ(i)]=E{k=1K{nklogαk+j=1Nγjk[log(2π1)logσk2σk21(yjμk)2]}=k=1K{j=1NE(γjk)logαk+j=1NE(γjk)[log(2π1)logσk2σk21(yjμk)2]}(14)
注意到nk=∑j=1Nγjkn_k=\sum\limits_{j=1}^N\gamma_{jk}nk=j=1Nγjk,所以E(nk)=∑j=1NE(γjk)E(n_k)=\sum\limits_{j=1}^NE(\gamma_{jk})E(nk)=j=1NE(γjk)

E(γjk)=P(γjk=1∣y,θ)=P(γjk=1,yj∣θ)∑k=1KP(γjk=1,yj∣θ)=P(yj∣γjk=1,θ)P(γjk=1∣θ)∑k=1KP(yj∣γjk=1,θ)P(γjk=1∣θ)=αkϕ(yi∣θk)∑k=1Kαkϕ(yi∣θk)(15)E(\gamma_{jk})=P(\gamma_{jk}=1|y,\theta)\\ =\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum\limits_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)}\\ =\frac{P(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}{\sum\limits_{k=1}^KP(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}\\ =\frac{\alpha_k\phi(y_i|\theta_k)}{\sum\limits_{k=1}^K\alpha_k\phi(y_i|\theta_k)}\tag{15}E(γjk)=P(γjk=1y,θ)=k=1KP(γjk=1,yjθ)P(γjk=1,yjθ)=k=1KP(yjγjk=1,θ)P(γjk=1θ)P(yjγjk=1,θ)P(γjk=1θ)=k=1Kαkϕ(yiθk)αkϕ(yiθk)(15)
其中j=1,2⋯ ,N;k=1,2⋯ ,Kj=1,2\cdots,N;\quad k=1,2\cdots,Kj=1,2,N;k=1,2,K

所以E(γjk)E(\gamma_{jk})E(γjk)可以看作是在当前模型参数下,第jjj个观测数据来自第kkk个分模型的概率,称为分模型kkk对观测数据yjy_jyj的响应度。


∙M−step\bullet\quad M-stepMstep
θ(i+1)=arg⁡max⁡θQ(θ,θ(i))\theta^{(i+1)}=\arg\max\limits_{\theta}Q(\theta,\theta^{(i)})θ(i+1)=argθmaxQ(θ,θ(i))。将Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))分别对μk,σk2\mu_k, \sigma_k^2μk,σk2分别求偏导并令其为0即可得到μ^k,σ^k2\hat{\mu}_k, \hat{\sigma}^2_kμ^k,σ^k2,在∑k=1Kαk=1\sum\limits_{k=1}^K\alpha_k=1k=1Kαk=1的条件下,对αk\alpha_kαk求偏导即可得到α^k\hat{\alpha}_kα^k
μ^k=∑j=1Nγ^jkyj∑j=1Nγ^jk(16)\hat{\mu}_k=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}y_j}{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}\tag{16}μ^k=j=1Nγ^jkj=1Nγ^jkyj(16)
σ^k2=∑j=1Nγ^jk(yj−μk)2∑j=1Nγ^jk(17)\hat{\sigma}^2_k=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}(y_j-\mu_k)^2}{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}\tag{17}σ^k2=j=1Nγ^jkj=1Nγ^jk(yjμk)2(17)
α^k=nkN=∑j=1Nγ^jkN(18)\hat{\alpha}_k=\frac{n_k}{N}=\frac{\sum\limits_{j=1}^N\hat{\gamma}_{jk}}{N}\tag{18}α^k=Nnk=Nj=1Nγ^jk(18)
其中,k=1,⋯ ,Kk=1,\cdots,Kk=1,,K

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值