一文读懂EM期望最大化算法和一维高斯混合模型GMM

高斯混合模型(GMM)和EM算法详解 小白一枚,接触到GMM和EM,现将学习到的整理出来,如有错误,欢迎指正,希望大家多多交流,共同进步。接下来将按照思路一步一步进行介绍。 1. 单高斯模型GSM(一维) 单高斯模型很简单,大家也很清楚,这里不做过多的解释,如不明白可自行百度。如图 概率密度函数为: 2.单高斯模型(多维,以二维为例) 二维高斯分布图像如下 ... 阅读详情

EM最大期望算法是一个数值求解似然函数极大值的迭代算法,就好像梯度下降算法是一种数值求解损失函数极小值的迭代算法一样。

EM算法通常适合于随机变量依赖于另外一些不可观测的随机变量(称之为隐含变量或者中间变量)的场景。

此时由于似然函数的表示形式较为复杂(含有对隐含变量的累加求和或者积分),难以求导获取似然函数的极大值,也无法方便地应用梯度下降算法进行优化。

而EM算法是一个类似梯度下降算法的迭代算法,它首先给随机变量分布参数赋初始值,然后寻找到了一个便于优化的似然函数的下界 (恰好为似然函数在某个分布下的期望Expectation,期望中消去了隐变量),并通过不断地优化(Maximization) 这个下界求解似然函数的极值。

EM算法在机器学习的许多算法中都有使用到,如

  • KMeans:实际上K-Means是一种Hard EM算法, 隐变量直接取最大概率的位置。

  • 支持向量机的SMO算法

  • LDA主题模型参数估计

  • 混合高斯模型的参数估计

  • HMM隐马尔科夫模型的参数估计

本篇文章我们将详述EM算法的推导过程,并以一维GMM高斯混合模型为例,示范EM算法的应用方法。

公众号后台回复关键字:源码,获取本文含全部公式的markdown文件。

一,EM最大期望算法

当我们关心的随机变量依赖于另外一些不可观测的随机变量时,通过对我们关心的随机变量采样,我们将难以直接通过最大似然估计的方法推断我们关心的随机变量分布律中的未知参数。

例如我们有100个学生的身高数据,其中有一些是男生,另外一些是女生。男生和女生的身高服从不同的正态分布,但是我们不知道哪些数据是男生的,哪些是女生的,这是这个模型的隐含变量,是不可以被观测到的。

那么如何根据这批身高数据估计男女生各自正态分布的均值和方差,以及这批数据中男生的比例呢?

期望最大化算法 EM (Expectation Maximization)这时候就派上用场了,它能够解决这种含有隐含随机变量的模型的参数估计的问题。

设观测随机变量为, 隐含随机变量为,待确定参数为。

当和确定时,的分布函数由给出。

按照极大似然原理,并使用全概率公式,似然函数可以写成

对数似然函数可以写成

对数似然函数中,由于有对的求和,如果尝试对求偏导等于0来计算最优的,将难以得到对应的解析解。这和目标函数非常复杂时,无法直接解析求解只能使用梯度下降这类迭代算法是一样的。

从原则上说,在一些较为简单的情况下我们也能够使用梯度下降法求解对数似然的最优值,例如当隐藏变量Z是离散随机变量时,且可取值较少,我们很容易将对z的求和表示出来,从而可以计算梯度进而使用梯度下降法。

但对于一般情况,对z的求和将难以进行,如果Z是连续的随机变量,对z的求和将变成积分,此时使用梯度下降法将更加困难。

我们可以尝试和梯度下降算法效果相当的迭代算法。最大期望算法EM正是可以实现这个目的。

大概原理如下,我们首先给赋初始值 ,然后在此基础上,找到一个可以使得对数似然函数变大的,然后再在此基础上找到一个能够使对数似然函数变得更大的,如此便可不断地提高对数似然函数的值。迭代执行n干次后,如果和的差值足够小,那么我们认为就找到了比较合适的  作为 的估计值。

