EM算法 - 2 - EM算法在高斯混合模型学习中的应用

声明:

1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。

2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。

3,如果有内容错误或不准确欢迎大家指正。

4,如果能帮到你,那真是太好了。

在开始讲解之前,我要先给看这篇文章的你道个歉,因为《2012.李航.统计学习方法.pdf》中该节的推导部分还有些内容没有理解透彻,不过我会把我理解的全部写出来,而没理解的也会尽可能的把现有的想法汇总,欢迎你和我一起思考,如果你知道为什么的话,还请在评论区留言,对此,不胜感激。

当然,若你对EM算法都一知半解,那还是去看一下我总结的“EM算法 - 1 - 介绍”吧,不然你连我问的疑问都看不懂。

OK,mission start!

单高斯分布模型(GSM)

首先,为了更好的说明高斯混合模型,这里先简单介绍下GSM,GSM看名字就知道,模型中只有一个高斯分布,只不过在处理问题时我们会遇到:只知道结果,但不知道能实现该结果的最佳高斯分布,即:不知道高斯分布的参数。

这个问题解决起来很容易,只要用极大似然估计就可以了。

从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足“椭圆”分布的特性。这就引入了高斯混合模型。

高斯混合模型GMM

什么是GMM

GMM简单的说就是从几个GSM中生成出来的。即,如果GSM的概率密度函数用

,θ = (μ,σ2)

表示的话,那GMM就是:

其中,ak是系数,ak >=0,

称为第k个分模型,其中θk= (μkk2)。


tip:

9.24式中的ak是某个高斯分布的权值,这就是说:样本集合Y中的各个元素一定是从这K个高斯分布中得到的,如果把所有高斯分布的重要性定义为1的话,那其中第k个高斯分布的重要性就是ak,其中a1+a2+...+aK = 1。

用另一种方式理解就是:所有的高斯分布在样本集合中被使用的概率一共是1,

于是第k个高斯分布被使用的概率就是ak,其中a1+a2+...+aK = 1。

请教几个关于“高斯混合模型与EM算法”方面的问题:

为什么这么重视GMM,而不使用其他的分布?

实际上不管是什么分布,只K取得足够大,这个分布模型就会变得足够复杂,就可以用来逼近任意连续的概率密度分布。只是因为高斯函数具有良好的计算性能,所GMM被广泛地应用。

GMM的EM算法的推导

假设观测数据y1, y2,..., yN由GMM生成

其中,θ = (a1,a2, ..., ak; θ1, θ2, ..., θk)。

我们的目标是用EM算法估计GMM的参数θ。

1,明确隐变量,写出完全数据的对数似然函数

可以设想观测数据yj,j = 1, 2,..., N,是这样产生的:首先依概率ak选择第k个高斯分布分模型φ(y |θk);然后依第k个分模型的概率分布φ(y |θk)生成观测数据yj

这时观测数据yj是已知的,观测数据yj来自的第k个分模型是未知的(k =1, 2, .., K),于是这个就是隐变量,我们用rjk表示,其定义如下:

PS:隐变量rjk是0-1随机变量。

有了观测数据yj及未观测数据rjk,那么完全数据是

(yj,rj1, rj2, ..., rjk), j = 1, 2, ..., N

于是,可以写出完全数据的似然函数

式中

(a式)


tip:

第一个等号:在满足θ的高斯分布中,第j样本点出现的概率是P(yj, rj1, rj2, ..., rjK | θ),于是代表“所有的样本点出现的概率”的P(y,r | θ)就推出了第一个等号。

第二个等号:由9.27式可得,若第j个观测来自第k个分模型时,rjk=1,即,akφ(yj|θk)]^rjk = akφ(yj|θk)],反之,akφ(yj|θk)]^rjk = 0。

于是将K个akφ(yj|θk)]^rjk连乘,就表示了第j个样本集合属于第k个分模型,即P(yj, rj1, rj2, ..., rjK | θ)的展开

后面两个等号是基本的数学知识,就不再解释了。

那么,完全数据的对数似然函数就是

         2,EM算法的E步:确定Q函数


tip:

上面的第三个等号的推导,就是把(a式)中的nk带进去,然后把E放到里面。


疑问1:

在上一个总结中已经知道Q函数的定义是

于是,上面的Q函数是怎么对应到Q函数的定义的?

或者说怎么用Q函数的定义来推导出上面的式子,即:

Q(θ, θ(i)) =  E[logP(y, r|θ)|y, θ(i)]

=  logP(y, r |θ)P(r | y, θ(i))

= ???

是在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据yi的响应度。


疑问2:

上面推导的第二个等号和第三个等号怎么得来的?

最后将

代入9.28式,即得

         3,确定EM算法的M步

这一步就简单了,Q函数已经知道,即9.29式,那对Q函数中的θ对应的各参数求偏导,并令其为0就可以了,其结果如下:

         4,重复以上计算,知道对数似然函数不再有明显的变化为止。

GMM的EM算法的整理

         输入

观测数据y1, y2,..., yn,高斯混合模型;

         输出

高斯混合模型参数;

         解

例子(三硬币模型)

假设有3枚硬币,分别记作A, B,C。这些硬币正面出现的概率分别是π,p和q。

进行如下硬币实验:

先投掷硬币A,根据其结果选B或C,正面选硬币B,反面选C。

然后投掷选出的硬币,若投掷的结果是正面则记做1,反之记做0。

独立的重复n此实验(这里,n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,1

假设只能观测到投掷硬币的结果,不能观测投掷硬币的过程。问:如何估计三硬币正面出现的概率,即,三硬币模型的参数。

         解

                   1,我们先整理下思路。

三硬币模型可以写作

其中,θ = (π, p, q);y是观察到的硬币最终的正反面;Z是硬币A的投掷结果,是没有未观察到的,是隐变量。

然后将观测数据表示为Y =(Y1, Y2, ..., Yn)T,未观测数据表示为Z = (Z1, Z2, ..., Zn)T,则观测数据的似然函数为

然后要求是求模型参数θ的极大似然估计。

那么我们就利用上面的算法。

先选取参数的初值,记做θ(0)= (π(0), p(0), q(0)),然后不停的迭代下面的E步和M步计算参数的估计值,直至收敛。

假设第i次迭代后参数的估计值为θ(i)= (π(i), p(i), q(i)),则EM算法的第i+1次迭代如下。

E步:计算在模型参数θ(i)下观测数据yj来自投掷硬币B的概率

M步:计算模型参数的新估计值

                   2,开始进行数字计算

假设模型参数的初值为

π(0) = 0.5, p(0) = 0.5, q(0) = 0.5

第一次迭代,由9.5式,对yj = 1与yj = 0均有μj(1) = 0.5

利用迭代公式9.6 ~ 9.8,得到

π(1) = 0.5, p(1) = 0.6, q(1) = 0.6

第二次迭代,由9.5式得μj(2) = 0.5

利用迭代公式9.6 ~9.8,得到

π(2) = 0.5, p(2) = 0.6, q(2) = 0.6

第二次迭代时参数就不再变化了,因此迭代停止,于是模型参数θ的极大似然估计就的出来了,即

π = 0.5, p =0.6, q = 0.6


tip:

如果取初值π(0) = 0.4, p(0) = 0.6, q(0) = 0.7,那么得到的模型参数的极大似然估计是π = 0.4064, p = 0.5368, q = 0.6432。

这就是说,EM算法与初值的选择有关,选择不同的初始值可能得到不同的参数估计值。

参考资料:

http://www.cnblogs.com/zhangchaoyang/articles/2624882.html

时间: 2024-10-27 10:59:27

EM算法 - 2 - EM算法在高斯混合模型学习中的应用的相关文章

GMM高斯混合模型 学习(2)

(图片from http://www.cnblogs.com/zhangchaoyang/articles/2624882.html) 单高斯分布 如果特征x是一维(只考虑点的x坐标)的,高斯分布是:(from这篇博客) 如果特征是二维(x坐标和y坐标,意义可以是身高和体重)的,聚类的效果应该是: 在上面两张图中,我们用EM-GMM算法做聚类,用的是单个高斯函数描述一个咧别. 如用一维高斯描述了男生和女生的身高分布. 高斯混合分布 但是如果统计的这些身高同时有荷兰人(高)和刚果人(矮),这个单高

EM算法求高斯混合模型参数估计——Python实现

EM算法一般表述: 当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然估计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化(Maximization)步骤,因此称为EM算法. 假设全部数据Z是由可观测到的样本X={X1, X2,--, Xn}和不可观测到的样本Z={Z1, Z2,--, Zn}组成的,则Y = X∪Z.EM算法通过搜寻使全部数据的似然函数Log(L(Z; h))的期望值最大来寻找极大似然估计,注意此处的h不是一个变量

高斯混合模型与EM算法

对于高斯混合模型是干什么的呢?它解决什么样的问题呢?它常用在非监督学习中,意思就是我们的训练样本集合只有数据,没有标签. 它用来解决这样的问题:我们有一堆的训练样本,这些样本可以一共分为K类,用z(i)表示.,但是具体样本属于哪类我们并不知道,现在我们需要建立一个模型来描述这个训练样本的分布.这时, 我们就可以用高斯混合模型来进行描述. 怎么入手呢? 高斯混合模型: 我们这么想,因为样本集合潜在地是可以分为K类的,用z(i)表示第 i 样本所属的类别,所以z(i) 的范围为从1至 K.对于我们可

又看了一次EM 算法,还有高斯混合模型,最大似然估计

先列明材料: 高斯混合模型的推导计算(英文版): http://www.seanborman.com/publications/EM_algorithm.pdf 这位翻译写成中文版: http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html 高斯混合模型的流程: http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html 最大似然估计: http://bl

EM算法原理以及高斯混合模型实践

EM算法有很多的应用: 最广泛的就是GMM混合高斯模型.聚类.HMM等等. The EM Algorithm 高斯混合模型(Mixtures of Gaussians)和EM算法 EM算法 求最大似然函数估计值的一般步骤: (1)写出似然函数: (2)对似然函数取对数,并整理: (3)求导数,令导数为0,得到似然方程: (4)解似然方程,得到的参数即为所求. 期望最大化算法(EM算法): 优点: 1. 简单稳定: 2. 通过E步骤和M步骤使得期望最大化,是自收敛的分类算法,既不需要事先设定类别也

机器学习 : 高斯混合模型及EM算法

Mixtures of Gaussian 这一讲,我们讨论利用EM (Expectation-Maximization)做概率密度的估计.假设我们有一组训练样本x(1),x(2),...x(m),因为是unsupervised的学习问题,所以我们没有任何y的信息. 我们希望利用一个联合分布p(x(i),z(i))=p(x(i)|z(i))p(z(i))来拟合这些数据, 其中z(i)-Multinomial(?) (?j?0, ∑kj=1?j=1,参数?j给出了概率p(z(i)=j)),并且 x(

6. EM算法-高斯混合模型GMM+Lasso详细代码实现

1. 前言 我们之前有介绍过4. EM算法-高斯混合模型GMM详细代码实现,在那片博文里面把GMM说涉及到的过程,可能会遇到的问题,基本讲了.今天我们升级下,主要一起解析下EM算法中GMM(搞事混合模型)带惩罚项的详细代码实现. 2. 原理 由于我们的极大似然公式加上了惩罚项,所以整个推算的过程在几个地方需要修改下. 在带penality的GMM中,我们假设协方差是一个对角矩阵,这样的话,我们计算高斯密度函数的时候,只需要把样本各个维度与对应的\(\mu_k\)和\(\sigma_k\)计算一维

统计学习方法c++实现之八 EM算法与高斯混合模型

EM算法与高斯混合模型 前言 EM算法是一种用于含有隐变量的概率模型参数的极大似然估计的迭代算法.如果给定的概率模型的变量都是可观测变量,那么给定观测数据后,就可以根据极大似然估计来求出模型的参数,比如我们假设抛硬币的正面朝上的概率为p(相当于我们假设了概率模型),然后根据n次抛硬币的结果就可以估计出p的值,这种概率模型没有隐变量,而书中的三个硬币的问题(先抛A然后根据A的结果决定继续抛B还是C),这种问题中A的结果就是隐变量,我们只有最后一个硬币的结果,其中的隐变量无法观测,所以这种无法直接根

SIGAI机器学习第二十四集 高斯混合模型与EM算法

讲授聚类算法的基本概念,算法的分类,层次聚类,K均值算法,EM算法,DBSCAN算法,OPTICS算法,mean shift算法,谱聚类算法,实际应用. 大纲: 聚类问题简介聚类算法的分类层次聚类算法的基本思想簇之间距离的定义k均值算法的基本思想k均值算法的流程k均值算法的实现细节问题实验EM算法简介Jensen不等式EM算法的原理推导收敛性证明 聚类算法是无监督学习的典型代表,前边讲过的数据降维算法是无监督学习的另外一种典型代表. 原文地址:https://www.cnblogs.com/wi