机器学习笔记(十六)——EM算法概述
一、引言
按照计划,这周应该学习HMM中的第三个基本问题:参数估计问题,但是其中的内容涉及到了EM算法,所以打算先把EM算法搞定之后再去继续HMM的问题。EM算法的推导过程比较复杂,这节我只给出简述和计算公式,待推导完成后再贴上推导过程。
二、一个实例
例1 (三硬币模型) 假设有3枚硬币,分别记为A,B,CA,B,C。这些硬币正面出现的概率分别是π,p,q\pi, p,q。进行如下掷硬币试验:先掷硬币A,根据其结果选出B或者C,正面选B,反面选C;然后掷选出的硬币,掷硬币的结果,正面记为1,反面记为0;独立重复n次试验(这里,n=10),观测结果如下:1,1,0,1,0,0,1,0,1,1.假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即求三硬币模型的参数。
三硬币模型可以写作:
P(y;\theta) = \sum_z P(y,z;\theta) = \sum_z P(z;\theta)P(y|z;\theta) \\ =\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}
上式中,随机变量 yy是观测变量,zz是隐变量且不可观测, θ=(π,p,q)\theta = (\pi, p, q)是模型参数。这一模型是以上数据的生成模型。将观测数据表示为 Y=(Y1,Y2,…,Yn)TY=(Y_1,Y_2,\dots,Y_n)^T, 未观测数据表示为 Z=(Z1,Z2,…,Zn)TZ=(Z_1,Z_2, \dots, Z_n)^T,则观测数据的似然函数为:
P(Y;\theta) = \sum_z P(Z;\theta)P(Y|Z;\theta) \\ =\prod_{j=1}^n[\pi p^{y_j}(1-p)^{1-{y_j}}+(1-\pi)q^{y_j}(1-q)^{1-{y_j}}]
三、EM算法的迭代公式
考虑求模型参数θ=(π,p,q)\theta = (\pi, p, q)的极大似然估计,即:
\hat{\theta} = arg \max_\theta \log P(Y;\theta)
这个问题没有解析解,只有通过迭代方法求解,EM算法就是求解这个问题的一种算法。下面先给出去针对上述问题的EM算法,推导过程下节给出。
1. 选取初始参数 θ(0)=(π(0),p(0),q(0))\theta^{(0)} = (\pi^{(0)}, p^{(0)}, q^{(0)})
2. E步:计算模型参数 π(i),p(i),q(i)\pi^{(i)}, p^{(i)}, q^{(i)}下观测数据 yjy_j来自掷硬币B的概率:
\mu^{(i+1)} = \frac{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}}{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j} +(1-\pi^{(i)})(q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}}
3. M步:计算模型参数的新估计值:
\pi^{(i+1)} = \frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)}\\ p^{(i+1)} = \frac{\sum_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum_{j=1}^{n}\mu_j^{(i+1)}}\\ q^{(i+1)} = \frac{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})}
4. 给出停止迭代的条件, 一般是较小的正数 ε\varepsilon, 满足:
||\theta^{(i+1)}-\theta^{(i)}||
重复上式2-4步,完成求解,需要注意的是EM算法对初始值的选取是相当敏感的。
机器学习笔记(十六)——EM算法概述相关推荐
- (转载)机器学习知识点(十四)EM算法原理
1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...
- 机器学习笔记(十六)强化学习
16.强化学习 16.1任务与奖赏 强化学习(reinforcementlearning)的过程就是机器通过一系列的动作和环境交互,从而得到最佳的动作序列.图示: 强化学习任务用马尔可夫决策(Mark ...
- 李宏毅机器学习笔记(十六)——无监督学习(四):自编码器
文章目录 一.自编码器的引入 二.自编码器的应用 1.文本检索 2.寻找相似图片 3.预训练神经网络 4.面向图片的自编码器 5.进行内容生成 三.自编码器的改进 1.去除噪音 2.重定义损失函数 3 ...
- 机器学习笔记(六)-神经网络:概述
本次学习笔记主要记录学习机器学习时的各种记录,包括吴恩达老师视频学习.李宏毅老师视频学习.周志华老师的<机器学习>(西瓜书)以及李航老师的<统计学习方法>.作者能力有限,如有错 ...
- 机器学习笔记十四:随机森林
在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式. 而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,b ...
- 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection) 对于异常检测算法,使用特征是至关重要的,下面谈谈 ...
- 机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)
前言 在上一篇文章<机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)>中,小夕用优(恐)雅(怖)的数学理论来向读者解释了EM算法的工作原理.那么从工程角度出发的EM算法又是怎样的呢? ...
- 《机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)》
小夕曾经问一位做机器学习理论的学姐:"学姐学姐,EM算法是什么呢?" 学姐回答:"EM算法啊,就是解决包含隐变量的参数估计问题." 小夕: 然后小夕去问一位做工 ...
- Python机器学习笔记:异常点检测算法——Isolation Forest
Python机器学习笔记:异常点检测算法--Isolation Forest 参考文章: (1)Python机器学习笔记:异常点检测算法--Isolation Forest (2)https://ww ...
最新文章
- 别再盲目学 Python 了!
- ajaxFileUpload文件上传
- JavaScript语言基础3
- 使用python的eval()函数循环调用某些模块中的一些方法和属性
- EF 更新大量的数据时出现重复键错误
- switch case 支持的 6 种数据类型
- 接口测试客户端的搭建
- 终于,我读懂了所有Java集合——map篇
- Unity导入3D模型的过程与方法
- 节点部署_Pod在多可用区worker节点上的高可用部署
- 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处
- 在HttpHandlers中使用Session
- maven pom聚合与继承
- AutoCAD工程制图 常见命令与注意事项全总结(120例)
- 2022机械员-通用基础(机械员)考试题库模拟考试平台操作
- 关于数位板电脑绘画——入门篇
- 《调教命令行04》触碰Linux的每个角落(长文)
- 【爱情】男女关系大实话 婚姻篇
- java小程序贪吃蛇代码_微信小程序Demo之贪食蛇
- MySQL中az是什么意思_特惠专区_华为云