导航:首页 > 源码编译 > Gmm使用em算法

Gmm使用em算法

发布时间:2022-09-10 02:36:05

Ⅰ 采用 em 算法求解的模型有哪些

1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算 法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法) 2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要 处理,而处理数。

Ⅱ EM算法怎么用在聚类上

k-means -> probabilistic model mixtures -> infinite probabilistic model mixtures(DP) 或者 infinite k-means

  1. EM为含隐变量的概率模型提供了一个通用的框架。

  2. 而用于聚类的模型其实都是离散混合模型。有限混合或者无限混合(狄利克雷过程),离散混合模型一定是含有隐变量的。所以EM就可以用来求解了。你先选一个聚类模型。你的任务简单,就没得选GMM或者DPGMM。若任务复杂些,可以搞分层的,或者时序的。然后用EM求解即可,求解过程中还会用到采样或者变分,自己看想用哪个。


Ⅲ GMM模型是什么

就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。GMMs已经在数值逼近、语音识别、图像分类、图像去噪、图像重构、故障诊断、视频分析、邮件过滤、密度估计、目标识别与跟踪等领域取得了良好的效果。

对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状。

主要步骤

1、为图像的每个像素点指定一个初始的均值、标准差以及权重。

2、收集N(一般取200以上,否则很难得到像样的结果)帧图像利用在线EM算法得到每个像素点的均值、标准差以及权重)。

3、从N+1帧开始检测,检测的方法:

对每个像素点:

1)将所有的高斯核按照ω/σ降序排序

2)选择满足公式的前M个高斯核:M= arg min(ω/σ>T)

3)如果当前像素点的像素值在中有一个满足:就可以认为其为背景点。

Ⅳ 中心极限定理和高斯分布

中心极限定理:
1.在独立同分布的情况下,无论随机变量的分布函数为何,当数据量充分大的时候,它们的平均值总是近似地服从正态分布。
2.自然界与生产中,一些现象受到许多相互独立的随机因素的影响,如果每个因素所产生的影响都很微小时,总的影响可以看作是服从正态分布的。比如LSTM的输出分布是不确定的,但它受到多种不明因素的影响,这时候根据中心极限定理假设它服从高斯分布是一种自然而然的假设。我们或许可以假设LSTM输出分布服从更加复杂的分布比如GMM混合高斯分布、GGD广义高斯分布,因为它们具备更好的建模能力。但它们计算相当复杂,而且不能保证计算的可靠性。

3.GMM
3.1什么是GMM?
多个高斯分布的加权求和叫GMM。
3.2求解困难在哪里?

多个p(x)相乘,如果用极大似然估计取log等式右边无法计算。
3.3怎么解决? EM算法(Expectation-Maximum)
我们没法知道每个样本X是来自哪个分量,但是可以知道这个样本处于每个分量的概率是多少
E-step最大化样本的期望
M-step寻找使Q函数最大的参数值
重复计算 E-step 和 M-step 直至收敛

Ⅳ em算法是什么

最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法 ,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。
EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值 。EM算法是MM算法(Minorize-Maximization algorithm)的特例之一,有多个改进版本,包括使用了贝叶斯推断的EM算法、EM梯度算法、广义EM算法等 。
由于迭代规则容易实现并可以灵活考虑隐变量,EM算法被广泛应用于处理数据的缺测值 ,以及很多机器学习(machine learning)算法,包括高斯混合模型(Gaussian Mixture Model, GMM) 和隐马尔可夫模型(Hidden Markov Model, HMM) 的参数估计。

Ⅵ EM算法及其应用GMM/pLSA/LDA

从样本观察数据(显性特征x)中,找出样本的模型参数( )。 最常用的方法就是极大化模型分布的对数似然函数。

是样本特征和label的联合分布, ,为了使得估计的结果泛化能力更好,我们将 分解为 , 就是隐变量。

这类问题有:

