EM算法(Expectation Maximization Algorithm)详解

EM算法(Expectation maximization algorithm) 极大似然估计 极大似然估计定义 求解过程 EM算法 EM算法和极大似然估计的区别 鸡生蛋,蛋生鸡问题 EM算法思想 三硬币模型 jensen不等式 Q函数 EM算法的推导 K-means中EM思想 参考资料 纠结了好几天,总算搞清楚了EM算法的大概。因此写下这篇博客做个笔记,由于这方面懂得不是很多,可能存在理解错误的地方,欢迎大家指正,好了闲话不多说。 极大似然估... 阅读详情

EM算法(Expectation Maximization Algorithm)详解

  • 主要内容 
    • EM算法简介
    • 预备知识 
      • 极大似然估计
      • Jensen不等式
    • EM算法详解 
      • 问题描述
      • EM算法推导
      • EM算法流程
    • EM算法优缺点以及应用

1、EM算法简介 
  EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expectation Maximization Algorithm)。EM算法受到缺失思想影响,最初是为了解决数据缺失情况下的参数估计问题,其算法基础和收敛有效性等问题在Dempster,Laird和Rubin三人于1977年所做的文章Maximum likelihood from incomplete data via the EM algorithm中给出了详细的阐述。其基本思想是:首先根据己经给出的观测数据,估计出模型参数的值;然后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计,然后反复迭代,直至最后收敛,迭代结束。 
  EM算法作为一种数据添加算法,在近几十年得到迅速的发展,主要源于当前科学研究以及各方面实际应用中数据量越来越大的情况下,经常存在数据缺失或者不可用的的问题,这时候直接处理数据比较困难,而数据添加办法有很多种,常用的有神经网络拟合、添补法、卡尔曼滤波法等等,但是EM算法之所以能迅速普及主要源于它算法简单,稳定上升的步骤能非常可靠地找到“最优的收敛值”。随着理论的发展,EM算法己经不单单用在处理缺失数据的问题,运用这种思想,它所能处理的问题更加广泛。有时候缺失数据并非是真的缺少了,而是为了简化问题而采取的策略,这时EM算法被称为数据添加技术,所添加的数据通常被称为“潜在数据”,复杂的问题通过引入恰当的潜在数据,能够有效地解决我们的问题。

2、预备知识 
  介绍EM算法之前,我们需要介绍极大似然估计以及Jensen不等式。 
2.1 极大似然估计 
(1)举例说明:经典问题——学生身高问题 
  我们需要调查我们学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200个人。将他们按照性别划分为两组,然后先统计抽样得到的100个男生的身高。假设他们的身高是服从正态分布的。但是这个分布的均值μμ和方差σ2σ2我们不知道,这两个参数就是我们要估计的。记作θ=[μ,σ]Tθ=[μ,σ]T。 
  问题:我们知道样本所服从的概率分布的模型和一些样本,需要求解该模型的参数。如图1 

这里写图片描述 
图1

  我们已知的有两个:样本服从的分布模型、随机抽取的样本;我们未知的有一个:模型的参数。根据已知条件,通过极大似然估计,求出未知参数。总的来说:极大似然估计就是用来估计模型参数的统计学方法。 
(2)如何估计 
  问题数学化:设样本集 X=x1,x2,…,xNX=x1,x2,…,xN ,其中 N=100N=100  , p(xi|θ)p(xi|θ) 为概率密度函数,表示抽到男生 xixi (的身高)的概率。由于100个样本之间独立同分布,所以我同时抽到这100个男生的概率就是他们各自概率的乘积,也就是样本集 XX 中各个样本的联合概率,用下式表示: 
这里写图片描述

  这个概率反映了,在概率密度函数的参数是 θθ 时,得到 XX 这组样本的概率。 我们需要找到一个参数 θθ ,使得抽到 XX 这组样本的概率最大,也就是说需要其对应的似然函数 L(θ)L(θ) 最大。满足条件的 θθ 叫做 θθ 的最大似然估计量,记为 
θ^=argmaxL(θ)θ^=argmaxL(θ)

(3)求最大似然函数估计值的一般步骤 
  首先,写出似然函数: 
这里写图片描述

  然后,对似然函数取对数: 
这里写图片描述

  接着,对上式求导,令导数为0,得到似然方程; 
  最后,求解似然方程,得到的参数 θθ 即为所求。 