下面阐述最大期望算法的原理推导。

假设在第n次迭代,我们的对数似然函数取值为

我们希望找到一个使得

下面我们开始寻找符合条件的

构造函数

由于是严格凹函数,Jensen不等式成立

存在以下缩放:

注意到

因此

取 

则有

即符合我们寻找的条件。

消去无关量,我们可以得到

注意到实际上是一个分布,因此右边可以理解成求随机变量

在分布下期望的最大值。

总结下 EM算法算法的流程:

(1) 初始化 。

注意这里的模型参数要是完备的,即给定这些参数,能够计算联合概率分布函数

,对于男女生混合身高的例子,我们的参数应当包括,即男生平均身高和身高标准差,女生平均身高和身高标准差,以及男生的比例。

(2) 计算E步,又分成两小步,先计算概率分布,再算出期望

(3) 对E求极大,解出的新的估计,将新的估计值代入第(1)步,直到收敛。

可以证明EM算法是收敛的,但不能保证它能收敛到全局最优,因此可以尝试多个不同的初始值,计算结果,并挑选能够使似然函数取值最大的结果。

二,一维GMM高斯混合模型

高斯分布模型也叫正态分布模型,其概率密度函数如下:

GMM高斯混合模型的概率密度函数为多个高斯分布的线性组合:

其中为正数,并且:

高斯混合模型的参数可以理解为样本属于第类的概率。

则高斯混合模型的概率密度函数可以表示成如下形式:

根据EM算法,

(1)我们首先取初始化参数

然后执行迭代过程。

(2)我们先求期望值

代入贝叶斯公式

(3)我们求期望极大值对应的 作为  

考虑到约束

根据拉格朗日乘子法,作拉格朗日函数

取极大值时我们有:

于是我们有:

解得:

如此迭代,直到收敛。