以上问题,主要是通过引入隐变量,把样本表述为隐变量的分布,从而简化每个样本点表述。对于此问题通用的数学描述为:

给定一个样本集 ,我们假设观察到的 还对应着隐含变量的概率分布 ,记 。则该模型 的对数似然函数为:

而 根据具体的问题来定义。

目标是求得参数 ,使得对数似然函数最大:

这时候,交叉熵为:

优化目标为:

它的梯度是

都是概率分布,即大于0且满足:

直接梯度下降是行不通的,这就需要借助EM算法。

对于最大似然函数的参数求解:

是隐变量,观测不到,为了求解上式,假设我们知道 的概率分布 :


根据 Jensen 不等式 [1],对于任意分布 都有:


且上面的不等式在 为常数时取等号。

(备注:关键的点就是Jensen不等式在x为常数时取等号(x的所有值重叠,等于1个值)。这里正好对应隐变量的分布的确定,即E步求解的隐变量的分布)

于是我们就得到了 的一个下界函数。我们要想套用上面的算法,还要让这个不等式在 处取等号,这就这要求在 时 为常数,即 。由于 是一个概率分布,必须满足 ,所以这样的 只能是 。那我们就把 代入上式,得到:


最大化这个下界函数:


其中倒数第二步是因为 这一项与 无关,所以就直接扔掉了。这样就得到了本文第二节 EM 算法中的形式——它就是这么来的。

以上就是 EM 了。至于独立同分布的情况推导也类似。

[1]
Jensen 不等式:

对于凸函数 ,其函数的期望大于等于期望的函数

若 是严格凸的,则上式取等号当前仅当 为常数。

在这里 函数是严格 的,所以要把上面的不等号方向

假设某个数据分布是由K个高斯分布加权叠加而来:

目标是,求出这K个高斯分布及其权重。

换一种说法,也就是,用K个高斯分布的加权和来拟合数据分布

相比于K-means,只是把原本样本一定属于某一类改成了一个样本属于某类的概率。K-means的结果是把每个数据点assign到其中某一个cluster,而GMM则是给出每个数据点被assign到每一个cluster的概率,又称作soft assignment。

pLSA 模型有两个 基本的设定:

即:

而我们感兴趣的正是其中的 和 ,即文章的主题分布,和主题的词分布。记 , 表示我们希望估计的模型参数(模型中共有 个参数)。

根据最大log似然估计法,我们要求的就是

这里由于 这一项与 无关,在 中可以被直接扔掉。 [1]

因此


这里出现了 套 的形式,导致很难直接拿它做最大似然。但假如能观察到 ,问题就很简单了。于是我们想到根据 EM 算法 ,可以用下式迭代逼近 :


其中


在 E-step 中,我们需要求出 中除 外的其它未知量,也就是说对于每组 我们都需要求出 。 根据贝叶斯定理贝叶斯定理,我们知道:


而 和 就是上轮迭代求出的 。这样就完成了 E-step。

接下来 M-step 就是要求 了。利用基本的微积分工具 [2],可以分别对每对 和 求出:


以上就是 pLSA 算法了。

EM求解方法:

E-step:

M-step:

在pLSA中用极大似然估计的思想去推断参数(文档的主题分布和主题的词分布),而LDA把这两参数视为概率分布,其先验信息为dirichlet分布。因此,在数据量不大的时候,LDA能缓解过拟合问题,而在数据量很大的时候,pLSA是比较好的选择。

LDA中,估计Φ、Θ这两未知参数可以用变分(Variational inference)-EM算法,也可以用gibbs采样,前者的思想是最大后验估计MAP,后者的思想是贝叶斯估计。

https://spaces.ac.cn/archives/4277

EM算法原理总结

Probabilistic latent semantic analysis (pLSA)

A Note on EM Algorithm and PLSA --- Xinyan Lu

李航-统计机器学习第一版

高斯混合模型

