EM算法-硬币实验的理解
EM算法-使用硬币实验的例子理解
EM算法,即最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法 ,通常作为牛顿迭代法的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计 。
EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值 。
由于迭代规则容易实现并可以灵活考虑隐变量 ,EM算法被广泛应用于处理数据的缺测值 ,以及很多机器学习算法,包括高斯混合模型和隐马尔可夫模型的参数估计。
本文通过一个实例讲讲EM算法在具体实例中的使用和体现。
一、硬币实验概述
- 首先要明确硬币实验本身的问题是
两块硬币A、B与我们熟知的硬币不同,它们形状不是均匀分布的,所以抛出正面的概率并不是简单的50%,现在我们想知道这两块硬币分别抛出正面的概率 - 探究的方法:做实验,将A硬币抛nnn次,记正面次数为nhn_hnh,在n足够大情况下的,硬币A抛出正面的概率为实验出现的频率,即pA=nhnp_A = \frac{n_h}{n}pA=nnh。B硬币同理。
- 遇到的问题:研究员做实验的时候对A、B硬币分别做实验,但是他忘记记录他每次抛的时候抛的硬币是A还是B了。也就是说我们只有一堆正面、反面的事件记录,但是我们不知道发生该事件的硬币是A还是B,问怎么求原来的问题。
二、解决方案
1. 情况a:可以观测到实验数据中每次选择的是A还是B
解:直接计算实验数据,A硬币、B硬币出现正面的频率作为概率即可,即
θA=24/(24+6)=0.80θB=9/(9+11)=0.45\theta_A = 24/(24+6) = 0.80\\ \theta_B = 9/(9+11) = 0.45 θA=24/(24+6)=0.80θB=9/(9+11)=0.45
2. 情况b:实验数据对A和B的选择是未知的。
算法思想:
此处引入了隐变量:硬币的种类ZZZ
使用EM算法,我们首先需要假定我们运算的目标的初始值
θ^A(0)=0.6θ^B(0)=0.5\hat{\theta}_A^{(0)} = 0.6\\ \hat{\theta}_B^{(0)} = 0.5 θ^A(0)=0.6θ^B(0)=0.5
之后使用上述值对ZZZ的分布做最大似然估计(这也就是E步)。
估计出ZZZ后,我们使用z去对θ\thetaθ进行最大似然估计,得到新的θ\thetaθ(也就是M步)
重复上述E步、M步,直到θ\thetaθ即为我们的解详细解决过程:
E步
我们以第一轮掷硬币为例(其他类比做同样的运算):
HTTTHHTHTHHTTTHHTHTHHTTTHHTHTH即5次朝上,5次朝下
如果是硬币A,出现上述情况的概率为pA=θA5(1−θA)5=0.0007962624p_A = \theta_A^5(1-\theta_A)^5 = 0.0007962624pA=θA5(1−θA)5=0.0007962624
如果是硬币B,出现上述情况的概率为pB=θB5(1−θB)5=0.0009765625p_B =\theta_B^5(1-\theta_B)^5= 0.0009765625pB=θB5(1−θB)5=0.0009765625
那么在第一轮掷硬币时,该硬币为A的概率为pA/(pA+pB)=0.45p_A/(p_A+p_B) = 0.45pA/(pA+pB)=0.45
该硬币为B的概率为pB/(pA+pB)=0.55p_B/(p_A+p_B) = 0.55pB/(pA+pB)=0.55
所以五轮计算下来结果如下表:
轮次 是硬币A的概率 是硬币B的概率 1 0.45 0.55 2 0.80 0.20 3 0.73 0.27 4 0.35 0.65 5 0.65 0.35 那么根据该表,我接下来要对θ\thetaθ进行求解。与第一题的情况类似,我们首先使用这种概率,计算出每轮如果是A的期望,以及每轮是B的期望,然后直接用算出的值模拟A、B硬币出现正面的频率。
M步
轮次 若为硬币A出现的情况 若为硬币B出现的情况 1 2.2H,2.2T 2.8H,2.8T 2 7.2H,0.8T 1.8H,0.2T 3 5.9H,1.5T 2.1H,0.5T 4 1.4H,2.1T 2.6H,1.9T 5 4.5H,1.9T 2.5H,1.1T 此时分别计算硬币A、硬币B出现正面的概率,则为新的θ\thetaθ值。即
θ^A(1)=(21.3)/(21.3+8.6)≈0.71θ^B(1)=(11.7)/(11.7+8.4)≈0.58\hat{\theta}^{(1)}_A = (21.3)/(21.3+8.6) \approx0.71\\ \hat{\theta}^{(1)}_B = (11.7)/(11.7+8.4) \approx0.58\\ θ^A(1)=(21.3)/(21.3+8.6)≈0.71θ^B(1)=(11.7)/(11.7+8.4)≈0.58
之后重复E步、M步,最后收敛至
θ^A=0.80θ^B=0.52\hat{\theta}_A = 0.80\\ \hat{\theta}_B = 0.52\\ θ^A=0.80θ^B=0.52
三、总结
也就是说,我们在求解我们的最终结果时发现有隐变量导致无法计算。我们可以先假设我们知道结果,然后通过结果求出隐变量取值,再用该隐变量作为已知条件求出结果。这个过程第一次看会觉得有技巧性,我们可能会去想这样做科学吗?怎么保证最后迭代的结果是我们想要的,或者说迭代结果趋于不变呢,这就要看EM算法本身收敛性的证明了。(主要用到了琴生不等式,这里不进行推导)
EM算法-硬币实验的理解相关推荐
- 人人都能看懂的EM算法推导
作者丨August@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/36331115 编辑丨极市平台 估计有很多入门机器学习的同学在看到EM算法的时候会有种种疑惑:EM ...
- em算法 实例 正态分布_人人都能看懂的EM算法推导
↑ 点击蓝字 关注极市平台作者丨August@知乎(已授权)来源丨https://zhuanlan.zhihu.com/p/36331115编辑丨极市平台 极市导读 EM算法到底是什么,公式推导怎么去 ...
- 概率语言模型及其变形系列-PLSA及EM算法
转载自:http://blog.csdn.net/yangliuy/article/details/8330640 本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA.LDA及LDA的变形模 ...
- 从最大似然到EM算法浅解 http://blog.csdn.net/zouxy09/article/details/8537620
1. EM blog的举例就是group 然后就是每个group的function很有效地串联所学的知识,看到的论文,所有的思考,都是有一定的逻辑关系,如何逐渐develop你的想法,都是有一定的源头 ...
- EM算法(Expectation Maximization)期望最大化算法
原文:EM(期望最大化)算法初步认识 - 大数据和AI躺过的坑 - 博客园 https://www.cnblogs.com/zlslch/p/6965374.html 机器学习十大算法之一:EM算法( ...
- EM算法——有隐含变量时,极大似然用梯度法搞不定只好来猜隐含变量期望值求max值了...
摘自:https://www.zhihu.com/question/27976634 简单说一下为什么要用EM算法 现在一个班里有50个男生,50个女生,且男生站左,女生站右.我们假定男生的身高服从正 ...
- (转载)机器学习知识点(十五)从最大似然到EM算法浅解
从最大似然到EM算法浅解 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做 ...
- EM从最大似然到EM算法浅解
从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊 ...
- 最好的EM算法介绍-由例子介绍原理
版权声明: 本文系转载,由zouxy09所有,发布于http://blog.csdn.net/zouxy09.如果转载,请尊重作者的版权所有,注明出处.如果有问题,请联系作者 zouxy09@qq.c ...
最新文章
- hihocoder 1152 Lucky Substrings
- 软件测试培训适合什么人学习?
- iPhone地图 实战iPhone GPS定位系统
- 张孝祥Java培训视频及孙鑫java视频网址
- 2017寒假练习题解 第四周 2.6-2.12
- Ruby:Hash 排序
- Python进阶_wxpy学习:异常chu'li
- 转:Singleton模式
- 5 在java等于多少,java基础面试题之Java中的Math. round(-1. 5)等于多少
- 因触屏故障 美国监管部门对15.9万辆特斯拉进行调查
- 这个十八线品牌火了!直言后置三摄里有两个摄像头是装饰用的
- php基础案例 购物车,php购物车实例(1/5)_PHP教程
- 论文笔记_S2D.09-2018-ECCV_从RGB和稀疏感知估计深度
- 关键词组合工具_凭技术做外贸:关键词优化的高效工具推荐
- 神经网络实现鸢尾花分类(Tensorflow2.0)
- [java 新手练习1]5x5横排竖排方阵代码(java)
- 区块链是如何解决慈善公益项目中存在的问题呢?
- AI 人工智能 探索 (九)
- CleanMyMac多功能mac电脑管家清理软件
- 测试你最关心的QQ好友并爬取空间留言
热门文章
- android include闪退,运行闪退,怎么解决#includestdio.h#includestdlib【神奇海螺吧】_百度贴吧...
- 公众号查题接口 搜题搭建
- C语言tracert源码,TraceRoute(tracert)源码(基于原始套接字实现)
- 出行者信息服务器,出行者信息服务系统解析.ppt
- cocoscreator数字增长动画
- Hdoj 2635 Dragon Balls
- Dragon slayer
- JEC-QA:A Legal-Domain Question Answering Dataset 论文阅读
- 【Quartz系列001】Quartz学习总结
- 判断满足条件的三位数