一、引言

按照计划,这周应该学习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;θ)=∑zP(y,z;θ)=∑zP(z;θ)P(y|z;θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y

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;θ)=∑zP(Z;θ)P(Y|Z;θ)=∏j=1n[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj]

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)的极大似然估计,即:

θ^=argmaxθlogP(Y;θ)

\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的概率:

μ(i+1)=π(i)(p(i))yj(1−p(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yj

\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步:计算模型参数的新估计值:

π(i+1)=1n∑j=1nμ(i+1)jp(i+1)=∑nj=1μ(i+1)jyj∑nj=1μ(i+1)jq(i+1)=∑nj=1(1−μ(i+1)j)yj∑nj=1(1−μ(i+1)j)

\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, 满足:

||θ(i+1)−θ(i)||<ε

||\theta^{(i+1)}-\theta^{(i)}||
重复上式2-4步,完成求解,需要注意的是EM算法对初始值的选取是相当敏感的。

机器学习笔记(十六)——EM算法概述相关推荐

  1. (转载)机器学习知识点(十四)EM算法原理

    1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...

  2. 机器学习笔记(十六)强化学习

    16.强化学习 16.1任务与奖赏 强化学习(reinforcementlearning)的过程就是机器通过一系列的动作和环境交互,从而得到最佳的动作序列.图示: 强化学习任务用马尔可夫决策(Mark ...

  3. 李宏毅机器学习笔记(十六)——无监督学习(四):自编码器

    文章目录 一.自编码器的引入 二.自编码器的应用 1.文本检索 2.寻找相似图片 3.预训练神经网络 4.面向图片的自编码器 5.进行内容生成 三.自编码器的改进 1.去除噪音 2.重定义损失函数 3 ...

  4. 机器学习笔记(六)-神经网络:概述

    本次学习笔记主要记录学习机器学习时的各种记录,包括吴恩达老师视频学习.李宏毅老师视频学习.周志华老师的<机器学习>(西瓜书)以及李航老师的<统计学习方法>.作者能力有限,如有错 ...

  5. 机器学习笔记十四:随机森林

    在上一篇机器学习笔记十三:Ensemble思想(上)中,简要的提了一下集成学习的原理和两种主要的集成学习形式.  而在这部分要讲的随机森林,就算是其中属于bagging思路的一种学习方法.为了篇幅,b ...

  6. 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)

    吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection) 对于异常检测算法,使用特征是至关重要的,下面谈谈 ...

  7. 机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)

    前言 在上一篇文章<机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)>中,小夕用优(恐)雅(怖)的数学理论来向读者解释了EM算法的工作原理.那么从工程角度出发的EM算法又是怎样的呢? ...

  8. 《机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)》

    小夕曾经问一位做机器学习理论的学姐:"学姐学姐,EM算法是什么呢?" 学姐回答:"EM算法啊,就是解决包含隐变量的参数估计问题." 小夕: 然后小夕去问一位做工 ...

  9. Python机器学习笔记:异常点检测算法——Isolation Forest

    Python机器学习笔记:异常点检测算法--Isolation Forest 参考文章: (1)Python机器学习笔记:异常点检测算法--Isolation Forest (2)https://ww ...

最新文章

  1. 别再盲目学 Python 了!
  2. ajaxFileUpload文件上传
  3. JavaScript语言基础3
  4. 使用python的eval()函数循环调用某些模块中的一些方法和属性
  5. EF 更新大量的数据时出现重复键错误
  6. switch case 支持的 6 种数据类型
  7. 接口测试客户端的搭建
  8. 终于,我读懂了所有Java集合——map篇
  9. Unity导入3D模型的过程与方法
  10. 节点部署_Pod在多可用区worker节点上的高可用部署
  11. 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处
  12. 在HttpHandlers中使用Session
  13. maven pom聚合与继承
  14. AutoCAD工程制图 常见命令与注意事项全总结(120例)
  15. 2022机械员-通用基础(机械员)考试题库模拟考试平台操作
  16. 关于数位板电脑绘画——入门篇
  17. 《调教命令行04》触碰Linux的每个角落(长文)
  18. 【爱情】男女关系大实话 婚姻篇
  19. java小程序贪吃蛇代码_微信小程序Demo之贪食蛇
  20. MySQL中az是什么意思_特惠专区_华为云

热门文章

  1. Python MySQL创建表
  2. js获取下月时间_js 获取 本周、下周、本月、下月、本季度、下季度的开始结束日期...
  3. elasticsearch date_MySQL数据实时增量同步到Elasticsearch
  4. 爬虫5-BeautifulSoup模块简解
  5. C++基础03-C++对c的拓展-函数
  6. 快速排序算法理解-python
  7. Python的os模块常用文件夹的增删改查详解
  8. Icon+启动图尺寸
  9. 将list转为json字符串
  10. WAF与IPS的区别总结