2.2 Jensen不等式  
  设 ff 是定义域为实数的函数,如果对于所有的实数 xx , f(x)f(x) 的二次导数大于等于0,那么 ff 是凸函数。 
  Jensen不等式表述如下:如果 ff 是凸函数, XX 是随机变量,那么: E[f(X)]≥f(E[X])E[f(X)]≥f(E[X]) 。当且仅当 XX 是常量时,上式取等号。其中, E[x]E[x] 表示 xx 的数学期望。 
  例如,图2中,实线 ff 是凸函数, XX 是随机变量,有0.5的概率是 aa ,有0.5的概率是 bb 。 XX 的期望值就是 aa 和 bb 的中值了,图中可以看到 E[f(X)]≥f(E[X])E[f(X)]≥f(E[X]) 成立。 
   注:  
  1、Jensen不等式应用于凹函数时,不等号方向反向。当且仅当 XX 是常量时,Jensen不等式等号成立。 
  2、关于凸函数,百度百科中是这样解释的——“对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数(向下凸)”。关于函数的凹凸性,百度百科中是这样解释的——“中国数学界关于函数凹凸性定义和国外很多定义是反的。国内教材中的凹凸,是指曲线,而不是指函数,图像的凹凸与直观感受一致,却与函数的凹凸性相反。只要记住“函数的凹凸性与曲线的凹凸性相反”就不会把概念搞乱了”。关于凹凸性这里,确实解释不统一,博主暂时以函数的二阶导数大于零定义凸函数,此处不会过多影响EM算法的理解,只要能够确定何时 E[f(X)]≥f(E[X])E[f(X)]≥f(E[X]) 或者 E[f(X)]≤f(E[X])E[f(X)]≤f(E[X]) 就可以。 
这里写图片描述 
图2

3、EM算法详解 
3.1 问题描述 
  我们目前有100个男生和100个女生的身高,共200个数据,但是我们不知道这200个数据中哪个是男生的身高,哪个是女生的身高。假设男生、女生的身高分别服从正态分布,则每个样本是从哪个分布抽取的,我们目前是不知道的。这个时候,对于每一个样本,就有两个方面需要猜测或者估计: 这个身高数据是来自于男生还是来自于女生?男生、女生身高的正态分布的参数分别是多少?EM算法要解决的问题正是这两个问题。如图3: 

这里写图片描述 
图3

3.2 EM算法推导  
  样本集 X={x1,…,xm}X={x1,…,xm} ,包含 mm 个独立的样本;每个样本 xixi 对应的类别 zizi 是未知的(即上文中每个样本属于哪个分布是未知的);我们需要估计概率模型 p(x,z)p(x,z) 的参数 θθ ,即需要找到适合的 θθ 和 zz 让 L(θ)L(θ) 最大。根据上文 2.1 极大似然估计 中的似然函数取对数所得 logL(θ)logL(θ) ,可以得到如下式: 
这里写图片描述

其中,(1)式是根据 xixi 的边缘概率计算得来,(2)式是由(1)式分子分母同乘一个数得到,(3)式是由(2)式根据Jensen不等式得到。 
  这里简单介绍一下(2)式到(3)式的转换过程:由于 ∑Qi(z(i))[p(x(i),z(i);θ)Qi(z(i))]∑Qi(z(i))[p(x(i),z(i);θ)Qi(z(i))] 为 p(x(i),z(i);θ)Qi(z(i))p(x(i),z(i);θ)Qi(z(i)) 的期望,且 log(x)log(x) 为凹函数,根据Jensen不等式(当 ff 是凸函数时, E[f(X)]≥f(E[X])E[f(X)]≥f(E[X]) 成立;当 ff 是凹函数时, E[f(X)]≤f(E[X])E[f(X)]≤f(E[X]) 成立)可由(2)式得到(3)式。此处若想更加详细了解,可以参考博客 the EM algorithm 。 
  上述过程可以看作是对 logL(θ)logL(θ) (即 L(θ)L(θ) )求了下界。对于 Qi(z(i))Qi(z(i)) 的选择,有多种可能,那么哪种更好呢?假设 θθ 已经给定,那么 logL(θ)logL(θ) 的值就取决于 Qi(z(i))Qi(z(i)) 和 p(x(i),z(i))]p(x(i),z(i))] 了。我们可以通过调整这两个概率使下界不断上升,以逼近 logL(θ)logL(θ) 的真实值,那么什么时候算是调整好了呢?当不等式变成等式时,说明我们调整后的概率能够等价于 logL(θ)logL(θ) 了。按照这个思路,我们要找到等式成立的条件。根据Jensen不等式,要想让等式成立,需要让随机变量变成常数值,这里得到: 
