导读

EM算法,全称Expectation Maximization Algorithm,期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最大似然估计或极大后验概率估计。

思想

EM 算法的核心思想非常简单,分为两步:Expection-StepMaximization-Step。E-Step主要通过观察数据和现有模型来估计参数,然后用这个估计的参数值来计算似然函数的期望值;而M-Step是寻找似然函数最大化时对应的参数。由于算法会保证在每次迭代之后似然函数都会增加,所以函数最终会收敛。

算法流程

输入:观察数据x=(x(1),x(2),…,x(m)x = (x^{(1)}, x^{(2)},\dots,x^{(m)}x=(x(1),x(2),…,x(m),联合分布p(x,z∣θ)p(x,z|\theta)p(x,z∣θ),条件分布p(z|x,\theta),极大值迭代次数J。

  1. 随机初始化模型参数θ\thetaθ的初值θ(0)\theta^{(0)}θ(0);
  2. for j from 1 to J:
    • E步:计算联合分布的条件概率期望:
      Qi(z(i)):=P(z(i)∣x(i),θ)Q_{i}(z^{(i)}) := P(z^{(i)}|x^{(i)},\theta) Qi​(z(i)):=P(z(i)∣x(i),θ)
    • M步:极大化L(θ)L(\theta)L(θ),得到θ\thetaθ:
      θ:=argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i)∣θ)\theta := argmax_{\theta} \sum_{i=1}^{m}\sum_{z^{(i)}} Q_{i}(z^{(i)}) log P(x^{(i)}, z^{(i)}|\theta) θ:=argmaxθ​i=1∑m​z(i)∑​Qi​(z(i))logP(x(i),z(i)∣θ)

重复E、M步骤直到θ\thetaθ收敛

例子

假设有两枚硬币 A 和 B,他们的随机抛掷的结果如下图所示:

我们很容易计算出两枚硬币抛出正面的概率(即概率分布),硬币A正面的概率为:
θA=2430=0.8\theta_{A} = \frac{24}{30} = 0.8 θA​=3024​=0.8
硬币B正面的概率为:
θB=920=0.45\theta_{B} = \frac{9}{20} = 0.45 θB​=209​=0.45

现在我们加入隐变量,抹去每轮投掷的硬币标记:

coin Statistics
Coin* 5H, 5T
Coin* 9H, 1T
Coin* 8H, 2T
Coin* 4H, 6T
Coin* 7H, 3T

现在我们不知道每次投的硬币是哪一个,我们想求一下这5次投的硬币序列:Z={z1,z2,z3,z4,z5}Z = \{z_{1},z_{2},z_{3},z_{4},z_{5}\}Z={z1​,z2​,z3​,z4​,z5​}

碰到这种情况,我们该如何估计θA\theta_{A}θA​和θB\theta_{B}θB​的值?

我们多了一个隐变量Z={z1,z2,z3,z4,z5}Z = \{z_{1},z_{2},z_{3},z_{4},z_{5}\}Z={z1​,z2​,z3​,z4​,z5​},代表每一轮所使用的硬币,我们需要知道每一轮抛掷所使用的硬币这样才能估计θA\theta_{A}θA​和θB\theta_{B}θB​的值,但是估计隐变量Z我们又需要知道θA\theta_{A}θA​和θB\theta_{B}θB​的值,才能用极大似然估计法去估计出 Z。这就陷入了一个鸡生蛋和蛋生鸡的问题。

其解决方法就是先随机初始化θA\theta_{A}θA​和θB\theta_{B}θB​,然后用去估计 Z, 然后基于 Z 按照最大似然概率去估计新的θA\theta_{A}θA​和θB\theta_{B}θB​,循环至收敛。

计算

E步:初始化θ^A(0)=0.60\hat{\theta}_{A}^{(0)} = 0.60θ^A(0)​=0.60和θ^B(0)=0.50\hat{\theta}_{B}^{(0)} = 0.50θ^B(0)​=0.50,并计算每个实验中选择的硬币是A还是B的概率,例如第一轮的结果:“H T T T H H T H T H”,即5H 5T,当选择硬币A时抛出这个结果的概率为:
P(z=A∣y1,θ)=P(z=A,y1∣θ)P(z=A,y1∣θ)+P(z=B,y1∣θ)=(0.6)5×(0.4)5(0.6)5×(0.4)5+(0.5)5×(0.5)5=0.45P(z=A|y_{1},\theta) = \frac{P(z = A,y_{1}|\theta)}{P(z = A,y_{1}|\theta) + P(z = B,y_{1}|\theta)} = \frac{(0.6)^{5} \times (0.4)^{5}}{(0.6)^{5} \times (0.4)^{5} + (0.5)^{5} \times (0.5)^{5}} = 0.45 P(z=A∣y1​,θ)=P(z=A,y1​∣θ)+P(z=B,y1​∣θ)P(z=A,y1​∣θ)​=(0.6)5×(0.4)5+(0.5)5×(0.5)5(0.6)5×(0.4)5​=0.45
当选择硬币B时抛出这个结果的概率为:
P(z=B∣y1,θ)=1−P(z=A∣y1,θ)=0.55P(z=B|y_{1},\theta) = 1 - P(z=A|y_{1},\theta) = 0.55 P(z=B∣y1​,θ)=1−P(z=A∣y1​,θ)=0.55

按这种方法计算5次投掷使用硬币A和硬币B的概率分别为:

M步

结合上面计算出的硬币A和硬币B的概率和50次投掷结果,我们利用期望分别求出硬币A和硬币B对投掷结果的贡献。例如第一轮的结果:“H T T T H H T H T H”,即5H 5T,硬币A对此的贡献为,正面:0.45×5=2.250.45 \times 5 = 2.250.45×5=2.25(5代表正面是5次);反面:0.45×5=2.750.45 \times 5 = 2.750.45×5=2.75(5代表反面是5次);第二轮结果:“H H H H T H H H H H”,即9H 1T,硬币A对此的贡献为:正面:0.8×9=2.250.8 \times 9 = 2.250.8×9=2.25(9代表正面是9次);反面:0.8×1=2.750.8 \times 1 = 2.750.8×1=2.75(1代表反面是1次),以此类推。于是我们可以得到:

把硬币A对这5次投掷正反面的贡献都计算出来之后求和:
正面贡献:21.3反面贡献:8.6正面贡献:21.3\\ 反面贡献:8.6 正面贡献:21.3反面贡献:8.6
更新θA\theta_{A}θA​:
θ^A(1)=21.321.3+8.6=0.71\hat{\theta}_{A}^{(1)} = \frac{21.3}{21.3 + 8.6} = 0.71 θ^A(1)​=21.3+8.621.3​=0.71
同理更新θB\theta_{B}θB​:
θ^B(1)=11.711.7+8.4=0.58\hat{\theta}_{B}^{(1)} = \frac{11.7}{11.7 + 8.4} = 0.58 θ^B(1)​=11.7+8.411.7​=0.58
至此重新估计出了参数值。如此反复迭代,我们就可以算出最终的参数值。

上述讲解对应下图:

总结

  • 参数$ \theta $(Model Parameters):中心点的坐标$ \theta = \{\mu_{1},\mu_{2}...\mu_{k}\} $
  • 参数$ \gamma $(Latent Variables):隐含状态参量,即每 个点属于哪个类别
    损失函数(最小化目标minimize):

l(θ)=∑i=1n∑k=1kγik∣∣xi−μk∣∣22l(\theta) = \sum_{i=1}^{n} \sum_{k=1}^{k} \gamma_{ik}||x_{i} - \mu_{k}||_{2}^{2} l(θ)=i=1∑n​k=1∑k​γik​∣∣xi​−μk​∣∣22​

计算过程(参照EM算法,交替优化):

  • E-step:随机初始化中心点(固定中心点θ\thetaθ), 找出每个点属于哪个类别,即找出距离每个点最近的中心点,并把该点标记为那个类别,得到γ\gammaγ
  • M-step:更新参数θ\thetaθ,即更新隐含状态中心点,对于所有类别属于kkk的点来说,计算它们的中心,得到了那个类别的中心点μk\mu_{k}μk​
  • E-step和M-step循环

机器学习之期望最大算法相关推荐

  1. 机器学习之期望最大化算法(Expectation Maximization, EM)

    文章目录 期望最大化算法(Expectation Maximization, EM) 1. 基本内容 2. 从三硬币模型 2.1 问题提出 2.2 解决方案 2.3 换个角度 3. 到高斯混合模型(G ...

  2. EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的

    EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联 ...

  3. gmm中隐变量是什么的_机器学习-隐变量模型和期望最大算法

    目录 1 隐变量模型 1.1 隐变量模型意义 1.2 高斯混合模型 GMM 1.3 其他模型(应用) 2 期望最大算法(EM) 2.1 EM算法意义 2.2 EM算法推导 2.3 EM算法 2.4 E ...

  4. EM算法(Expectation Maximization)期望最大化算法

    原文:EM(期望最大化)算法初步认识 - 大数据和AI躺过的坑 - 博客园 https://www.cnblogs.com/zlslch/p/6965374.html 机器学习十大算法之一:EM算法( ...

  5. 基于Spark的机器学习实践 (九) - 聚类算法

    0 相关源码 1 k-平均算法(k-means clustering)概述 1.1 回顾无监督学习 ◆ 分类.回归都属于监督学习 ◆ 无监督学习是不需要用户去指定标签的 ◆ 而我们看到的分类.回归算法 ...

  6. 机器学习系列之EM算法

    机器学习系列之EM算法 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要 ...

  7. 北京内推 | 联想研究院机器学习团队招聘因果推理算法研究实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 联想研究院 联想研究院创立于 1999 年,是联想集团的公司级技术研发机构 ...

  8. 机器学习定义及常用算法

    转载自:http://www.cnblogs.com/shishanyuan/p/4747761.html?utm_source=tuicool 1 . 机器学习概念 1.1   机器学习的定义 在维 ...

  9. NLP --- 隐马尔可夫HMM(EM算法(期望最大化算法))

    期望最大化 (Expectation Maximization) 算法最初是由 Ceppellini[2] 等人 1950 年在讨论基因频率的估计的时候提出的.后来又被 Hartley[3] 和Bau ...

最新文章

  1. Ubuntu14.04 64位上配置终端显示git分支名称
  2. 《精通Python设计模式》学习结构型之享元模式
  3. How can ifm help the SME WELL?
  4. visual studio code python插件下载_visual studio code 的必装推荐插件plugin, vscode, vsc
  5. 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)
  6. uWSGI 和 nginx 的区别?
  7. JAVA框架Struts2 结果页配置
  8. 收藏 : 50个Excel逆天功能,一秒变“表哥”
  9. Android mock for循环,Android单元测试(五):依赖注入,将mock方便的用起来
  10. pcre安装_Nginx | Nginx的介绍和安装
  11. Windows 下 Composer 与 Laravel 4 的安装
  12. 帝国CMS 二级联动 基于optionTree插件
  13. Linux宝库名人轶事栏目 | 人生若只如初见,我与开源圈
  14. python xlsxwriter生成图片保存_Python xlsxwriter库 图表Demo
  15. 苹果MAC系统读写NTFS格式u盘硬盘方法
  16. isalpha isdigit isalnum isupper 检测字母或数字函数
  17. module() takes at most 2 arguments (3 given)
  18. 【JAVA小游戏】炸飞机
  19. 线程中的setDaemon方法
  20. CommandArgument属性 绑定参数

热门文章

  1. Python+opencv实图片定位
  2. 物业维修报修小程序毕业设计毕设作品开题报告答辩PPT
  3. 用eclipse连接数据库捕获java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。
  4. 女朋友问的那些问题—log.info在测试环境正常打印,上了生产就废?
  5. 2022年工业机器人的5大应用行业
  6. STC89C52引脚
  7. 有符号类型和无符号类型
  8. Hyperspectral imagery dataset
  9. 全方位解读TS501微型数采仪的功能及用法
  10. 服务器退出安全狗服云,安全狗服云远程重启服务器的方法分享