EM算法

EM算法是什么?

期望最大EM算法是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。

 

举个例子

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

 

硬币A被抛了15次,在第一轮、第三轮、第五轮分别出现了3次正、1次正、2次正,所以很容易估计出PA,类似的,PB也很容易计算出来,如下:

PA = (3+1+2)/ 15 = 0.4

PB= (2+3)/10 = 0.5

 

----------------------------------------我叫分割线--------------------------------------------

 

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

OK,问题变得有意思了。现在我们的目标没变,还是估计PA和PB,需要怎么做呢?

我们不妨这样,先随便给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轮中的相应概率。做成表格如下(标粗表示其概率更大):

按照最大似然法则:

第1轮中最有可能的是硬币B

第2轮中最有可能的是硬币A

第3轮中最有可能的是硬币A

第4轮中最有可能的是硬币B

第5轮中最有可能的是硬币A

 

我们就把概率更大,即更可能是A的,即第2轮、第3轮、第5轮出现正的次数2、1、2相加,除以A被抛的总次数15(A抛了三轮,每轮5次),作为z的估计值,B的计算方法类似。然后我们便可以按照最大似然概率法则来估计新的PA和PB。

PA = (2+1+2)/15 = 0.33

PB =(3+3)/10 = 0.6

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

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

 

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

 

感觉就是随意假设概率之后,在按照极大似然估计取A还是B,然后重复上述,最后会递归(收敛)。还是很神奇的。

 

参考

如何通俗理解EM算法:https://blog.csdn.net/v_JULY_v/article/details/81708386

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值