p(x(i),z(i);θ)Qi(z(i))=cp(x(i),z(i);θ)Qi(z(i))=c
cc 为常数,不依赖于 z(i)z(i) 。对此式做进一步推导:由于 ∑z(i)Qi(z(i))=1∑z(i)Qi(z(i))=1 ,则有 ∑z(i)p(x(i),z(i);θ)=c∑z(i)p(x(i),z(i);θ)=c (多个等式分子分母相加不变,则认为每个样例的两个概率比值都是 cc ),因此得到下式: 
这里写图片描述

  至此,我们推出了在固定其他参数 θθ 后, Qi(z(i))Qi(z(i)) 的计算公式就是后验概率,解决了 Qi(z(i))Qi(z(i)) 如何选择的问题。这一步就是E步,建立 logL(θ)logL(θ) 的下界。接下来的M步,就是在给定 Qi(z(i))Qi(z(i)) 后,调整 θθ ,去极大化 logL(θ)logL(θ) 的下界(在固定 Qi(z(i))Qi(z(i)) 后,下界还可以调整的更大)。这里读者可以参考文章 EM算法 。 
3.3 EM算法流程  
  初始化分布参数 θθ ; 重复E、M步骤直到收敛: 
  E步骤:根据参数 θθ 初始值或上一次迭代所得参数值来计算出隐性变量的后验概率(即隐性变量的期望),作为隐性变量的现估计值: 
这里写图片描述

  M步骤:将似然函数最大化以获得新的参数值: 
这里写图片描述

4、EM算法优缺点以及应用 
  优点:简介中已有介绍,这里不再赘述。 
  缺点:对初始值敏感:EM算法需要初始化参数θθ,而参数θθ的选择直接影响收敛效率以及能否得到全局最优解。 
  EM算法的应用:k-means算法是EM算法思想的体现,E步骤为聚类过程,M步骤为更新类簇中心。GMM(高斯混合模型)也是EM算法的一个应用,感兴趣的小伙伴可以查阅相关资料。

【大道至简】机器学习算法之EM算法(Expectation Maximization Algorithm)详解(附代码)---通俗理解EM算法。 通过上面的分析,我们终于可以总结一下EM算法啦!总的来说,EM算法分为E步和M步:(1)给参数θ即第0步赋初值;(2)如果是第一轮迭代,那么令θ=来计算Q函数;如果是>1轮迭代,则θ的值由上一次M步计算出的θ值决定。由于E步时θ已知,所以只需要计算Q,公式如下:也就是给定θ和已知的观测数据x的条件下,求一下隐变量z的条件概率。(3)根据E步计算出来的Q,按如下公式计算θ:也就是固定Q(z也固定)和已知的观测数据x,算一下θ。(4)重复(3)和(4)直至收敛。 阅读详情

相关推荐

【机器学习】期望最大化(EM)算法

EM算法是一种从不完全数据或有数据丢失的数据集(存在隐变量)中求解概率模型参数的最大似然估计方法。第一步求隐变量的期望(E)第二步求似然函数极大(M)EM算法在一般情况是收敛的,但是不保证收敛到全局最优,即有可能进入局部的最优。应用到的地方:混合高斯HMM模型、隐马尔科夫模型、混合朴素贝叶斯模型等。

酒酿小圆子呀~ 5487

如何通俗理解EM算法

如何通俗理解EM算法 前言 了解过EM算法的同学可能知道,EM算法是数据挖掘十大算法,可谓搞机器学习或数据挖掘的基本绕不开,但EM算法又像数据结构里的KMP算法,看似简单但又貌似不是一看就懂,想绕开却绕不开的又爱又恨,可能正在阅读此文的你感同身受。 一直以来,我都坚持一个观点:当你学...

结构之法 算法之道 16万+

期望极大算法(Expectation Maximization Algorithm,EM)

