极简EM(最大期望)算法

EM是常用的估计参数隐变量的利器。他的思路很简单:记住三个变量:
θ:初始值
**Z:**隐变量
X:已知的观测到的变量
下面我们用一个例子介绍一下EM算法:
一个非常简单的例子
假设现在有两枚硬币1和2,,随机抛掷后正面朝上概率分别为P1,P2。为了估计这两个概率,
做实验,每次取一枚硬币,连掷5下,记录下结果,如下:在这里插入图片描述
在这里插入图片描述
还是上面的问题,现在抹去每轮投掷时使用的硬币标记,如上所示。
此 时 我 们多 了 一 个隐 变 量 z, 可 以 把 它 认 为 是 一 个 5维 的 向 量(z1,z2,z3,z4,z5),代表每次投掷时所使用的硬币,比如z1,就代表第一轮投掷时使用的硬币是1还是2。但是,这个变量z不知道,就无法去估计P1和P2,所以,我们必须先估计出z,然后才能进一步估计P1和P2在这里插入图片描述
要估计z,但又得知道P1和P2,这样才能用最大似然概率法则去估计z。
先随机初始化一个P1和P2,用它来估计z,然后基于z,还是按照最大似然概率法则去估计新的P1和P2,如果新的P1和P2和我们初始化的P1和P2一样,说明我们初始化的P1和P2是一个相当靠谱的估计。
如果新估计出来的P1和P2与我们初始化的值差别很大,继续用新的P1和P2迭代,直至收敛。
这就是下面的EM初级版。
先随便给P1和P2赋一个值,比如:P1 = 0.2,P2 = 0.7。
然后,看看第一轮抛掷最可能是哪个硬币。
如果是硬币1,得出3正2反的概率为
在这里插入图片描述
如果是硬币2,得出3正2反的概率为
0.70.70.70.30.3=0.03087

依次求出其他4轮中的相应概率:
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20200425202551853.png在这里插入图片描述在这里插入图片描述
在这里插入图片描述
上表中的右两列表示期望值。
这样我们在估计P1或者P2时,就可以用上全部的数据,而不是部分的数据,
显然这样会更好一些。
这一步,我们实际上是估计出了z的概率分布,这步被称作E步。
在这里插入图片描述
P1 = 4.22/(4.22+7.98) = 0.35。
可以看到P1更加接近0.4。原因就是我们使用了所有抛掷的数据,而不是之前只使用这步中,我们根据E步中求出的z的概率分布,依据最大似然概率法则去估计P1和P2,被称作M步。

收敛性的证明:

我们知道已知观测数据的似然函数是 𝑃(𝑌,𝜃)P(Y,θ) ,对数似然函数为:
𝐿()=∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃)=∑𝑖=1𝑀𝑙𝑜𝑔(𝑃(𝑦𝑖,𝑍|𝜃)𝑃(𝑍|𝑦𝑖,𝜃))=∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑦𝑖,𝑍|𝜃)−∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑍|𝑦𝑖,𝜃)
L()=∑i=1MlogP(yi,θ)=∑i=1Mlog(P(yi,Z|θ)P(Z|yi,θ))=∑i=1MlogP(yi,Z|θ)−∑i=1MlogP(Z|yi,θ)

要证明收敛,就证明单调递增, ∑𝑀𝑖=1𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗+1)>∑𝑀𝑖=1𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗)∑i=1MlogP(yi,θj+1)>∑i=1MlogP(yi,θj) 由上文知道:
𝑄(𝜃,𝜃𝑖)=∑𝑍𝑙𝑜𝑔𝑃(𝑌,𝑍|𝜃)𝑃(𝑍|𝑌,𝜃𝑖)=∑𝑖=1𝑀∑𝑍𝑗𝑙𝑜𝑔𝑃(𝑦𝑖,𝑍𝑗|𝜃)𝑃(𝑍𝑗|𝑦𝑖,𝜃𝑖)
Q(θ,θi)=∑ZlogP(Y,Z|θ)P(Z|Y,θi)=∑i=1M∑ZjlogP(yi,Zj|θ)P(Zj|yi,θi)

