EM算法之求解三硬币模型

  看了好几天的EM算法,还是看的一头雾水。借由三硬币模型,尝试使用EM算法。

1、EM算法流程

  1. E步:对完全数据的对数似然函数log(P(Y,Z|θ))log(P(Y,Z|θ))求关于P(Z|Y,θ(i))P(Z|Y,θ(i))的数学期望。
     EZ|Y,θ(i)[log(P(Y,Z|θ))]EZ|Y,θ(i)[log⁡(P(Y,Z|θ))]
     其中θ(i)θ(i)是第i次迭代时,θθ的估计值
  2. M步:对E步的结果求极值

2、案例:三硬币模型

  假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是π,p,qπ,p,q,进行如下掷硬币实验:先掷硬币A,根据其结果选出硬币B或C,正面选B,反面选C,然后掷选出的硬币,掷硬币的结果,出现正面记作1,反面记作0;独立重复nn次实验,观测记为Y=y1,y2,...,yn

3、EM算法求解

3.1)符号标记:

    yjyj为第jj次实验的观测
    Z为隐变量,表示掷硬币A出现的结果。该变量只有两个取值0,1
    zjzj为第jj次实验时,掷硬币A出现的结果,同样的,zj=1表示硬币A掷出正面
    θθ表示参数集合π,p,qπ,p,q
    θ(i)θ(i)为第ii次迭代时,π,p,q的估计值

3.2)E-Step

  完全数据的对数似然函数为:
    

log(P(Y,Z|θ))=log(j=1np(yj,zj|θ))=j=1nlog(p(yj,zj|θ))log⁡(P(Y,Z|θ))=log⁡(∏j=1np(yj,zj|θ))=∑j=1nlog⁡(p(yj,zj|θ))

    期望为:
    
EZ|Y,θ(i)[log(P(Y,Z|θ))]=j=1nzj[p(zj|yj,θ(i))log(p(yj,zj|θ))]=j=1nzj[p(zj|yj,θ(i))log(p(yj,zj|θ))]=j=1n{[p(zj=1|yj,θ(i))log(p(yj,zj=1|θ))]+[p(zj=0|yj,θ(i))log(p(yj,zj=0|θ))]}EZ|Y,θ(i)[log⁡(P(Y,Z|θ))]=∑j=1n∑zj[p(zj|yj,θ(i))log⁡(p(yj,zj|θ))]=∑j=1n∑zj[p(zj|yj,θ(i))log⁡(p(yj,zj|θ))]=∑j=1n{[p(zj=1|yj,θ(i))log⁡(p(yj,zj=1|θ))]+[p(zj=0|yj,θ(i))log⁡(p(yj,zj=0|θ))]}

    对于后验概率p(zj|yj,θ(i))p(zj|yj,θ(i)),此时θ(i)θ(i) 为一个定值,对后验概率本身可以直接计算,所以可以不考虑。(不知道这样解释合不合理)
    

μ(i+1)j=p(zj=1|yj;θ(i))=p(yj,zj=1)p(yj)=p(yj|zj=1)p(zj=1)zjp(yj,zj)=p(yj|zj=1)p(zj=1)p(yj,zj=1)+p(yj,zj=0)=(p(i))yj(1p(i))1yjπ(i)(p(i))yj(1p(i))1yjπ(i)+(q(i))yj(1q(i))1yj(1π(i))μj(i+1)=p(zj=1|yj;θ(i))=p(yj,zj=1)p(yj)=p(yj|zj=1)p(zj=1)∑zjp(yj,zj)=p(yj|zj=1)p(zj=1)p(yj,zj=1)+p(yj,zj=0)=(p(i))yj(1−p(i))1−yj∗π(i)(p(i))yj(1−p(i))1−yj∗π(i)+(q(i))yj(1−q(i))1−yj∗(1−π(i))

    对于联合概率p(zj,yj|θ)p(zj,yj|θ):
    

p(yj,zj=1|θ)=p(yj|zj=1,θ)p(zj=1|θ)=πpyj(1p)1yjp(yj,zj=0|θ)=p(yj|zj=0,θ)p(zj=0|θ)=(1π)qyj(1q)1yjp(yj,zj=1|θ)=p(yj|zj=1,θ)p(zj=1|θ)=πpyj(1−p)1−yjp(yj,zj=0|θ)=p(yj|zj=0,θ)p(zj=0|θ)=(1−π)qyj(1−q)1−yj

    所以最终结果:
    
EZ|Y,θ(i)[log(P(Y,Z|θ))]=j=1n{[p(zj=1|yj,θ(i))log(p(yj,zj=1|θ))]+[p(zj=0|yj,θ(i))log(p(yj,zj=1|θ))]}=j=1nμ(i+1)jlog(πpyj(1p)1yj)+(1μ(i+1)j)log((1π)qyj(1q)1yj)EZ|Y,θ(i)[log⁡(P(Y,Z|θ))]=∑j=1n{[p(zj=1|yj,θ(i))log⁡(p(yj,zj=1|θ))]+[p(zj=0|yj,θ(i))log⁡(p(yj,zj=1|θ))]}=∑j=1n{μj(i+1)∗log⁡(πpyj(1−p)1−yj)+(1−μj(i+1))∗log⁡((1−π)qyj(1−q)1−yj)}

3.3) M-Step

3.3.1 估计参数pi

    对E-Step的式子求极值,对参数求偏导,令其为0即可。其中μ(i+1)μ(i+1)为一个定值,相当于常数。
    对ππ的求偏导:

fπ=j=1n{μ(i+1)j1π(1μ(i+1)j)11π}=j=1n{πμ(i+1)jπ(1π)}=nπj=1nμ(i+1)jπ(1π)=0∂f∂π=∑j=1n{μj(i+1)∗1π−(1−μj(i+1))∗11−π}=∑j=1n{π−μj(i+1)π(1−π)}=nπ−∑j=1nμj(i+1)π(1−π)=0

    所以ππ的估计为:
π=1nj=1nμ(i+1)jπ=1n∑j=1nμj(i+1)
3.3.2 估计参数p

    对pp求偏导:

fp=j=1nμj(i+1)π{yjpyj1(1p)1yj+pyj[(1yj)(1p)yj]}πpyj(1p)1yj=j=1nμj(i+1){yjpyj1(1p)yj(1p)+pyj1p[(yj1)(1p)yj]}pyj(1p)1yj=j=1nμj(i+1){yj(1p)+p(yj1)}p(1p)=j=1nμj(i+1){yj(1p)+p(yj1)}p(1p)=j=1nμj(i+1){yjp}p(1p)=0

    pp的估计为:
p=j=1nμj(i+1)yjj=1nμj(i+1)

3.3.3 估计参数q

    对qq求偏导:

fq=j=1n(1μj(i+1))(1π){yjqyj1(1q)1yj+qyj[(1yj)(1q)yj]}(1π)qyj(1q)1yj=j=1n(1μj(i+1)){yjqyj1(1q)yj(1q)+qyj1q[(yj1)(1q)yj]}qyj(1q)1yj=j=1n(1μj(i+1)){yj(1q)+q(yj1)}q(1q)=j=1n(1μj(i+1)){yj(1q)+q(yj1)}q(1q)=j=1n(1μj(i+1)){yjq}p(1q)=0

    qq的估计为:
p=j=1n(1μj(i+1))yjj=1n(1μj(i+1))

4、Ending

  除了求p(zj|yj,θ(i))p(zj|yj,θ(i))时,θ(i)θ(i)的处理不太确定,其他的应该还算明白。

4.1 Ref

[1] 李航《统计学习方法》

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值