EM算法

article/2025/9/14 4:32:10

一、EM算法介绍

我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。(最大似然估计:利用已知的样本结果,反推最有可能导致这样结果的一组参数)但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。用EM算法可以解决。

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。

EM算法的每次迭代由两步组成:E步,求期望;M步,求极大。所以被称为期望极大算法。

EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。

一个最直观了解EM算法思路的是K-Means算法:在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设K个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。

 

二、EM算法推导

1、Jensen不等式

 

2、极大似然估计法估计参数

(1)极大似然估计思想

        总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

(2)求解极大似然函数

(3)求最大似然函数估计值的一般步骤

 

3、求解随机变量的期望

 

4、EM算法推导

我们的似然函数为:

        上面似然函数L(Θ)式中,即式(1),是根据联合概率密度下某个变量的边缘密度函数求解的(这里把z当作是随机变量)。对每一个样本 i 的所有可能类别 z 求联合概率密度函数和,也就得到随机变量x的边缘概率密度。由于对式(1)直接求导非常困难,所以将其分子分母都乘以一个相等的函数Qz,转换为式(2)。而在式(2)变为式(3)的过程,采用的是上面提到的Jensen不等式:

分析过程如下:

所以:

所以有:

即相当于f(Ex)

同理有:

即相当于E(f (x))

根据凹函数的Jensen不等式:

即得到(2)式大于等于(3)式:

则(3)式是(2)式的下限。那么我们可以通过不断的最大化(3)式的值,来使(2)式不断提高,最终达到它的最大值。

进而可得:

 

5、EM算法步骤

 

6、EM算法的收敛性

下面这张图很好的说明了EM算法的优化过程:

EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标是凸函数,则EM算法可以保证收敛到全局最大值。

 

7、算法总结

        我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。

 

 

三、EM算法应用(EM算法用来解决含有隐含数据的极大似然估计/极大后验概率)

1、K-Means聚类(在K-Means聚类时,每个聚类簇的质心是隐含数据):https://www.jianshu.com/p/4f032dccdcef

2、高斯混合模型(高斯混合模型中,每种模型的概率是隐含数据)

什么是高斯混合模型呢?就是说,任何一个数据的分布,都可以看作是若干高斯分布的叠加。

如图所示,如果P(X)代表一种分布的话,存在一种拆分方法能让它表示成图中若干浅蓝色曲线对应的高斯分布的叠加。有意思的是,这种拆分方法已经证明出,当拆分的数量达到512时,其叠加的分布相对于原始分布而言,误差是非常非常小的了。

(1)高斯分布

        高斯分布(Gaussian distribution)有时也被称为正态分布(normal distribution),是一种在自然界大量的存在的、最为常见的分布形式。

由334个人的身高数据构成的正态分布直方图

这个图形非常直观的展示了高斯分布的形态,接下来看下严格的高斯公式定义,高斯分布的概率密度函数公式如下:

(2)高斯混合模型

        高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同类型的分布,比如正态分布和伯努利分布)。

        如图1,图中的点在我们看来明显分成两个聚类。这两个聚类中的点分别通过两个不同的正态分布随机生成而来。但是如果没有GMM,那么只能用一个的二维高斯分布来描述图1中的数据。图1中的椭圆即为二倍标准差的正态分布椭圆。这显然不太合理,毕竟肉眼一看就觉得应该把它们分成两类。

图1

图2

 

(3)GMM的应用

 

(4)GMM的参数估计

 

(5)EM算法估参流程

 

 

附上EM算法手动推导的草稿:

 

 

 

 


http://chatgpt.dhexx.cn/article/q8e3I2iJ.shtml

相关文章

TDOA算法

1.TDOA: TDOA:全称为Time Difference Of Arrival 到达时间差 距离差时间差*电磁波速度 TA-TBCONSTANT 2:TDOA定位基本原理 通过测量无线电信号到达不用监测地点的天线单元时间差,来对发射无线电信号的发射源进行定位 TDOA定位流程 从监测站将…

SM2算法概述

2021SCSDUSC SM2算法概述 SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 SM2标…

银行家算法

一 银行家算法作用&#xff1a; 动态防止进程死锁的算法 二 银行家算法步骤 第一步 判断是否存在一个安全序列&#xff0c;若存在一个安全序列则系统为安全的。 第二步1请求资源 判断 Request < Need Request < Available 第三步 假定可以分配资源 并修改 Availabl…

Newton牛顿法(一)| 基本思想+迭代公式

基本思想与迭代公式 通常对已知方程 f ( x ) 0 f(x)0 f(x)0进行变形而构造的迭代函数 φ ( x ) \varphi(x) φ(x)不是惟一的。在实际作用中&#xff0c;如果希望迭代函数 φ ( x ) \varphi(x) φ(x)有一种固定格式的构造方法&#xff0c;就可以采用Newton迭代法。 Newton迭代…

理解牛顿法

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。 其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。 书的购买链接书的勘误,优化,源代码资源导言 …

机器学习——牛顿法详解

我们现在学习的机器学习算法&#xff0c;大部分算法的本质都是建立优化模型&#xff0c;通过特定的最优化算法对目标函数&#xff08;或损失函数&#xff09;进行优化&#xff0c;通过训练集和测试集选择出最好的模型&#xff0c;所以&#xff0c;选择合适的最优化算法是非常重…

牛顿法的简单介绍及Matlab实现