期望极大算法(Expectation Maximization Algorithm,EM)

nanxiaotao的博客 1392

EM算法原理详解

http://blog.youkuaiyun.com/pipisorry/article/details/42550815EM算法有很多的应用,最广泛的就是GMM混合高斯模型、聚类、HMM、基于概率的PLSA模型等等。本文详细讲述EM算法的由来、EM算法的实现思路、EM算法解决PLSA和LDA的方法。概述、EM是一种解决存在隐含变量优化问题的有效方法。EM的意思是“Expectation Maximizati

皮皮blog 5万+

EM 算法(Expectation-Maximization algorithm, EM)

1. 相关的基本概念 似然函数: L(θ)=L(x1,...,xn;θ)=∏i=1np(xi;θ),θ∈ΘL(\theta) = L(x_1, ..., x_n ; \theta) = \prod_{i =1}^{n}p(x_i;\theta), \theta \in \ThetaL(θ)=L(x1​,...,xn​;θ)=i=1∏n​p(xi​;θ),θ∈Θ 上述概率密度函数称为参数θ\thetaθ相对于样本集xxx的似然函数(Likehood function),记作L(θ)L(\theta)L(θ

qq_42231574的博客 271

Maximum Likelihood from Incomplete Data via the EM Algorithm

这是关于EM算法的第一篇原创性论文,由A. P. Dempster; N. M. Laird; D. B. Rubin于1977年发表,很值得一读。

Expectation-Maximization Algorithm(EM算法)

EM算法是一种强大的迭代优化算法,专门用于在存在隐变量或不完全数据的情况下进行最大似然估计。它通过反复进行期望步骤(估计隐变量的期望)和最大化步骤(更新参数),逐步逼近似然函数的局部极值。尽管EM算法在某些情况下可能收敛到局部最优解,且收敛速度较慢,但它在许多实际应用中,如高斯混合模型、隐马尔可夫模型等,依然是非常有效的工具。

Python领域优质萌新学习笔记 1966

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

EM算法(Expectation Maximization Algorithm)

文章目录 1. 前言 2.基础数学知识2.1.凸函数2.2.Jensen不等式 3.EM算法所解决问题的例子 4.EM算法 4.1.模型说明 4.2.EM算法推导 4.3.EM算法收敛性证明 4.4. EM算法E步说明 5.小结 6.主要参考文献 1....

weixin_30493401的博客 236

汽车氛围灯 PCBA 方案开发:从技术底层解析车载光效的核心逻辑

摘要: 车载氛围灯PCBA方案开发需兼顾性能与车规要求。主控芯片选型应关注运算能力、温度适应性和低功耗(如NXPS32K344、复旦微FM33FG065A)。电路防护需采用TVS二极管等组合设计,满足ISO7637-2浪涌防护标准。通信协议分层应用(CAN+LIN),调光需解决色准与温漂问题,动态灯效通过FIFO队列实现。开发中需进行温度循环、振动、EMC等可靠性测试,细节处理(如三防涂覆)至关重要。该领域开发需熟悉车规标准并积累实车经验。

2401_87454052的博客 1132

PostgreSQL数据库全攻略:从入门到精通

本文是一份PostgreSQL数据库综合指南,涵盖安装配置、基础操作和高级管理。主要内容包括:1) PostgreSQL简介与各平台安装方法;2) 数据库基本操作,如创建数据库/表、CRUD操作、用户权限管理;3) 高级功能包括索引优化、事务控制、视图、存储过程、触发器和扩展模块;4) 数据库管理维护,涉及配置调优、备份恢复、性能监控和日常维护;5) 安全设置与高可用方案。指南提供了从入门到进阶的实用知识,强调结合官方文档进行深入学习,帮助用户高效使用这一功能强大的开源关系型数据库系统。

索大神的博客 1969

EM算法(期望最大算法、Expectation Maximization Algorithm)

介绍了EM算法的实现方式以及定理推导,给出了EM算法的python实现代码

一般路过底层打工人的博客 1599

CMOS sensor 基础

NA

m0_72053187的博客 1657

最大期望算法(Expectation-Maximization algorithm,EM)