我们构造一个函数 𝐻H ,让他等于:
𝐻(𝜃,𝜃𝑖)=∑𝑖=1𝑀∑𝑍𝑗𝑙𝑜𝑔(𝑃(𝑍|𝑦𝑖,𝜃)𝑃(𝑍|𝑦𝑖,𝜃𝑖))
H(θ,θi)=∑i=1M∑Zjlog(P(Z|yi,θ)P(Z|yi,θi))

让 𝑄(𝜃,𝜃𝑖)−𝐻(𝜃,𝜃𝑖)Q(θ,θi)−H(θ,θi) :
𝑄(𝜃,𝜃𝑖)−𝐻(𝜃,𝜃𝑖)=∑𝑖=1𝑀∑𝑍𝑗𝑙𝑜𝑔𝑃(𝑦𝑖,𝑍𝑗|𝜃)𝑃(𝑍𝑗|𝑦𝑖,𝜃𝑖)−∑𝑖=1𝑀∑𝑍𝑗𝑙𝑜𝑔(𝑃(𝑍𝑗|𝑦𝑖,𝜃)𝑃(𝑍𝑗|𝑦𝑖,𝜃𝑖))=∑𝑖=1𝑀∑𝑍𝑗𝑙𝑜𝑔(𝑃(𝑦𝑖,𝑍𝑗|𝜃)−𝑃(𝑍𝑗|𝑦𝑖,𝜃))=∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃)
Q(θ,θi)−H(θ,θi)=∑i=1M∑ZjlogP(yi,Zj|θ)P(Zj|yi,θi)−∑i=1M∑Zjlog(P(Zj|yi,θ)P(Zj|yi,θi))=∑i=1M∑Zjlog(P(yi,Zj|θ)−P(Zj|yi,θ))=∑i=1MlogP(yi,θ)

所以:
∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗+1)−∑𝑖=1𝑀𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗)=𝑄(𝜃𝑖+1,𝜃𝑖)−𝐻(𝜃𝑖+1,𝜃𝑖)−(𝑄(𝜃𝑖,𝜃𝑖)−𝐻(𝜃𝑖,𝜃𝑖))=𝑄(𝜃𝑖+1,𝜃𝑖)−𝑄(𝜃𝑖,𝜃𝑖)−(𝐻(𝜃𝑖+1,𝜃𝑖)−𝐻(𝜃𝑖,𝜃𝑖))
∑i=1MlogP(yi,θj+1)−∑i=1MlogP(yi,θj)=Q(θi+1,θi)−H(θi+1,θi)−(Q(θi,θi)−H(θi,θi))=Q(θi+1,θi)−Q(θi,θi)−(H(θi+1,θi)−H(θi,θi))
该公式左边已经被证明是大于0,证明右边: 𝐻(𝜃𝑖+1,𝜃𝑖)−𝐻(𝜃𝑖,𝜃𝑖)<0H(θi+1,θi)−H(θi,θi)<0 :
𝐻(𝜃𝑖+1,𝜃𝑖)−𝐻(𝜃𝑖,𝜃𝑖)=∑𝑍𝑗(𝑙𝑜𝑔(𝑃(𝑍𝑗|𝑌,𝜃𝑖+1)𝑃(𝑍𝑗|𝑌,𝜃𝑖)))𝑃(𝑍𝑗|𝑌,𝜃𝑖)=𝑙𝑜𝑔(∑𝑍𝑗𝑃(𝑍𝑗|𝑌,𝜃𝑖+1)𝑃(𝑍𝑗|𝑌,𝜃𝑖)𝑃(𝑍𝑗|𝑌,𝜃𝑖))=𝑙𝑜𝑔𝑃(𝑍|𝑌,𝜃𝑖+1)=𝑙𝑜𝑔1=0
H(θi+1,θi)−H(θi,θi)=∑Zj(log(P(Zj|Y,θi+1)P(Zj|Y,θi)))P(Zj|Y,θi)=log(∑ZjP(Zj|Y,θi+1)P(Zj|Y,θi)P(Zj|Y,θi))=logP(Z|Y,θi+1)=log1=0

其中不等式是由于Jensen不等式,由此证明了 ∑𝑀𝑖=1𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗+1)>∑𝑀𝑖=1𝑙𝑜𝑔𝑃(𝑦𝑖,𝜃𝑗)∑i=1MlogP(yi,θj+1)>∑i=1MlogP(yi,θj) ,证明了EM算法的收敛性。但不能保证是全局最优,只能保证局部最优。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值