github
推荐我的开源项目 exFM c++ deepFM

Ⅶ EM Algorithm

EM算法和之前学的都不太一样,EM算法更多的是一种思想,所以后面用几个例子讲解,同时也会重点讲解GMM高斯混合模型。

极大似然估计这里面用的比较多。假设我们想要知道我们学生身高的分布,首先先假设这些学生都是符合高斯分布 我们要做的就是要估计这两个参数到底是多少。学生这么多,挨个挨个来肯定是不切实际的,所以自然就是抽样了。
为了统计学生身高,我们抽样200个人组成样本
我们需要估计的参数 首先估计一下抽到这两百人的概率一共是多少,抽到男生A的概率 抽到学生B的概率 所以同时抽到这两个学生的概率就是 那么同时抽到这200个学生的G概率
最后再取一个对数就好了:

似然函数的执行步骤:
1.得到似然函数
2.取对数整理
3.求导数,另导数为零
4.解方程得到解

首先引出凸函数的概念 那么就是凸函数,所以它的图像就是一个勾形的,看起来是一个凹函数,实际上是凸函数。

正常来看先是要引入一个最大似然函数: 但这样其实是和难求的,P(x|θ)完全混在了一起,根本求不出来,所以我们要引入一个辅助变量z。

所以我们引入隐变量的原因是为了转化成和这几个高斯模型相关的式子,否则无从下手。化简一下上式子: 既然z可以指定x,那么我们只需要求解出z就好了。
注意上面凸函数所提到的一个期望性质,这里就可以使用了。因为虽然优化了上面的式子,还是不能求出来,因为z变量实在是太抽象了,找不到一个合适的公式来表示它。EM的一个方法就是用优化下界函数的方法来达到优化目标函数的目的。
既然z很抽象,那么我们就需要一个转变一下。对于每一个样例x都会对应一个z,那么假设一个分布Q(z)是满足了z的分布的,而Q(z)满足的条件是 Qi意味着每一个x对应的z都会对应着一个Q了,这里有点复杂,再详细解释一下。一个x对应一组z,z是一个向量,但是每一个z又会分别对应一个一个分布Q。以为最后得到的z不会是一个数字,而是一个概率,也就是说Q(z)得到的是这个x样例属于这个类别的概率是多少。而z的数量,一个是当前有多少个分布混合在一起的数量。
再梳理一下:现在的样本是xi,那么每一个xi将会对应着一组的z,每一个xi同时也会对应着一个分布Qi,z其实就是反应了这个样本是来自于哪个分布的。比如这个x是A1分布做了3,A2分布做了5,那么z可能就是={3,5}。所以Qi(z)得到的是这个x属于这些个分布的概率,也就是说这些分布对x做了多少百分比的功,自然就是要等于1了。
还要注意的是,上面的 这个并不能得到Qi(z)就是分布对x做了多少功的结论,得到这个结论是后面下界函数与目标函数相等得到的。这里只是知道了总和等于1,因为是分布的总和嘛。
现在就到了公式的化简:
仔细看一下这个式子 这个式子其实就是求 的期望,假设 ,那么可以利用上面 。于是化简:
这个时候就得到了下界函数,上面也讲过了,想要相等,自然就是x要是常数,所以 既然 ,而且z也是一样的,因为一个样本嘛。所以上下加和(如果是离散的,那就sum一下,连续的那就积分,这里是离散的,所以就是sum一下)。于是有
于是有:

这就是整一个EM算法的框架了,可以看到其实没有比较具体的算法,大致上就是一个框架。那么问题来了,怎么样证明这东西是一个收敛的??

可以直接把高斯混合模型代入EM框架里面。
存在多个高斯分布混合生成了一堆数据X,取各个高斯分布的概率是 ,第i个高斯分布的均值是 ,方差是 ,求法φ,μ,σ。
按照套路,第一个E-step求出Q,于是有:
意思就是求出第i个样本属于第j个分布的概率是多少。之后就是M-step了,就是化简了:

