详解EM算法与混合高斯模型(Gaussian mixture model, GMM)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

   最近在看晓川老(shi)师(shu)的博士论文,接触了混合高斯模型(Gaussian mixture model, GMM)和EM(Expectation Maximization)算法,不禁被论文中庞大的数学公式所吓退。本文通过查阅相关资料,在复杂巧妙的推理公式中融入了自己的理解,详细梳理了混合高斯模型和EM算法。

1 单高斯模型(Gaussian single model, GSM)

   简单回顾一下概率论讲过的高斯模型。
  高斯模型是一种常用的变量分布模型,在数理统计领域有着广泛的应用(……好吧读了这么多年书没白费,教科书般的话语已植入骨髓)。一维高斯分布的概率密度函数如下:
(1) f ( x ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x) = \frac{1}{ {\sqrt {2\pi } \sigma }}\exp ( - \frac{ { { {(x - \mu )}^2}}}{ {2{\sigma ^2}}})\tag{1} f(x)=2π σ1exp(2σ2(xμ)2)(1) 
   μ \mu μ σ 2 {\sigma ^2} σ2分别是高斯分布的均值和方差。
  譬如将男生身高视为变量X, 假设男生的身高服从高斯分布,则 X ∼ N ( μ , σ 2 ) X \sim N(\mu ,{\sigma ^2}) XN(μ,σ2),女生亦如此。只是男女生身高分布可能具有不同的均值和方差。图1是从谷歌图库中搜索到的男女生身高分布图,来源不清,个人觉得男生的均值身高虚高……四个记号分别表示0~3 σ \sigma σ准则。
图1 男女生身高分布差异

图1 男女生身高分布差异

   多维变量 X = ( x 1 , x 2 , . . . x n ) X = ({x_1},{x_2},...{x_n}) X=(x1,x2,...xn)的联合概率密度函数为:
(2) f ( X ) = 1 ( 2 π ) d / 2 ∣ Σ ∣ 1 / 2 exp ⁡ [ − 1 2 ( X − u ) T Σ − 1 ( X − u ) ] , X = ( x 1 , x 2 . . . x n ) f(X) = \frac{1}{ { { {(2\pi )}^{d/2}}{ {\left| \Sigma \right|}^{1/2}}}}\exp [ - \frac{1}{2}{(X - u)^T}{\Sigma ^{ - 1}}(X - u)],X = ({x_1},{x_2}...{x_n})\tag{2} f(X)=(2π)d/2Σ1/21exp[21(Xu)TΣ1(Xu)],X=(x1,x2...xn)(2)
  其中:
  d:变量维度。对于二维高斯分布,有d=2;
   u = ( u 1 u 2 . . . u n ) u = \left( \begin{array}{l} {u_1}\\ {u_2}\\ ...\\ {u_n} \end{array} \right) u=u1u2...un:各维变量的均值;
   Σ \Sigma Σ:协方差矩阵,描述各维变量之间的相关度。对于二维高斯分布,有:
(3) Σ = [ δ 11 δ 12 δ 21 δ 22 ] \Sigma= \left[ \begin{matrix} \delta _{11} & \delta _{12}\\ \delta _{21}& \delta _{22} \end{matrix} \right] \tag{3} Σ=[δ11δ21δ12δ22](3)

这里写图片描述
图2 二维高斯数据分布

   图2是二维高斯分布产生的数据示例,参数设定为: u = ( 0 0 ) , Σ = [ 1 0.8 0.8 5 ] u = \left( \begin{array}{l} 0\\ 0 \end{array} \right),\Sigma= \left[ \begin{matrix} 1 & 0.8\\ 0.8&5 \end{matrix} \right] u=(00),Σ=[10.80.85]。关于二维高斯分布的参数设定对为高斯曲面的影响,这篇文章二维高斯分布(Two-dimensional Gaussian distribution)的参数分析有提及,主要是为了下文理解混合高斯分布做铺垫。服从二维高斯分布的数据主要集中在一个椭圆内部,服从三维的数据集中在一个椭球内部。

2 混合高斯模型(Gaussian mixture model, GMM)

2.1 为什么要有混合高斯模型

先来看一组数据。 
     
  

这里写图片描述
图3 混合高斯分布所产生数据

   如果我们假设这组数据是由某个高斯分布产生的,利用极大似然估计(后文还会提及)对这个高斯分布做参数估计,得到一个最佳的高斯分布模型如下。