GMM与EM算法的Python实现 GMM与EM算法的Python实现 高斯混合模型(GMM)是一种常用的聚类模型,通常我们利用最大期望算法(EM)对高斯混合模型中的参数进行估计。 本教程中,我们自己动手一步步实现高斯混合模型。完整代码在第4节。 预计学习用时:30分钟。 本教程基于Python 3.6。 原创者:u_u | 修改校对:SofaSofa TeamM | 1. 高斯混合模型(Gaussian Mixture mode... 阅读详情

相关推荐

详解高斯混合模型与EM算法

详解高斯混合模型与EM算法 详解高斯混合模型与EM算法高斯混合模型单高斯模型(Gaussian single model, GSM)一维高斯分布多维高斯分布混合高斯模型(Gaussian mixture model, GMM)混合高斯模型产生的原因直观理解高斯混合模型一维混合高斯模型二维空间3个高斯模型混合极大似然估计(Maximum Likehood Estimate, MLE)(最大化对数似然...

Avery123123的博客 8035

理解为何用期望最大化或梯度下降等启发式方法处理非凸函数在实际中如此有效,对于理论计算机科学而言是一大挑战

理解为何用期望最大化或梯度下降等启发式方法处理非凸函数在实际中如此有效,对于理论计算机科学而言是一大挑战 一本关于理论计算机科学和机器学习之间关联的高水平、快节奏的集大成之作—《机器学习算法》 计算机系统能力培养昨天 【导读】近年来,有关机器学习的著作非常多,但是关于理论计算机科学和机器学习之间关联的书却不多见,今天要介绍的这本书《机器学习算法》,就是一本关于理论计算机科学和机器学习之间关联的高水平、快节奏的大作。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸..

studyvcmfc的专栏 453

笔记(总结)-利用GMM和EM算法解决聚类问题

对Gaussian Mixture Model和Expectation Maximization算法一直以来了解不多,一来直接使用这两个方法的场景少,二来初看这两个算法确实有些一头雾水,不太理解为什么要这么做。上学期的课又涉及到了这部分,还是咬牙把这块给啃了下来,结合“周志华西瓜书”,在聚类场景下对这两部分做下总结。 高斯混合(Mixture of Gaussian) nnn维随机变量xx...

ZSY的大后台 2006

联合密度函数求期望_联合密度函数的数学期望怎么求

展开全部数学期望是试验中每e69da5e6ba9062616964757a686964616f31333433623039次可能结果的概率乘以其结果的总和。计算公式:1、离散型:离散型随机变量X的取值为X1、X2、X3……Xn,p(X1)、p(X2)、p(X3)……p(Xn)、为X对应取值的概率,可理解为数据X1、X2、X3……Xn出现的频率高f(Xi),则:2、连续型:设连续性随机变量X的概率密...

weixin_31482671的博客 7684

EM+GMM

最近在研究HMM底层,想法是能够自己手动实现全部底层部件。包括GMM,Baum-Welch和维特比算法等。刚进入GMM就遇到了很多的坑,这里总算走过一遍,自己也实现了一遍,代码放在我的github地址,感兴趣的可以去看。这里我主要介绍EM和GMM的联合使用,主要是训练阶段,并给出实验结果。 在开始之前,我必须要对几个点说清楚。首先,我不会再跟大家讲解EM算法,因为博客上大家都在讲,不过我认为他们...

MOON 1671

高斯混合模型(Gaussian Mixture Model,GMM)和期望最大化(Expectation Maximization,EM)算法

本文是关于 coursera 上 《Robotics: Estimation and Learning》 课程的笔记。 前面讲了一维和多维高斯分布的相关知识。 但是在某些情况下,使用 单高斯模型(Gaussian single model, GSM) 会有一些局限。 在现实世界中我们需要学习的目标可能符合这样的分布 : 如上图所示,当你用单高斯模型去拟合它时,得到这样的曲线。 显然它不能很好地表征目标。这样的目标有多种模式,或者缺乏对称性。 你将看到混合高斯模型的表现力则很好,好到可以建模任意的.

Yemiekai的博客 2260

联合密度函数求期望_一文读懂EM期望最大化算法和一维高斯混合模型GMM

EM最大期望算法是一个数值求解似然函数极大值的迭代算法,就好像梯度下降算法是一种数值求解损失函数极小值的迭代算法一样。EM算法通常适合于随机变量依赖于另外一些不可观测的随机变量(称之为隐含变量或者中间变量)的场景。此时由于似然函数的表示形式较为复杂(含有对隐含变量的累加求和或者积分),难以求导获取似然函数的极大值,也无法方便地应用梯度下降算法进行优化。而EM算法是一个类似梯度下降算法的迭...

weixin_39639096的博客 500

机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)【关系类似“梯度下降法”<=>“直接求导法”】【EM&“梯度下降”:先初始化一个随机值,然后通过迭代不断靠近真实值】

最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。 它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM)等等。 最大期望算法经过两个步骤交替进行计算: 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值; 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一.

u013250861的博客 1070

高斯混合模型(GMM)介绍以及学习笔记

