em算法 实例 正态分布_EM算法简介

本文深入浅出地介绍了EM算法,通过抛硬币实例解释其工作原理和解决实际问题的方式。文章首先介绍了EM算法的基本概念,然后通过与K-Means的对比,展示其解决含隐变量问题的思路。接着,通过逐步优化的算法版本,揭示了EM算法的迭代过程。最后,文章对问题进行了形式化描述,并推导了EM算法的数学原理,还探讨了其应用与推广,如高斯混合模型和隐马尔可夫模型。
摘要由CSDN通过智能技术生成

作者:bobo

EM算法是机器学习十大算法之一, 在机器学习史上提出极早,影响范围极广。本文由浅入深,逐步推导EM算法,使读者更深刻的理解EM算法。

本文从EM算法的基本概念说起,提出对于EM算法的一些基本认知问题,而后通过抛硬币实例让读者更好的理解EM算法和理解这个算法要去解决的实际问题,全文主要分为如下几个部分:

  • 初识EM算法
  • 从抛硬币说起 - 极大似然估计与隐变量
  • 似曾相识的模式 - K-Means
  • 推导接近EM的优化算法
  • 问题和算法的形式化
  • 应用和推广

一 初识EM算法

EM算法全称Expectation Maximization算法,即期望最大化算法。EM算法是机器学习十大方法之一, 由Arthur P. Dempster,Nan Laird和Donald Rubin 1977年正式提出,是一种在已知部分相关变量的情况下,估计未知变量的迭代算法,该算法之前已经在许多特定的领域中被应用。

aa6aa25d98dfd035df617103e429b411.png

三位作者从左至右Arthur P. Dempster,Nan Laird和Donald Rubin

EM的算法流程相对而言比较简单,其步骤如下:

step1 :初始化分布参数

step2 :重复E、M步骤直到收敛:

a) E步骤-期望值计算:根据参数的假设值,给出未知变量的期望估计,应用于缺失值。

b) M步骤-最大化计算:根据未知变量的估计值,给出当前的参数的极大似然估计。

EM算法的描述看似非常直白简单,然而真正理解它的算法设计、有效性和实际应用,还需要思考这些问题:

  • 这个算法要解决什么样的问题?
  • 已知部分相关变量指的是什么,未知变量是哪些?
  • 求解过程中为什么需要进行迭代?
  • 迭代过程的关键是什么?
  • 从数学的角度来看,EM算法是如何推演的?

本文将注重EM算法基本概念的理解,从最简单的抛硬币实验开始,并通过逐步的改进重现EM算法的构造过程, 最后对EM算法的数学推导中关键步骤进行辅助说明和解释,希望初次接触EM算法的读者们有更深刻的了解。

二 从抛硬币说起- 极大似然估计与隐变量

在重复抛硬币实验中,如果知道硬币抛出正面的概率p,就可以计算n次试验结果中抛出正面的期望

。 反之,如果知道实验结果X,也可以估计出最可能的p的取值,称为似然估计(Likelihood Estimation),其中最好的估计称为极大似然估计(Maximum Likelihood Estimation, 简称MLE)。如下图所示:

d6a41e472a8b31bc75e31f12716225e5.png

对于上图中的两个不同颜色的小人,我们按照颜色姑且称之为小蓝和小绿。这两个小伙伴相处得很和谐:

  • 小蓝知道硬币的正反面概率分布,根据该分布可以计算出实验结果序列的期望E。如上图所示,如果硬币正面概率是0.7,意味着能够计算出每种不同的序列的概率,从而得到总体概率最大的序列结果。
  • 小绿知道实际的试验结果,可以对硬币的分布进行极大似然估计。比如,如上图所示,小绿所估算出的p=0.7。p表示在当前的观察结果下,硬币抛出正面的概率,最可能的参数是0.7。

对于小绿来说,掌握了方法后,对多枚硬币分别进行估计和一枚硬币进行估计并没有区别,在逐渐复杂的参数估计任务下,小绿开始了打怪升级的过程。第二层任务这种情况如下图所示:

16ce3a51e15c2c63c5b1c2ad3ccdc1ae.png

事物是发展的,小绿在掌握了这种技能不久之后,就遇到了一个比较头疼的问题,要估计的问题形式上发生了变化:一次猜测多个硬币的投掷概率,但试验结果和具体硬币的关系被隐藏了。在多个硬币的实验中,不仅不知道每个硬币的投掷结果概率分布,并且还不知道每个实验结果分别是来自于哪个硬币的话,小绿还有办法估算出硬币的分布吗?如下图,小红从两枚硬币中选择一枚重复抛十次,小绿只能看到每组试验的结果,却不知道小红每次使用的硬币是哪个:

6273559f5c0ce4d993c2a655186311de.png

此时小绿要如何估计出这两枚硬币的投掷结果概率参数呢?更进一步地,有没有办法估计出每次使用的硬币是哪一枚呢?此时,由于每次使用的硬币不可观察,实质上引入了一个额外的未知量,简单的似然估计已经不再适用了。这个引入的未知量叫做隐变量(Latent (hidden/unobserved) variable),而EM算法正是解决这类含隐变量问题的一种通用方法。

三 似曾相识的模式:K-Means

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值