EM算法
如果概率模型的变量都是观察变量,那么给定数据可以直接使用极大似然估计法。
当模型含有隐向量时,就不能简单地使用这些估计方法。——From 李航《统计学习方法》
如何理解上面这句话?
9.1 EM算法举例
- A,B,C三个硬币,出现正面的概率分别π,p和q
- 抛A硬币
- if 正面:抛B硬币 π
- else: 抛C硬币 (1-π)
- 对于抛B和C硬币的结果,如果正面记1,反面记0 (注意这里不记住A的记录)
如独立重复n=10次,观测结果:
1,1,0,1,0,0,1,0,1
现在问题:上面实验中出现1的概率是如何?
P(y∣π^,p^,q^)=P(y∣θ)
其中 θ 为 (π,p,q) 参数的估计。y为在观测值,取值0或1。
P(y=1∣θ)=πp+(1−π)qP(y=0∣θ)=π(1−p)+(1−π)(1−q)
可以将上面两个合并为一个公式:
P(y∣θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y
现:已知观测数据Y=(Y1,Y2,...,Yn)T,Yi为独立实验的单次观测结果。出现Y序列Y1,Y2,...,Yn出现的概率为n个独立实验概率的积:
P(Y∣θ)=j=1∏n[P(yi∣θ)]=j=1∏n[πpy(1−p)1−y+(1−π)qy(1−q)1−y]
根据上面所说:如果概率模型的变量都是观察变量,那么给定数据可以直接使用极大似然估计法,我们试着给出:
比如给定数据 Y′ 为:
1,1,0,1,0,0,1,0,1
则出现上面序列的概率:
P(Y′∣θ)=j=1∏10[P(yi∣θ)]=[πp+(1−π)q]5∗[π(1−p)+(1−π)(1−q)]5
而我们并不知道θ具体取值,所以我们用极大似然估计法,取得对 θ 的估计,即让上面式子取极大值时 (π,p,q) 的取值 (π^,p^,q^)。
θ^=argnmaxlogP(Y∣θ)=argmax[5log(πp+(1−π)q)+5log(π(1−p)+(1−π)(1−q))]=argmax[5log(πp+q−πq)+5log(−πp+1+πq−q)]
接下来就是求解个分量偏导=0时候的方程解,即可求出 (π^,p^,q^)的值。
获取三个方程:
πp+q−πqp−q=−πp+1+πq−qp−qπp+q−πqπ=−πp+1+πq−qππp+q−πq1−π=−πp+1+πq−q1−π
分析可得:1. 分母相等,p/q/π互相依赖,解不出来参数。
查看链接:[5分钟学算法] #06 EM算法 你到底是哪个班级的
EM算法用于求解这种问题的迭代算法。使用到Jensen不等式:zhuanlan.zhihu.com/p/28249050/
我们要通过EM算法极大化:
链式法则:链式法则用于计算多个事件的联合概率,可以表示为 P(A1,...,An)=P(A1)P(A2∣A1)P(A3∣A1A2)...P(An∣A1A2...An−1)
全概率公式:如果事件B1, B2, ..., Bn构成一个完备事件组(即它们是互斥的,并且它们的并集是整个样本空间),那么对于任意事件A,有
P(A)=∑i=1nP(A∣Bi)P(Bi)=∑i=1nP(A,Bi)
利用上面法则以及贝叶斯公式可以得到:
L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ))P(Z∣θ)
EM会对θ进行更新,希望L(θ)能不断增大直至收敛得到极大值。即L(θ)−L(θ(i)),随着i的增大,两者差越来越小。
L(θ)−L(θ(i))=logP(Y∣θ)−logP(Y∣θ(i))=log(Z∑P(Y∣Z,θ))P(Z∣θ)−logP(Y∣θ(i))=log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ))P(Z∣θ))−logP(Y∣θ(i))
根据Jensen不等式,对于函数为凹函数的 log 存在:
log(j∑λjyj)≥j∑λjlog(yi),其中λj≥0,j∑λj=1
上式子继续化简:
≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(1))P(Y∣Z,θ))P(Z∣θ)−logP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ))P(Z∣θ)
所以有:
L(θ)−L(θ(i))≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ))P(Z∣θ)
每一次迭代,我们希望:
L(θ(i+1))=L(θ(i))+MAX(Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ))P(Z∣θ))
任务则去求:
argθmax(Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ))P(Z∣θ))
去掉对θ而言是常数的项目,得:
θ(i+1)=argθmax(Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ))P(Z∣θ)=argθmaxQ(θ,θ(i))
E步(求期望):
即:似然函数log(P(Y,Z∣θ))关于给定观测数据Y和当前参数θ(i)对未观测数据Z的条件概率分布的期望P(Z∣Y,θ(i)),记为Q(θ,θ(i)).
Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ))P(Z∣θ)=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)
我们看第一部分,利用贝叶斯公式:
1)对于选了硬币B
P(zj=B∣yj,θ(i))=P(yj∣θ(i))P(yj∣zj,θ(i))P(zj∣θ(i))=π(i)[p(i)]yj(1−p(i))1−yj+(1−π(i))[q(i)]yj(1−q(i))1−yjπ(i)[p(i)]yj(1−p(i))1−yj≜uj
2)对于选了硬币C
P(zj=C∣yj,θ(i))=P(yj∣θ(i))P(yj∣zj,θ(i))P(zj∣θ(i))=π(i)[p(i)]yj(1−p(i))1−yj+(1−π(i))[q(i)]yj(1−q(i))1−yj(1−π(i))[q(i)]yj(1−q(i))1−yj=1−uj
那么:
Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)=j=1∑n(P(zj=B∣yj,θ(i))logP(yj,zj=B∣θ)+P(zj=C∣yj,θ(i))logP(yj,zj=C∣θ))=j=1∑n(ujlog(πpjyjpj1−yj)+(1−uj)log((1−π)qjyjqj(1−yj)))
M步(求极大化):
1) 对π求偏导:
因为uj中都是预估值,所以跟实际参数无关,可以作为常数处理。
∂π∂Q=j=1∑n(ujπpjyjpj1−yjpjyjpj1−yj+(1−uj)(1−π)qjyjqj(1−yj)−qjyjqj(1−yj))=j=1∑n(πuj−1−π(1−uj))=j=1∑n(1−π)πuj−π
令上式等于0,因为π!=0,所以:
∂π∂Q=j=1∑n(uj−π)=j=1∑nuj−j=1∑π=j=1∑nuj−nπ=0
则,
π=n∑j=1nuj
作为下一次迭代的估计参数。
2)对p求偏导:
p=∑j=1nuj∑j=1nujyj
3)对q求偏导:
q=∑j=1n(1−uj)∑j=1n(1−uj)yj
总结:
E:求的是Q函数,他是一个期望
M:对Q函数采用极大似然方法估计参数