这里写图片描述
图4 用单高斯模型对样本作分析不合理示意

   有什么问题吗?一般来讲越靠近椭圆的中心样本出现的概率越大,这是由概率密度函数决定的,但是这个高斯分布的椭圆中心的样本量却极少。显然样本服从单高斯分布的假设并不合理。单高斯模型无法产生这样的样本。
  实际上,这是用两个不同的高斯分布模型产生的数据。

这里写图片描述
图5 混合高斯模型对样本作分析示意

   正当单高斯模型抓耳挠腮的时候,混合高斯模型就大摇大摆地进场了。它通过求解两个高斯模型,并通过一定的权重将两个高斯模型融合成一个模型,即最终的混合高斯模型。这个混合高斯模型可以产生这样的样本。
  更一般化的描述为:假设混合高斯模型由K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:
(3) p ( x ) = ∑ k = 1 K p ( k ) p ( x ∣ k ) = ∑ k = 1 K π k N ( x ∣ u k , Σ k ) p(x)=\sum\limits_{k = 1}^K {p(k)p(x|k) = } \sum\limits_{k = 1}^K { {\pi _k}N(x|{u_k},{\Sigma _k})} \tag{3} p(x)=k=1Kp(k)p(xk)=k=1KπkN(xuk,Σk)(3)
  其中, p ( x ∣ k ) = N ( x ∣ u k , Σ k ) p(x|k) = N(x|{u_k},{\Sigma _k}) p(xk)=N(xuk,Σk)是第k个高斯模型的概率密度函数,可以看成选定第k个模型后,该模型产生x的概率; p ( k ) = π k p(k) = {\pi _k} p(k)=πk是第k个高斯模型的权重,称作选择第k个模型的先验概率,且满足 ∑ k = 1 K π k = 1 \sum\limits_{k = 1}^K { {\pi _k}} = 1 k=1Kπk=1
  所以,混合高斯模型并不是什么新奇的东西,它的本质就是融合几个单高斯模型,来使得模型更加复杂,从而产生更复杂的样本。理论上,如果某个混合高斯模型融合的高斯模型个数足够多,它们之间的权重设定得足够合理,这个混合模型可以拟合任意分布的样本。

2.2 直观上理解混合高斯模型

   下面通过几张图片来帮助理解混合高斯模型。
  首先从简单的一维混合高斯模型说起。
 

这里写图片描述
图6 一维混合高斯模型

   在图6中,y1,y2和y3分别表示三个一维高斯模型,他们的参数设定如图所示。y4表示将三个模型的概率密度函数直接相加,注意的是这并不是一个混合高斯模型,因为不满足 ∑ k = 1 K π k = 1 \sum\limits_{k = 1}^K { {\pi _k}} = 1 k=1Kπk=1的条件。而y5和y6分别是由三个相同的高斯模型融合生成的不同混合模型。由此可见,调整权重将极大影响混合模型的概率密度函数曲线。另一方面也可以直观地理解混合高斯模型可以更好地拟合样本的原因:它有更复杂更多变的概率密度函数曲线。理论上,混合高斯模型的概率密度函数曲线可以是任意形状的非线性函数。
  下面再给出一个二维空间3个高斯模型混合的例子。
 

这里写图片描述
(a) 3个类别高斯分布截面轮廓线

这里写图片描述
(b) 混合高斯分布截面轮廓线

这里写图片描述
© 二维混合高斯分布概率密度函数图

图7 二维混合高斯模型

   (a) 图表示的是3个高斯模型的截面轮廓图,3个模型的权重系数已在图中注明,由截面轮廓图可知3个模型之间存在很多重叠区域。其实这也正是混合高斯模型所希望的。因为如果它们之间的重叠区域较少,那么生成的混合高斯模型一般较为简单,难以生成较为复杂的样本。
  设定好了3个高斯模型和它们之间的权重系数之后,就可以确定二维混合高斯分布的概率密度函数曲面,如图©所示。图(b)是对于图©概率密度曲面的截面轮廓线。从图7也可以看出,整个混合高斯分布曲面相对比于单高斯分布曲面已经异常复杂。实际上,通过调整混合高斯分布的系数 ( π , μ , Σ ) (\pi ,\mu ,\Sigma ) (π,μ,Σ),可以使得图©的概率密度曲面去拟合任意的三维曲面,从而采样生成所需要的数据样本。