这里可能需要解释一下,根据 至于条件,因为很明显,z是隐变量,只是指明了x是属于哪个类别,和μ,Σ没有什么关系,所以直接忽略那两个参数了,所以P(z)是没有那两个参数的,z是代表了分布,所以每一个分布的概率肯定是包括了,所以就只有一个概率的参数。P(x|z)是本身的概率,就是已经知道分布是那个了,求属于这个分布的概率是多少,既然已经选定了分布那么自然就不需要再看φ了,因为φ是各个分布的概率。

现在有两个硬币AB,进行5次试验每一次投10次,并不知道是哪个硬币投的,求两种硬币的正面的概率。
首先E-step:
首先先初始化一下,
第一个试验选中A的概率:
同样求得
计算机出每一个试验的概率然后相加求均值。
之后就是M-step了:

方差的求解就不玩了,主要就是迭代求解μ和φ的值了。
首先是生成数据,4个高斯分布,每一个高斯分布的sigma都是一样的,不一样的只有μ和α,也就是φ,习惯上把前面的一个参数叫做权值,所以用α来表示。

这四个模型的比例分别是1:2:3:4,使用EM来找到他们属于的类别。

其实如果用kmeans聚类的话更加快速,但是这里还是用EM。
E-step:

就是按照公式来求解w即可,求解每一个分布对样本点做了多少的功,之后求单个样本点求比例。
M-step:

直接按照公式优化即可。

运行函数。看看结果:

结果其实还是相差不大。达到预期。

上面所讲的其实只是一种理解方法,在李航老师的统计学习方法里面是另一种比较厉害的解法:
1.E-step:求出Q函数。
2.M-step:利用Q函数求极大值。

其实这两种方法是完全一样的,Q函数就是下界函数,

EM和Kmeans算法其实很类似,事实上步骤基本可以用EM框架来替换,但是Kmeans算法是硬分类,说一不二,但是EM算法不太一样,是软分类,百分之几是那个,百分之几是这个。

缺点也还是有的:初值敏感,局部最优。因为存在了隐变量,所以导致了直接对x做极大似然是不可行的,log已经在sum的外面了。所以EM算法就转向了下界函数,而这种方法本来就不保证找到局部最优解。

如果将样本看作观察值,潜在类别看作是隐藏变量,那么聚类问题也就是参数估计问题。如果一个目标函数存在多个变量,那么梯度下降牛顿法这些逼近方法就用不了了。但我们可以使用坐标上升方法,固定一个变量,对另外一个求导数,然后替换最后逐步逼近极值点。对应到EM算法也是一样,E步求隐含的z变量,Mstep求解其他参数。

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

学号:20021110074     电院    姓名:梁雪玲

【嵌牛导读】:GMM与EM算法的学习与推导。

【嵌牛鼻子】:GMM    EM  

【嵌牛提问】:GMM是什么?EM算法是什么?二者之间的关系?算法的推导?如何深入学习?

【嵌牛正文】:

在深度学习的路上,从头开始了解一下各项技术。本人是DL小白,连续记录我自己看的一些东西,大家可以互相交流。

本文参考:

http://www.ituring.com.cn/article/497545(GMM)

https://blog.csdn.net/xmu_jupiter/article/details/50889023(GMM)

http://www.cnblogs.com/wjy-lulu/p/7010258.html(EM算法)

https://blog.csdn.net/zouxy09/article/details/8537620(EM算法)

一、前言

    高斯混合模型(Gaussian Mixture Model)简称GMM,是一种业界广泛使用的聚类算法。它是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多种不同的分布的情况。高斯混合模型使用了期望最大(Expectation Maximization, 简称EM)算法进行训练,故此我们在了解GMM之后,也需要了解如何通过EM算法训练(求解)GMM。