1.高斯混合模型概述 高斯密度函数估计是一种参数化模型。高斯混合模型(Gaussian Mixture Model, GMM)是单一高斯概率密度函数的延伸,GMM能够平滑地近似任意形状的密度分布。高斯混合模型种类有单高斯模型(Single Gaussian Model, SGM)和高斯混合模型(Gaussian Mixture Model, GMM)两类。类似于聚类,根据高斯概率密度函数(Pro

James Zhang's Blog 11万+

期望最大EM(Expectation Maximum)算法是什么?为什么有时候不用梯度下降而是用EM算法

EM(Expectation Maximum)的应用: EM算法有很多的应用,最广泛的就是GMM混合高斯模型、聚类(典型的KMeans算法的过程就属于EM算法)、HMM等等。 EM的核心工作就是隐变量的估计。 EM算法是怎么操作的:   首先,初始化参数θ   (1)E-Step:根据参数θ计算每个样本属于zi的概率,即这个身高来自四川或东北的概率,这个概率就是Q   (2)M-Step:根据计算得到的Q,求出含有θ的似然函数的下界并最大化它,得到新的参数θ   重复(1)和(2)..

data+scenario+science+insight 934

机器学习的优化目标、期望最大化(Expectation-Maximum, EM)算法、期望最大化(EM)和梯度下降对比

机器学习的优化目标、期望最大化(Expectation-Maximum, EM)算法、期望最大化(EM)和梯度下降对比 目录 机器学习的优化目标、期望最大化(Expectation-Maximum, EM)算法、期望最大化(EM)和梯度下降对比 机器学习的优化目标 期望最大化(Expectation-Maximum, EM)算法 期望最大化(EM)和梯度下降对比 机器学习的优化目标 在机器学习中,通常都会将我们所要求解的问题表示为一个带有未知参数的损失函数(Loss),如平均平方误差(M.

data+scenario+science+insight 807

EM (期望最大化) 算法与 GMM (高斯混合模型) 聚类算法公式推导及Python实现

本文介绍了期望最大化(Expectation-Maximization,EM)算法的公式推导,K-Means聚类算法的缺陷及改进策略,K-Means与EM算法的关系,高斯混合模型(Gaussian Mixed Model,GMM)聚类算法的公式推导。

全性保真,不以物累形。 3240

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4731

高斯混合模型GMM与EM算法的Python实现

GMM与EM算法的Python实现 高斯混合模型(GMM)是一种常用的聚类模型,通常我们利用最大期望算法(EM)对高斯混合模型中的参数进行估计。 1. 高斯混合模型(Gaussian Mixture models, GMM) 高斯混合模型(Gaussian Mixture Model,GMM)是一种软聚类模型。 GMM也可以看作是K-means的推广,因为GMM不仅是考虑到了数...

aizhao3648的博客 2732

隐语第四课:快速上手-SecretFlow的安装和部署

隐语课程,继续学习隐私计算技术

weixin_41467180的博客 2509

5分钟搞定Vivado IP核的VCS仿真:从Export脚本到Verdi波形查看全流程

本文详细介绍了如何利用Vivado的Export Simulation功能,快速搭建Vivado IP核的VCS与Verdi联合仿真环境。通过自动化脚本生成、FSDB波形配置及高效调试技巧,实现从工程导出到波形查看的全流程,大幅提升FPGA验证效率,尤其适合IC验证工程师和竞赛团队。

weixin_29306261的博客 481

em算法详细例子及推导_一文读懂EM最大期望算法和一维GMM高斯混合模型

EM最大期望算法是一个数值求解似然函数极大值的迭代算法,就好像梯度下降算法是一种数值求解损失函数极小值的迭代算法一样。EM算法通常适合于随机变量依赖于另外一些不可观测的随机变量(称之为隐含变量或者中间变量)的场景。此时由于似然函数的表示形式较为复杂(含有对隐含变量的累加求和或者积分),难以求导获取似然函数的极大值,也无法方便地应用梯度下降算法进行优化。而EM算法是一个类似梯度下降算法的迭代算法,它...

weixin_39777019的博客 375

2篇5章1节:实验流行病学的核心特征和设计原则

本文系统阐释实验流行病学的核心定义、四大核心特征、四大基本原则及主流设计类型,结合骨科、肿瘤科、儿科、精神科、内外妇儿及公共卫生等多学科临床实践案例,具象化解读人为干预、随机分组、平行对照、前瞻性设计的核心内涵与应用价值。同时,规范梳理对照、随机、盲法、重复四大研究基本原则,详细介绍临床试验、现场试验、社区试验三类主流研究设计的适配场景与应用差异。

MD Code 167

GMM(高斯混合模型)和EM算法

EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等。本文就对EM算法的原理做一个总结。 1.EM算法要解决的问题     我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。     但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分.

追梦水手的博客 538

基于投影法实现扫描文件的光学字符分割——Matlab实现

投影法是指将原图像沿着某个特定的方向进行投影,得到投影线上的像素点的个数或像素值总和,从而可以得到该方向上物体的轮廓信息。对于字符分割,我们可以将图像进行水平和垂直两个方向的投影,从而得到字符之间的分割线。在OCR技术中,字符分割是非常重要的一步骤,因为字符之间的分割对字符识别的准确性有很大的影响。通过对投影值的判断,可以求出字符之间的分割线,这里我们根据垂直方向上的投影值进行判断,选取一个阈值进行筛选即可。使用sum()函数分别计算出水平和垂直方向上的投影值,得到每一行和每一列的投影值。

TechGlide的博客 581

13、HTML 表格创建与样式设置全攻略

本文全面介绍了HTML表格的创建与样式设置方法,涵盖表格行列添加、边框控制、行和列分组(thead、tbody、tfoot、colgroup)、宽度与高度设置、内边距与间距调整,以及表格对齐方式。同时提供了最佳实践建议、常见问题解决方案及综合示例代码,帮助开发者构建结构清晰、样式美观且兼容性强的HTML表格。

blue的专栏 97

高斯混合模型GMM及EM算法的求解

高斯混合模型GMM与EM算法的求解 一、基础知识 1.1 高斯分布与概率密度函数 二、高斯混合模型GMM介绍 2.1 示例 2.2 高斯混合模型 三、EM算法 3.1 EM算法估计参数 3.2 EM算法流程 一、基础知识 1.1 高斯分布与概率密度函数 高斯分布也就是我们所熟知的正态分布,是研究表明,在数学、物理科学和经济学等学科中,大量数据的分布通常是服从高斯分布, 应用范围非常广泛。高斯分布的定义为:假设随机变量XXX服从高斯分布,即: X∼N(μ,σ2)\begin{array}{c} \mathca

weixin_42973814的博客 824

xilinx原语及bank简介

图8是HP bank与HR bank的IO模块,其中PAD是FPGA的金属管脚,IOB是输入、输出引脚的控制模块。此时使用原语就可以只调用需要的组件,不需要去考虑其余组件参数设置,就方便很多,借助此次机会就对IDDR、ODDR、IDELAYE2、ODELAYE2、IDELAYCRTL、ISERDESE、OSERDESE等几个原语做了简要了解,并对原语的各个模式进行了仿真,本文最初是介绍IDDR的,但在介绍IDDR这些原语之前,还需要了解一下7系列FPGA bank的分类和区别,所以就有了本文。

qq_43416206的博客 413

如何理解GMM模型及应用

什么是GMM? GMM全称Gaussian Mixture Model,是一种机器学习算法,是一种聚类模型,它是多个高斯分布函数的线性组合。 GMM解决什么问题? 通常用来解决同一集合下的数据包含多种不同分布的情况。 GMM概率分布模型的形式? GMM的求解参数? (mu,thera,W)为高斯混合模型需要求解的参数。K:为簇的个数,需要人为确定。 GMM求解参数的方法? E...

机器学习,深度学习 1万+

WPF实现圆形菜单动态展开折叠效果

实现效果如下: 思路:根据子菜单个数计算旋转角度动态生成子菜单,并设置展开折叠动画。 步骤: 1、自定义按钮MyButton,建立展示图像属性DisplayImage public class MyButton : Button { public static readonly DependencyProperty DisplayImageProperty = DependencyProperty.Register("DisplayImage", typeof(

dnazhd的博客 3149

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

高斯混合模型(GMM)

1.高斯混合模型是由若干的基于高斯概率密度函数形成的模型2.从几何角度,GMM是多个高斯分布叠加而成的加权平均的结果3.从混合模型角度,每个样本是从某个高斯分布抽样得到的4.直接利用ML...

咔咔响 3948

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 一文读懂矩估计、极大似然估计和贝叶斯估计
下一篇: 60分钟看懂HMM的基本原理
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值