3 极大似然估计(Maximum Likehood Estimate, MLE)(最大化对数似然函数)

● 最大化对数似然函数(log-likelihood function)的意义

   首先直观化地解释一下最大化对数似然函数要解决的是什么问题。
  假设我们采样得到一组样本 y t {y_t} yt,而且我们知道变量Y服从高斯分布(本文只提及高斯分布,其他变量分布模型类似),数学形式表示为 Y ∼ N ( μ , Σ ) Y \sim N(\mu ,\Sigma ) YN(μ,Σ)。采样的样本如图8所示,我们的目的就是找到一个合适的高斯分布(也就是确定高斯分布的参数 μ , Σ \mu ,\Sigma μ,Σ),使得这个高斯分布能产生这组样本的可能性尽可能大。
 

这里写图片描述
图8 最大化似然函数的意义

   那怎么找到这个合适的高斯分布呢(在图8中的表示就是1~4哪个分布较为合适)?这时候似然函数就闪亮登场了。
  似然函数数学化:设有样本集 Y = y 1 , y 2 . . . y N Y = {y_1},{y_2}...{y_N} Y=y1,y2...yN p ( y n ∣ μ , Σ ) p({y_n}|\mu ,\Sigma ) p(ynμ,Σ)是高斯分布的概率分布函数,表示变量 Y = y n Y = {y_n} Y=yn的概率。假设样本的抽样是独立的,那么我们同时抽到这N个样本的概率是抽到每个样本概率的乘积,也就是样本集Y的联合概率。此联合概率即为似然函数:
(4) L ( μ , Σ ) = L ( y 1 , y 2 . . . y N ; μ , Σ ) = ∏ n = 1 N p ( y n ; μ , Σ ) L(\mu ,\Sigma ) = L({y_1},{y_2}...{y_N};\mu ,\Sigma ) = \prod\limits_{n = 1}^N {p({y_n};\mu ,\Sigma )}\tag{4} L(μ,Σ)=L(y1,y2...yN;μ,Σ)=n=1Np(yn;μ,Σ)(4)
  对式子(4)进行求导并令导数为0(即最大化似然函数,一般还会先转化为对数似然函数再最大化),所求出的参数就是最佳的高斯分布对应的参数。
  所以最大化似然函数的意义就是:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。
  对于图8产生的样本用最大化似然函数的方法,最终可以得到序号1对应的高斯分布模型是最佳的模型。

4 EM算法(最大化Q函数)

4.1 为什么要有EM算法(EM算法与极大似然估计分别适用于什么问题)

● 尝试用极大似然估计的方法来解GMM模型

   解GMM模型,实际上就是确定GMM模型的参数 ( μ , Σ , π ) (\mu ,\Sigma ,\pi ) (μ,Σ,π),使得由这组参数确定的GMM模型最有可能产生采样的样本。
  先试试看用极大似然估计的方法来解GMM模型会出现什么样的问题。
  如第3小节所述,要利用极大似然估计求解模型最重要的一步就是求出似然函数,即样本集出现的联合概率。而对于混合高斯模型,如何求解某个样本 y t {y_t} yt的概率?显然我们得先知道这个样本来源于哪一类高斯模型,然后求这个高斯模型生成这个样本的概率 p ( y t ) p({y_t}) p(yt)
  但是问题来了:我们只有样本。不知道样本到底来源于哪一类的高斯模型。那么如何求解样本的生成概率 p ( y t ) p({y_t}) p(yt)
  先引入一个隐变量 γ \gamma γ。它是一个K维二值随机变量,在它的K维取值中只有某个特定的元素 γ k {\gamma _k} γk的取值为1,其它元素的取值为0。实际上,隐变量描述的就是:每一次采样,选择第k个高斯模型的概率,故有:
(5) p ( γ k = 1 ) = π k p({\gamma _k} = 1) = {\pi _k}\tag{5} p(γk=1)=πk(5)
  当给定了 γ \gamma γ的一个特定的值之后(也就是知道了这个样本从哪一个高斯模型进行采样),可以得到样本y的条件分布是一个高斯分布,满足:
(6) p ( y ∣ γ k = 1 ) = N ( y ∣ μ k , Σ k ) p(y|{\gamma _k} = 1) = N(y|{\mu _k},{\Sigma _k})\tag{6} p(yγk=1)=N(yμk,Σk)(6)
  而实际上,每个样本到底是从这K个高斯模型中哪个模型进行采样的,是都有可能的。故样本y的概率为:
(7) p ( y ) = ∑ γ p ( γ ) p ( y ∣ γ ) = ∑ k = 1 K π k N ( y ∣ μ k , Σ k ) p(y) = \sum\nolimits_\gamma {p(\gamma )} p(y|\gamma ){\rm{ = }}\sum\limits_{ {\rm{k}} = 1}^K { {\pi _k}N(y|{\mu _k},{\Sigma _k})} \tag{7} p(y)=

高斯混合模型 Gaussian Mixture Model | GMM 本文主要简单介绍了高斯混合模型的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。 阅读详情

相关推荐

机器学习算法(二十九):高斯混合模型(Gaussian Mixed ModelGMM

目录 1 混合模型(Mixture Model) 2 高斯模型 2.1 单高斯模型 2.2高斯混合模型 3模型参数学习 3.1单高斯模型 3.2高斯混合模型 4高斯混合模型K均值算法对比 1 混合模型(Mixture Model) 混合模型是一个可以用来表示在总体分布(distribution)中含有 K 个子分布的概率模型,换句话说,混合模型表示了观测数据在总体中的概率分布,它是一个由 K 个子分布组成的混合分布。混合模型不要求观测数据提供关于子分布的...

weixin_39910711的博客 2万+

机器学习笔记 - 什么是高斯混合模型(GMM)

高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。高斯混合模型可用于许多不同的领域,包括金融、营销等等!这里要对高斯混合模型进行介绍以及真实世界的示例、它们的作用以及何时应该使用GMM。 高斯混合模型 (GMM) 是一个概率概念,用于对真实世界的数据集进行建模。GMM是高斯分布的泛化,可用于表示可聚类为多个高斯分布的任何数据集。 高斯混合模型是一种概率模型,它假设所有数据点都是从具有未知参数的...

学以致用 知行合一 5万+

EM算法GMM的训练应用

注:本文主要参考Andrew Ng的Lecture notes 8,并结合自己的理解和扩展完成。本文有的数学推导过程并不是那么的严密,主要原因是本文的目的在于理解原理,若数学推导过于严密则文章会过于冗长。GMM简介GMM(Gaussian mixture model) 混合高斯模型在机器学习、计算机视觉等领域有着广泛的应用。其典型的应用有概率密度估计、背景建模、聚类等。图1 GMM用于聚类图2 GM

he___的专栏 5614

GMM(Gaussian mixture model, 高斯混合模型)

GMM全称是Gaussian mixture model (高斯混合模型)k-means算法类似,GMM也是一种常见的聚类算法,它k-means区别主要在于,GMM是一种“软聚类”算法,通过它我们可以得到每个样本属于每个中心点的概率。正是因为它的这种性质,GMM在图像分割和语音处理中都有着广泛的应用。 对N个样本数据执行k-means可以得到K个中心点,而对其执行GMM之后将会得到K个高斯

GarfieldEr007的专栏 1万+

GMM简单解释

1.GMM(guassian mixture model)   混合高斯模型,顾名思义,就是用多个带有权重的高斯密度函数来描述数据的分布情况。理论上来说,高斯分量越多,极值点越多,混合高斯密度函数可以逼近任意概率密度函数,刻画模型越精确,需要的训练数据也就越多。 2.GMM 模型初始化:   即模型参数的初始化,一般采用kmeans或者LBG算法。 模型初始化值对模型后期的收敛...

aig8440的博客 1065

【转】详解EM算法混合高斯模型(Gaussian mixture model, GMM)

【转】详解EM算法混合高斯模型(Gaussian mixture model, GMM) 转载自:https://blog.csdn.net/lin_limin/article/details/81048411 作者:林立民爱洗澡 觉得有用的话,欢迎一起讨论相互学习~

泛用演化计算、通用人工智能优化模型 398

(转载)详解EM算法混合高斯模型(Gaussian mixture model, GMM)

https://blog.csdn.net/lin_limin/article/details/81048411 最近在看传播模型的论文,涉及到了GMMEM的知识

travalscx的博客 532

聚类(1)——混合高斯模型 Gaussian Mixture Model

聚类系列: 聚类()----监督学习无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchical Clustering 聚类(3)----谱聚类 Spectral Clustering --------------------------------         聚

blog 6万+

Gaussian Mixture Model混合高斯模型介绍

最近看一些计算机视觉和图形学类的文章,经常发现一个被称为Gaussian mixture model(GMM)的技术,应用在图像图形处理的算法中。出于好奇,我最近阅读了GMM的文献[1]。基于该文献,我将在这篇博客介绍一下GMM的一些核心思想以及比较成功的应用。 1. 简介 GMM是一个参数概率密度函数,由加权的分块高斯密度和表示。GMM通常被用来表示一个概率密度分布的参数模型,以提供一个特征度量。GMM的参数由训练数据获得,通过迭代计算Expectation-Maximization(EM,最大期望)

3927

混合高斯模型Gaussian Mixture Model,GMM

高斯混合聚类和k 均值算法(k-means)都属于原型聚类,但k均值用原型向量来刻画聚类结构不同,高斯混合聚类采用概率模型来表达聚类原型。 一、混合模型(Mixture Model) 混合模型是一个可以用来表示在总体分布(distribution)中含有 K 个子分布的概率模型。换句话说,混合模型表示了观测数据在总体中的概率分布,它是一个由 K 个子分布组成的混合分布。混合模型不要求观测数据提供...

Wisimer 2648

混合高斯模型(Gaussian Mixture Model)及其参数计算方法

对于多峰数据的处理,可以使用混合模型进行建模。其中,Gaussian Distribution拥有优秀的数学和计算性质,因此广泛应用于各个领域。

m0_46496488的博客 8180

混合高斯模型Gaussian Mixture Model, GMM)介绍-ChatGPT4o作答