二、高斯混合模型(GMM)

    在了解高斯混合模型之前,我们先了解一下这种模型的具体参数模型-高斯分布。高斯分布又称正态分布,是一种在自然界中大量存在的,最为常见的分布形式。

    如上图,这是一个关于身高的生态分布曲线,关于175-180对称,中间高两边低,相信大家在高中已经很了解了,这里就不再阐述。

    现在,我们引用《统计学习方法》-李航 书中的定义,如下图:

    根据定义,我们可以理解为,GMM是多个高斯分布的加权和,并且权重α之和等于1。这里不难理解,因为GMM最终反映出的是一个概率,而整个模型的概率之和为1,所以权重之和即为1。高斯混合模型实则不难理解,接下来我们介绍GMM的训练(求解)方法。

PS.从数学角度看,对于一个概率模型的求解,即为求其最大值。从深度学习角度看,我们希望降低这个概率模型的损失函数,也就是希望训练模型,获得最大值。训练和求解是不同专业,但相同目标的术语。

三、最大似然估计

     想要了解EM算法,我们首先需要了解最大似然估计这个概念。我们通过一个简单的例子来解释一下。

    假设,我们需要调查学校男女生的身高分布。我们用抽样的思想,在校园里随机抽取了100男生和100女生,共计200个人(身高样本数据)。我们假设整个学校的身高分布服从于高斯分布。但是这个高斯分布的均值u和方差∂2我们不知道,这两个参数就是我们需要估计的值。记作θ=[u, ∂]T。

    由于每个样本都是独立地从p(x|θ)中抽取的,并且所有的样本都服从于同一个高斯分布p(x|θ)。那么我们从整个学校中,那么我抽到男生A(的身高)的概率是p(xA|θ),抽到男生B的概率是p(xB|θ)。而恰好抽取出这100个男生的概率,就是每个男生的概率乘积。用下式表示:

    这个概率反映了,在概率密度函数的参数是θ时,得到X这组样本的概率。在公式中,x已知,而θ是未知,所以它是θ的函数。这个函数放映的是在不同的参数θ取值下,取得当前这个样本集的可能性,因此称为参数θ相对于样本集X的似然函数(likehood function)。记为L(θ)。

    我们先穿插一个小例子,来阐述似然的概念。

某位同学与一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声到下,如果要你推测,这一发命中的子弹是谁打的?你就会想,只发一枪便打中,由于猎人命中的概率一般大于这位同学命中的概率,看来这一枪是猎人射中的。

      这个例子所作的推断就体现了极大似然法的基本思想,我们并不知道具体是谁打的兔子,但是我们可以估计到一个看似正确的参数。回到男生身高的例子中。在整个学校中我们一次抽到这100个男生(样本),而不是其他的人,那么我们可以认为这100个男生(样本)出现的概率最大,用上面的似然函数L(θ)来表示。

    所以,我们就只需要找到一个参数θ,其对应的似然函数L(θ)最大,也就是说抽到这100个男生(的身高)概率最大。这个叫做θ的最大似然估计量,记为:

因为L(θ)是一个连乘函数,我们为了便于分析,可以定义对数似然函数,运用对数的运算规则,把连乘转变为连加:

PS.这种数学方法在MFCC中我们曾经用过,可以回溯一下上一篇文章。

    此时,我们要求θ,只需要使θ的似然函数L(θ)极大化,然后极大值对应的θ就是我们的估计。在数学中求一个函数的最值问题,即为求导,使导数为0,解方程式即可(前提是函数L(θ)连续可微)。在深度学习中,θ是包含多个参数的向量,运用高等数学中的求偏导,固定其中一个变量的思想,即可求出极致点,解方程。

总结而言:

    最大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

    求最大似然函数估计值的一般步骤:

(1)写出似然函数;

(2)对似然函数取对数,并整理;(化乘为加)

(3)求导数,令导数为0,得到似然方程;