最大期望算法(Expectation-Maximization algorithm,EM) 最大期望算法(Expectation-Maximization algorithm,EM) 一、EM算法的广义步骤 二、先写出EM的公式 三、其收敛性的证明 四、公式推导方法1 4.1 E-M步骤公式 4.2 推导过程 五、公式推导方法2(涉及Jensen不等式) 5.1 Jensen不等式 5.2 关于E-M算法的理解 5.3 推导过程 六、广义EM算法 广义EM步骤: 七、EM算法的改进

Wdradon的博客 632

STA 静态时序分析 第三章——标准单元库中的高级功耗建模与优化策略

本文深入探讨了STA静态时序分析中标准单元库的高级功耗建模与优化策略。详细解析了动态功耗和漏电功耗的精细建模技术,包括基于波形敏感的CCS模型和温度敏感的漏电模型,并介绍了多工艺角功耗建模及低功耗设计优化策略,为纳米级芯片设计提供关键能效解决方案。

weixin_29290863的博客 224

代谢组数据分析(二十四):基于tidymass包从质谱原始数据到代谢物注释结果的实践指南

本教程介绍了如何使用 R 语言中的 tidymass 包进行代谢组学数据分析。tidymass 是一个专为液相色谱-质谱(LC-MS)数据设计的开源工具,提供从数据准备到统计分析的全流程支持。教程详细讲解了数据准备、数据处理、数据探索、数据清洗、代谢物注释、统计分析及结果输出的步骤。用户需准备 MS1、MS2 数据和样本信息表,并通过 tidymass 进行峰识别、峰分组、保留时间校正等操作。数据处理后,用户可进行数据探索、清洗和代谢物注释,最终通过统计分析发现潜在的生物标志物,并输出结果。教程还提供了代码

专注生信领域 1635

EM算法(expectation-maximization algorithm)

简介 EM算法的核心思想是:根据已有的数据,借助隐藏变量,通过期望值之间的迭代,估计似然函数。  混合高斯模型与EM算法 2.1  二分量混合高斯的EM算法 假设有数据Y,现在用两个高斯分布来对密度建模,参数为。则Y的密度为: (1) 参数为: (2)        基于N个训练数据的对数似然是:

xiaolingfeng12345的专栏 1485

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 206

EM算法学习(Expectation Maximization Algorithm)

http://www.cnblogs.com/mindpuzzle/archive/2013/04/05/2998746.html EM算法学习(Expectation Maximization Algorithm) 一、前言       这是本人写的第一篇博客,是学习李航老师的《统计学习方法》书以及斯坦福机器学习课Andrew Ng的EM算法课后,对EM算法

hechenghai 1万+

SAP Joule for Consultants 与 Joule for Developers 全面解读

SAP推出面向不同用户群体的Joule AI助手:开发者版(Joule for Developers)专注于编码提效,嵌入开发工具链辅助生成、重构和测试代码;顾问版(Joule for Consultants)聚焦业务场景,集成SAP云应用知识库,为咨询项目提供方案设计、差距分析和实施指引。两者共享AI底座但功能侧重点不同:开发者版优化技术开发流程,顾问版加速项目交付周期。典型应用场景包括制造业云转型方案制定和ABAP代码迁移,分别展示了两版本在业务决策支持和技术实施中的价值。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 542

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

EM算法(Expectation-maximization algorithm)小结

EM算法(Expectation-Maximization algorithm)是一类通过迭代进行极大似然估计的优化算法,今天翻出了之前的笔记,在这里也放一下吧。 EM算法背景 EM(expectation-maximization)算法是Dempster,Laird和Rubin(DLR)三个人在1977年正式提出的.主要是用于在不完全数据的情况下计算最大似然估计.在EM算法正式提出以来,人们对EM算法的性质有更加深入的研究.并且在此基础上,提出了很多改进的算法.在数理统计,数据挖掘,机器学习以及模式识别等

IceelfLuo的博客 1016

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

EM算法——最大期望算法(Expectation-maximization algorithm)

最大期望算法(Expectation-maximization algorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。 在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable...

a12141986的博客 1527

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

EM算法(Expectation - Maximization)通俗实例(What is the expectation maximization algorithm?)

EM算法通俗例子What is the expectation maximization algorithm?

cf的博客 6662
上一篇: 主题模型-LDA浅析
下一篇: 编译程序加不加 -lpthread 的区别【转】
青松愉快
博客等级 码龄14年 71粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值