EM算法

EM算法实例(一)

这里写图片描述
这是一个抛硬币的例子,H表示正面向上,T表示反面向上,参数θ表示正面朝上的概率。硬币有两个,A和B,硬币是有偏的。本次实验总共做了5组,每组随机选一个硬币,连续抛10次。如果知道每次抛的是哪个硬币,那么计算参数θ就非常简单了,如上图所示。
如果不知道每次抛的是哪个硬币呢?那么,我们就需要用EM算法,基本步骤为:1、给θA和θB一个初始值;2、(E-step)估计每组实验是硬币A的概率(本组实验是硬币B的概率=1-本组实验是硬币A的概率)。分别计算每组实验中,选择A硬币且正面朝上次数的期望值,选择B硬币且正面朝上次数的期望值;3、(M-step)利用第三步求得的期望值重新计算θA和θB;4、当迭代到一定次数,或者算法收敛到一定精度,结束算法,否则,回到第2步。
稍微解释一下上图的计算过程。初始值θA=0.6,θB=0.5。]
这里写图片描述
图中的0.45是怎么得来的呢?由两个硬币的初始值0.6和0.5,容易得出投掷出5正5反的概率是pA=C(10,5)(0.6^5)(0.4^5),pB=C(10,5)(0.5^5)(0.5^5), pA/(pA+pB)=0.449, 0.45就是0.449近似而来的,表示第一组实验选择的硬币是A的概率为0.45。图中的2.2H,2.2T是怎么得来的呢? 0.449 * 5H = 2.2H ,0.449 * 5T = 2.2T ,表示第一组实验选择A硬币且正面朝上次数的期望值是2.2。其他的值依次类推。

转载:http://blog.csdn.net/u011300443/article/details/46763743

EM算法实例(二)

已知有三枚硬币A,B,C,假设抛掷A,B,C出现正面的概率分别为π,p,q。
单次实验的过程是:
首先抛掷硬币A,如果A出现正面选择硬币B,否则,选择硬币C。
抛掷所选择的硬币,正面输出1,反面输出0。
重复上述单词实验n次,需要估计抛掷硬币A,B,C出现正面的概率π,p,q。其中每次实验步骤1的抛掷结果不可见,可见的是所挑选硬币的抛掷结果。
这里写图片描述

P(y|θ)=zP(y,z|θ)=zP(z|θ)P(y|z,θ)

注:
1.θ 表示的是整个模型的参数,也就是我们学习的目标。
2.y是二元随机变量(取值为0或者1,也可以对应于C或者B),为观测随机变量。
3.z是二元随机变量(取值为0或者1,也可以对应于C或者B), 为隐变量(不可观测)
4.根据全概率公式可得 P(y|θ)=zP(y,z|θ)
5.而求和中的每一项根据条件概率公式得 P(y,z|θ)=P(z|θ)P(y|z,θ)
6.θ=(π,p,q)

P(y|θ)=πpy(1p)1y+(1π)qy(1q)1y
也可做如下理解:
P(y|θ)=P(y,B|θ)+P(y,C|θ)=P(C|θ)P(y|C,θ)+P(B|θ)P(y|B,θ)
P(y|θ)=(1π)P(y|C,θ)+πP(y|B,θ)
P(y|θ)=(1π)qy(1q)1y+πpy(1q)1y

Z=(Z1,Z2,...,Zn) 为n次实验的隐状态(不可观测)序列, Y=(Y1,Y2,...,Yn) 为n次实验的观测序列
那么每次实验对应观测值的概率为: P(Yi|θ)=ZP(Z|θ)P(Y|Z,θ)
这个观测序列的概率为 P(Y|θ)=ni=1P(Yi|θ)=ni=1πpy(1p)1y+(1π)qy(1q)1y
那么我们的学习目标就是让P(Y|θ)出现的概率近可能的大,即 θˆ=argmaxθlogP(Y|θ)
这个问题没有解析解(未知量的个数大于样本数,多出来一些隐变量),只能通过迭代的方法求解。EM算法就是用来解决这类问题的。

求解步骤如下:
初始化参数θ(0)
然后通过下面的步骤计算参数的估计值,直至收敛:
这里写图片描述
这里写图片描述
使用具体数值进行运算:
设初值为:π(0)=0.5,p(0)=0.5,q(0)=0.5,观测序列为1,1,0,1,0,0,1,0,1,1
μ(1)=0.5
π(1)=0.5,p(1)=0.6,q(1)=0.6
继续迭代,得π(2)=0.5,p(2)=0.6,q(2)=0.6
于是最终的模型参数θ的极大似然估计:π^=0.5,p^=0.6,q^=0.6
当换一组初始化权重参数:

设初值为:π(0)=0.4,p(0)=0.6,q(0)=0.7,观测序列为1,1,0,1,0,0,1,0,1,1
于是最终的模型参数θ的极大似然估计:π^=0.4064,p^=0.5368,q^=0.6432
转载:http://blog.csdn.net/SAJIAHAN/article/details/53106642

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值