(4)解似然方程,得到的参数即为所求。

四、EM算法

    期望最大(Expectation Maximization, 简称EM)算法,称为机器学习十大算法之一。它是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。

    现在,我们重新回到男女生身高分布的例子。我们通过抽取100个男生身高,并假设身高分布服从于高斯分布,我们通过最大化其似然函数,可以求的高斯分布的参数θ=[u, ∂]T了,对女生同理。但是,假如这200人,我们只能统计到其身高数据,但是没有男女信息(其实就是面对200个样本,抽取得到的每个样本都不知道是从哪个分布抽取的,这对于深度学习的样本分类很常见)。这个时候,我们需要对样本进行两个东西的猜测或者估计了。

      EM算法就可以解决这个问题。假设我们想估计知道A和B两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

    在男女生身高分布的例子中,我们运用EM算法的思想。首先随便猜一下男生的高斯分布参数:均值和方差。假设均值是1.7米,方差是0.1米,然后计算出每个人更可能属于第一个还是第二个正态分布中。这是第一步,Expectation。在分开了两类之后,我们可以通过之前用的最大似然,通过这两部分,重新估算第一个和第二个分布的高斯分布参数:均值和方差。这是第二步,Maximization。然后更新这两个分布的参数。这是可以根据更新的分布,重新调整E(Expectation)步骤...如此往复,迭代到参数基本不再发生变化。

    这里原作者提到了一个数学思维,很受启发,转给大家看一眼(比较鸡汤和啰嗦,大家可以跳过)

这时候你就不服了,说你老迭代迭代的,你咋知道新的参数的估计就比原来的好啊?为什么这种方法行得通呢?有没有失效的时候呢?什么时候失效呢?用到这个方法需要注意什么问题呢?呵呵,一下子抛出那么多问题,搞得我适应不过来了,不过这证明了你有很好的搞研究的潜质啊。呵呵,其实这些问题就是数学家需要解决的问题。在数学上是可以稳当的证明的或者得出结论的。那咱们用数学来把上面的问题重新描述下。(在这里可以知道,不管多么复杂或者简单的物理世界的思想,都需要通过数学工具进行建模抽象才得以使用并发挥其强大的作用,而且,这里面蕴含的数学往往能带给你更多想象不到的东西,这就是数学的精妙所在啊)

五、EM算法的简单理解方式

    在提出EM算法的推导过程之前,先提出中形象的理解方式,便于大家理解整个EM算法,如果只是实现深度学习模型,个人认为可以不需要去看后面的算法推导,看这个就足够了。

    坐标上升法(Coordinate ascent):

    图中的直线式迭代优化的途径,可以看到每一步都会向最优值靠近,而每一步前进的路线都平行于坐标轴。那么我们可以将其理解为两个未知数的方程求解。俩个未知数求解的方式,其实是固定其中一个未知数,求另一个未知数的偏导数,之后再反过来固定后者,求前者的偏导数。EM算法的思想,其实也是如此。使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。对应到EM上,E步:固定θ,优化Q;M步:固定Q,优化θ;交替将极值推向最大。 

六、EM算法推导

    现在很多深度学习框架可以简单调用EM算法,实际上这一段大家可以不用看,直接跳过看最后的总结即可。但是如果你希望了解一些内部的逻辑,可以看一下这一段推导过程。

    假设我们有一个样本集{x(1),…,x(m)},包含m个独立的样本(右上角为样本序号)。但每个样本i对应的类别z(i)是未知的(相当于聚类),也即隐含变量。故我们需要估计概率模型p(x,z)的参数θ(在文中可理解为高斯分布),但是由于里面包含隐含变量z,所以很难用最大似然求解,但如果z知道了,那我们就很容易求解了。