目录 牛顿法原理简介使用牛顿法求解一元方程使用牛顿法求解平面定位问题参考文献 牛顿法原理简介 牛顿法的原理是利用函数 f ( x ) f(x) f(x) 的泰勒级数的前几项来寻找方程 f ( x ) 0 f(x)0 f(x)0 的根。 f ( x ) f(x) f(x)在 x 0 x_0 x0​处的一阶泰勒展开 f ( x ) f ( x…

牛顿法介绍

目录 牛顿法介绍推导海森矩阵、泰勒公式、梯度下降法牛顿法特点 牛顿法介绍 首先牛顿法是求解函数值为0时的自变量取值的方法。如果你看不懂这句没关系&#xff0c;继续往下看就好。利用牛顿法求解目标函数的最小值其实是转化成求使目标函数的一阶导为0的参数值。这一转换的理…

牛顿法,障碍法,内点法

基于对数障碍函数法的内点法 牛顿法&#xff08;Newton Method&#xff09;对数障碍函数方法一个简单的例子python代码 牛顿法&#xff08;Newton Method&#xff09; 牛顿法与梯度下降法&#xff0c;最速下降法等优化算法类似&#xff0c;是基于梯度的方法。给定一个二次可微的…

牛顿法python 实现

有用请点赞&#xff0c;没用请差评。 欢迎分享本文&#xff0c;转载请保留出处。 牛顿法也是求解无约束最优化问题的常用方法&#xff0c;有收敛速度快的优点。牛顿法是迭代算法&#xff0c;每一步需要求解目标函数的海赛矩阵的逆矩阵。同时还有拟牛顿法、阻尼牛顿法、修正牛顿…

牛顿法及牛顿法求解优化问题

牛顿法及牛顿法求解优化问题 牛顿法 1. 由来和基本思想 牛顿法也叫牛顿迭代法和牛顿-拉夫森法 1. 牛顿迭代法&#xff1a;因为牛顿法的是通过迭代来实现的&#xff0c;每次运算都让结果比之前好一点。哪怕只好一点点&#xff0c;在很多次迭代之后也可以得到一个很好的结果甚…

最优化-牛顿法(Newton)

转&#xff1a;https://blog.csdn.net/qq_36330643/article/details/78003952 平时经常看到牛顿法怎样怎样&#xff0c;一直不得要领&#xff0c;今天下午查了一下维基百科&#xff0c;写写我的认识&#xff0c;很多地方是直观理解&#xff0c;并没有严谨的证明。在我看来&…

高斯牛顿法详解

一、高斯牛顿法发展历程 1、从上倒下为高斯牛顿法的前世今生已经未来的演化&#xff1a; 最速下降法&#xff08;一阶梯度法&#xff09; 牛顿法&#xff08;二阶梯度法&#xff09; 高斯牛顿法 列文伯格法 马夸尔特法 二、问题的引出 1、考虑如下优化目标函数&#xff1a;…

牛顿法,高斯-牛顿法

牛顿法&#xff08;Newton’s method&#xff09; 假如已知函数 f ( x ) f(x) f(x)&#xff0c;想要求 f ( x ) 0 f(x)0 f(x)0 的解&#xff08;或者叫根&#xff09;。 牛顿法&#xff08;Newton’s method&#xff09;大致的思想是&#xff1a; &#xff08;1&#xff0…

优化算法——牛顿法(Newton Method)

一、牛顿法概述 除了前面说的梯度下降法&#xff0c;牛顿法也是机器学习中用的比较多的一种优化算法。牛顿法的基本思想是利用迭代点 处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似&#xff0c;然后把二次模型的极小点作为新的迭代点&#xff0c;并不断…

牛顿法(Newton‘s method)求函数极小值

牛顿法一般指牛顿迭代法&#xff0c;也叫做牛顿-拉夫逊&#xff08;拉弗森&#xff09;方法&#xff08;Newton-Raphson method),其最初的作用是用来求解函数的零点&#xff0c;但是也可以像梯度下降方法一样&#xff0c;以迭代的形式来求函数的极值。而事实上&#xff0c;牛顿…

牛顿法(Newton Method)的原理和实现步骤

牛顿法的法的目的 牛顿法不仅可以用来求解函数的极值问题&#xff0c;还可以用来求解方程的根&#xff0c;二者在本质上是一个问题&#xff0c;因为求解函数极值的思路是寻找导数为0的点&#xff0c;这就是求解方程。 牛顿法的法的原理 一元函数的情况 根据一元函数的泰勒展…

牛顿法

《牛顿法》   牛顿法&#xff08;Newton method&#xff09;和拟牛顿法&#xff08;quasi Newton method&#xff09;是求解无约束最优化问题的常用方法&#xff0c;有收敛速度快的优点。牛顿法是迭代算法&#xff0c;每一步都需求解目标函数的海塞矩阵&#xff08;Hessian …

使用Andriod Device Moniter时用正则表达式筛选指定日志

有时候我们想过滤出指定的一个或者几个日志&#xff0c;又或者屏蔽掉一些无意义的日志&#xff0c;那么可以创建一个筛选&#xff0c;在此页面的by Log Tag填写如下格式的表达式&#xff1a; 过滤出指定tag的日志信息&#xff1a;^(?:tag1|tag2|tag3) 忽略指定tag的日志信息…

使用Memberane Moniter监控HTTP SOAP requests

Memberane Moniter 使用方法见左侧Documentation 此工具可以监控到每一次发生在指定端口的http请求或者soap请求&#xff0c;如图所示。 但是个人认为仍然有几个问题&#xff1a; 1.不能真正的监控8080端口&#xff0c;我个人认为他的原理是类似于复制了一遍8080端口的内容&am…