混合高斯模型Gaussian Mixture Model, GMM)是一种概率模型,用于表示具有子群结构的数据。GMM 假设数据是从多个高斯分布中混合生成的,每个高斯分布对应一个子群。混合高斯模型是一种灵活的概率模型,适合处理复杂数据分布。通过 EM 算法对参数进行估计GMM 在聚类、密度估计等任务中表现出色。计算隐藏变量 ( z_i )(数据点 ( x_i ) 属于第 ( k ) 个高斯分布的概率),称为。直接最大化对数似然函数较困难,因为涉及求和符号内的参数优化。(期望最大化算法)。

qq_46215223的博客 1326

MachineLearning—Gaussian Mixture ModelGMM)和EM最大期望算法

高斯混合模型,如下图是一个观测数据集,数据集明显分为两个聚集核心,我们通过两个单一的高斯模型混合成一个复杂模型来拟合数据。这就是一个混合高斯模型。如下为标准正态分布:多维高斯分布模型下概率密度函数如下:公式中,x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个样x本是否属于类别C。因为每个类别都有自己的u和Σ,把x代...

令狐公子的博客 1414

GMM混合高斯模型理论基础(基于EM算法

我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign 到其

木东的博客 2480

2-2 混合高斯模型Gaussian Mixture Model

2-2 混合高斯模型Gaussian Mixture ModelGMM模型介绍训练GMM模型引入隐含变量tEM方法训练GMM模型 GMM模型介绍 GMM可以描述为: 训练目标: 并且满足: 在限制条件下,不适合采用随机梯度下降Stochastic Gradient Descent,很难保证Σ_k≻0恒大于0。下面采用期望最大化方法Expectation Maximization。 训练GMM模型 引入隐含变量t 在这里我们引入隐含变量t,如下图。根据该模型可得, EM方法训练GMM模型 1)如何估

meganyj的博客 472

聚类——混合高斯模型 Gaussian Mixture Model

转自: http://blog.csdn.net/jwh_bupt/article/details/7663885聚类系列: 聚类()----监督学习无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchical Clustering 聚类(3)----谱聚...

adn34322的博客 140

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

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

Yemiekai的博客 2250

Gaussian Mixture Model

 课题组在Doc.Liu的带领下开了一个学习讨论班,每人分配一个题目,现学现讲,我那天一定是吃多了东西脑壳壳不管事,明明大概搜了一下找不到GMM的资料,还是选了这个题。唉,每天晚上硬着头皮搜啊搜,总算是搜了一些东东出来。1.台湾一人(可能是张智星)的混合高斯模型基础的pfd文档:http://neural.cs.nthu.edu.tw/jang/books/dcpr/doc/08gmm.p

一万年太久 8076
上一篇: 二维高斯分布(Two-dimensional Gaussian distribution)的参数分析
下一篇: 常见的凸优化方法
林立民爱洗澡
博客等级 码龄9年 277粉丝 6原创
评论 107
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值