首先放出似然函数公式,我们接下来对公式进行化简:

    对于参数估计,我们本质上的思路是想获得一个使似然函数最大化的参数θ,现在多出一个未知变量z,公式(1)。那么我们的目标就转变为:找到适合的θ和z让L(θ)最大。

    对于多个未知数的方程分别对未知的θ和z分别求偏导,再设偏导为0,即可解方程。

    因为(1)式是和的对数,当我们在求导的时候,形式会很复杂。

    这里我们需要做一个数学转化。我们对和的部分,乘以一个相等的函数,得到(2)式,利用Jensen不等式的性质,将(2)式转化为(3)式。(Jensen不等式数学推到比较复杂,知道结果即可)

Note:

Jensen不等式表述如下:

如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X])

特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。参考链接: https://blog.csdn.net/zouxy09/article/details/8537620

    至此,上面的式(2)和式(3)不等式可以写成:似然函数L(θ)>=J(z,Q),那么我们可以通过不断的最大化这个下界J(z,Q)函数,来使得L(θ)不断提高,最终达到它的最大值。

    现在,我们推导出了在固定参数θ后,使下界拉升的Q(z)的计算公式就是后验概率,解决了Q(z)如何选择的问题。这一步就是E步,建立L(θ)的下界。接下来的M步,就是在给定Q(z)后,调整θ,去极大化L(θ)的下界J(在固定Q(z)后,下界还可以调整的更大)。

总结而言

EM算法是一种从不完全数据或有数据丢失的数据集(存在隐藏变量)中,求解概率模型参数的最大似然估计方法。

EM的算法流程:

1>初始化分布参数θ;

重复2>, 3>直到收敛:

    2>E步骤(Expectation):根据参数初始值或上一次迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值:

    3>M步骤(Maximization):将似然函数最大化以获得新的参数值:

这个不断迭代的过程,最终会让E、M步骤收敛,得到使似然函数L(θ)最大化的参数θ。

在L(θ)的收敛证明:

Ⅸ 高斯混合模型GMM

最近在学习语音识别,由于传统的基于HMM-GMM架构的语音识别具有成熟的理论、工具链,且其一直以来神秘感让人十分好奇;所以我打算从传统框架入手学习,并尝试认真地弄懂相关技术;在看了一些语音识别相关简介后,知道虽然GMM模型在很多年前,在”混合模型“(hybrid model)中就被DNN所取代了;甚至在当今深度学习背景下,HMM也有被完全取代的趋势;但是从学习的角度,我觉得GMM仍然是很好的学习材料。

其中:D为数据空间的维数,K为混合分支个数

在 多元正态分布 文中,中我们证实了 的积分为1,在这里由积分的线性性质有:

所以需要 ,且为了保证概率都为正数,这里还要求 都大于0,这时 成为合法的密度函数。

下面关于参数的极大似然估计主要学习PRML书中的相关讨论,这里我只是补充了一些推导过程中的数学细节,这些数学细节书上一般不会写出来,所以这里我决定自己推推看,让心里更加踏实。

为了不至于使得下面ML估计的公式推导太乱,我们在这里提前把部分相关的导数计算好。

1. 设二次型为 ,其中 为D维列向量,而 为D阶方阵,而 为点 处的切空间(tangent space)中的向量,根据下式:

显然 是关于切空间中向量 的线性函数;且 显然是关于 的高阶部分,即当 时, 。

即:  

以上便是函数的可微性定义,因而导数(雅可比矩阵)为: 。

进而,若 是对称矩阵,则      

2. 同样是上面的二次型,这次我们把参数矩阵看作变量,即 ,有: ,写成矩阵形式就有:

3. 行列式的求导,行列式函数: ,是n阶实方阵空间上的实值函数;事实上我们直接将行列式看作原型是 的函数即可,因为这里我们关心的求导运算跟矩阵的代数运算没有关系,因此可以忽略其结构;从线代课本可知有两种方式定义行列式:

1)组合式定义: ,其中 是n阶方阵, 是n元对称群, 是其中任取的置换,也可以将 看作 的一个全排列,而 是全排列 的符号。

