EM算法实例

参考于 em算法实例讲解,值得推荐 - zhwa - 博客园

有两枚硬币A和B,假定随机抛掷后正面朝上概率分别为PA,PB。为了估计这两个硬币朝上的概率,咱们轮流抛硬币A和B,每一轮都连续抛5次,总共5轮:

硬币结果统计
A正正反正反3正2反
B反反正正反2正3反
A正反反反反1正4反
B正反反正正3正2反
A反正正反反2正3反

硬币A被抛了15次,在1、3、5轮分别出现了3正、1正、2正,计算出 PA =(3+1+2)/ 15 = 0.4 ;类似地,可计算出 PB=(2+3)/10 = 0.5

但如果我们不知道抛的硬币是A还是B呢(即硬币种类是隐变量),然后再轮流抛五轮,得到如下结果:

硬币结果统计
Unknown正正反正反  3正2反  
Unknown反反正正反  2正3反  
Unknown正反反反反  1正4反  
Unknown正反反正正  3正2反  
Unknown反正正反反  2正3反  

我们不妨这样,先随便给PA和PB赋一个值,比如:硬币A正面朝上的概率 PA = 0.2,硬币B正面朝上的概率 PB = 0.7

然后,我们看看第一轮抛掷最可能是哪个硬币。
如果是硬币A,得出3正2反的概率为 0.2*0.2*0.2*0.8*0.8 = 0.00512
如果是硬币B,得出3正2反的概率为 0.7*0.7*0.7*0.3*0.3=0.03087

然后依次求出其他4轮中的相应概率。表格如下:

轮数结果统计若是硬币A若是硬币B
1正正反正反0.2*0.2*0.2*0.8*0.8 = 0.005120.7*0.7*0.7*0.3*0.3 = 0.03087
2反反正正反0.2*0.2*0.8*0.8*0.8 = 0.020480.7*0.7*0.3*0.3*0.3 = 0.01323
3正反反反反0.2*0.8*0.8*0.8*0.8 = 0.081920.7*0.3*0.3*0.3*0.3 = 0.00567
4正反反正正0.2*0.2*0.2*0.8*0.8 = 0.005120.7*0.7*0.7*0.3*0.3 = 0.03087
5反正正反反0.2*0.2*0.8*0.8*0.8 = 0.020480.7*0.7*0.3*0.3*0.3 = 0.01323

按照最大似然法则: 第1轮中最有可能的是硬币B,第2轮中最有可能的是硬币A,第3轮中最有可能的是硬币A,第4轮中最有可能的是硬币B,第5轮中最有可能的是硬币A 。

我们就把概率更大,即更可能是A的,即第2、3、5轮出现正的次数2、1、2相加,除以A被抛的总次数15(A抛了三轮,每轮5次),得到PA的估计值 PA = (2+1+2)/15 = 0.33。同理可计算得到 PB =(3+3)/10 = 0.6

设想我们是全知的神,知道每轮抛掷时的硬币就是如本文开头那样,PA=0.4,PB=0.5(下文中将这两个值称为PA和PB的真实值)。那么对比下我们初始化的PA和PB和新估计出的PA和PB:

初始化的PA估计的PA真实的PA初始化的PB估计的PB真实的PB
0.20.330.40.70.60.5

可见,我们估计的PA和PB相比于它们的初始值,更接近它们的真实值了!就这样,不断迭代 不断接近真实值,这就是EM算法的奇妙之处。

可以期待,我们继续按照上面的思路,用估计出的PA和PB再来估计每轮抛的是硬币A还是B,再据此估计新的PA和PB,反复迭代下去,就可以最终得到PA = 0.4,PB=0.5,此时无论怎样迭代,PA和PB的值都会保持0.4和0.5不变,于是我们就找到了PA和PB的最大似然估计。

EM算法优缺点

优点:算法简单,稳定上升的步骤能可靠地找到“最优的收敛值”。

缺点:对初始值很敏感;容易得到局部最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值