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

更新时间:2023-07-01 00:03:56 阅读: 评论:0

⾼斯混合模型(GMM)和EM算法
在深度学习的路上,从头开始了解⼀下各项技术。本⼈是DL⼩⽩,连续记录我⾃⼰看的⼀些东西,⼤家可以互相交流。
本⽂参考:
⼀、前⾔
⾼斯混合模型(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)式,利⽤Jenn不等式的性质,将(2)式转化为(3)式。(Jenn不等式数学推到⽐较复杂,知道结果即可)
Note:印度死丘事件
Jenn不等式表述如下:
如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X])
⾄此,上⾯的式(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(θ)的收敛证明:

本文发布于:2023-07-01 00:03:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1071144.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   函数   分布   需要   算法   样本   概率   模型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图