2)递归定义,按第k行展开:

  

其中: 是矩阵的第k行第j列元素, 是元素 对应的余子式,而记 为元素 的代数余子式。

在这里应该用递归定义比较方便,比如要对元素 求导: 来自第 行、第 列,又因为按照行列式的递归定义(3)式,同样的第 行,但是不同的列 上的元素 的余子式 显然不会包括当前被求导元素 ,因为它不会包含第 行除了 以外的任何元素。因此,我们有:

即行列式关于第 元素的偏导数,就是该元素对应的代数余子式。因此把所有的偏导数整理到矩阵里面,就有:

 其中 为 的伴随矩阵的转置。

再次,若 为对称矩阵,且可逆,则根据公式 有: ,即 的伴随矩阵也是对称的。

现在我们用一组数据 来拟合GMM模型,假设数据之间是独立的,则该组数据在模型上的对数似然为:

下面根据微分学计算该似然函数取得极大值的必要条件,由于需要满足约束 ,根据Lagrange乘子法,求下面关于参数 的函数 的极大值点:

先对 求导 ,根据多元复合函数的链式求导法则,有:

,其中 为密度函数指数部分的二次型,即:

令 ,则: ,其中:根据之前的推导,雅可比矩阵 ,而雅可比矩阵 ,所以:     。

按照书中所说将 定义为 关于隐变量的后验概率,则(6)式变为: ,写成梯度形式,就有: ,令其等于 ,并利用 的非奇异性,两边同时左乘 ,将其解出来得:

下面对协方差矩阵求导: 为了保持一致,我们还是用 代替 作为行列式函数;但是这里为了方便,我们不直接对协方差矩阵求导,而是对其逆矩阵求导,我们令 ,重写一遍(0)式:

在上式中,令 ,则根据乘法求导法则有:

其中,根据上面的(4)式有:

因为 是对称矩阵,故而 也是对称矩阵(由 易知),再利用上面证过的(5)式就得到了上式。

令其乘以 ,有:

再利用上面证好的(2)式,有:

其中:

同样,令其乘以 ,有:

最后将(9),(10)两式代入(8)式,整理整理就得到:

令其等于 ,且注意到 ,我们得到:

最后,我们对混合系数 求导:

我们发现其中: 与 只相差一个 ,令 ,并在等式两边同乘以 得:

现在,对一个特定的k,将 代入(11)式,得:

由于无法闭式求解,可以用EM算法来迭代式地拉高数据在模型参数上的似然,抄一抄书本上的算法,加深一下印象:

1. 初始化GMM所有分支的均值向量 、协方差矩阵 ,以及各分支的混合系数 ;

2. E Step : 固定当前模型参数,计算 ,即书上所说的分支 要为解释数据 承担的那部分责任,即后验概率分布:

3. M Step : 利用当前的后验概率分布,重新估计模型的所有参数:

4. 计算对数似然:

检查参数或者对数似然值是否已经达到收敛条件;若否,返回第2步,继续训练。

阅读全文

与Gmm使用em算法相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:768
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:843
安卓怎么下载60秒生存 浏览:802
外向式文件夹 浏览:235
dospdf 浏览:430
怎么修改腾讯云服务器ip 浏览:387
pdftoeps 浏览:492
为什么鸿蒙那么像安卓 浏览:735
安卓手机怎么拍自媒体视频 浏览:185
单片机各个中断的初始化 浏览:723
python怎么集合元素 浏览:480
python逐条解读 浏览:832
基于单片机的湿度控制 浏览:498
ios如何使用安卓的帐号 浏览:882
程序员公园采访 浏览:811
程序员实战教程要多长时间 浏览:974
企业数据加密技巧 浏览:134
租云服务器开发 浏览:813
程序员告白妈妈不同意 浏览:335
攻城掠地怎么查看服务器 浏览:600