我是靠谱客的博主 任性音响,最近开发中收集的这篇文章主要介绍em算法详细例子及推导_EM算法学习笔记(非常详细),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

f8280bacce32782e5b78b020729c0c6e.png

本次笔记从EM算法的求解目标出发,不仅进行了前提知识的介绍,而且后面还提供了保姆式的公式推导,并且在reference中给出了一系列优秀的blog,相信根据此文,再参考一点其他的blog,零基础也能够完全搞明白EM算法!

在学习EM算法之前,首先要明白以下几点内容:

什么是隐变量?

c1d7dce088673ba12f55932b87a09f9c.png

例子一:

假设有一批样本属于三个类,每个类都服从正态分布,但是正态分布的均值、协方差等参数未知。

1,如果此时你知道这一批样本分别属于哪个类,那么就可以构造似然函数,然后求极值,求出参数。也就是最大似然估计

2,你不知道这一批样本分别属于哪个类,那么此时无法直接使用最大似然估计,某个样本具体属于哪个类的这个变量,就是隐变量

例子二:

比如一个学校有100人,男女各为50人。男生服从正态分布A,女生服从正态分布B。

那么就可以从这50个男生的身高中估计出

,从50个女生的身高中估计出

但是如果男女混在了一起,也就是只有100个身高数据,但是不知道具体是男生还是女生。

这个时候,就有点鸡生蛋还是蛋生鸡的感觉了,因为我们需要用知道精确的男女身高分布的参数,才能知道哪个样本是男是女的概率。但是我们只有知道的每个样本是男的还是女的,才能用最大似然估计精确的估计男女身高分布的参数。

这时候样本是男还是女的这个变量,也就是隐变量。

什么是最大似然估计(存在即合理)?

可以参考下面马同学的文章,讲解的非常清晰易懂,关键就是要能够搞明白,概率和似然的区别、什么是似然函数。

马同学高等数学​www.matongxue.com

jensen不等式:

若f(x)是凸函数,x是随机变量,则下面的不等式成立:

在这里E是数学期望,对于离散型随机变量,数学期望是求和,对连续型随机变量则为求定积分。如果f(x)是一个严格凸函数,当且仅当x是常数时不等式取等号:

EM算法推导:

EM算法的全称为:expectation maximization algorithm,分为两步,一步是expectation ,一步是maximization。

功能:用于求解含有隐变量(latent variable)的概率模型的参数的极大似然估计、或者极大后验估计。

用数学语言来说就是,假设我们有样本集{

},我们想要估计出模型的参数
,但是不能直接应用最大似然估计去做,因为存在隐变量

对于求解参数估计

,我们
本质上还是想要求解一个能够使似然函数最大的
,只不过此时我们又多了一个变量z。

下面会对如下的公式进行详细的推导。

a2a1f05986d667d09048bfc5c334bf79.png

(1)中的两个式子,左边的式子代表的是似然函数,也就是我们最大化的目标,我们的目的就是为了求出似然函数的极值。右边的式子相当于在离散型变量的情形下,求出x变量的边缘概率密度。所以(1)中左右两个式子是等价的。

对于(2)和(3)来说,其实我们也可以直接对(1)进行求导求解,因为多了一个变量z,也就是多变量函数求极值而已。但是因为(1)中右边的式子是在log内求和的,求导之后函数形式过于复杂。所以这里为了解决这个求极值问题,运用jensen不等式,构造了(2)和(3)。

首先给出期望的公式(这里面的x,和上面推导中的x不同)。

在(2)中

就相当于上面的x变量,
就相当于

所以

就相当于是
的期望。

根据上面的jensen不等式,

,可以推出(假设函数为
,因为这里的log是凹函数,所以不等式方向需要取反):

由上面可以知道

,所以

,所以

因为最外层的

是相同的,所以最后可以得到

至此,上面的(1)(2)(3)公式均推导完毕!

不过到了这里有个问题,那就是咱们的目的是为了求极值啊,你这搞了半天,只是推导了一个下界而已,这有什么卵用?其实这就是“偷梁换柱”啦,因为原问题不好求解,所以求出他的一个下界来,求下界的极值,然后不断的逼近原问题的极值啦!

他的过程就像下图所示:

cba06a4d6f21ac0c24c4f36a5cf4f5a2.png
参考自https://blog.csdn.net/zouxy09/article/details/8537620

不过这里还可以再抛出来两个问题,首先①什么时候

的下界可以和J(z,
)相等(就是式子2和式子3能够取等号)?

②每次求解,为什么能保证

一定是不断变大的呢?

首先回答第一个问题,由上面的jensen不等式,我们可以知道如果f(x)是一个严格凸函数,当且仅当x是常数时不等式取等号:

所以

必须为常量时,才能取等号。也就是

可以知道此时

的c倍。而且
(因为
为概率分布)

因为c是和z等变量无关的,所以就可以假设:

也就是说,我们可以直接设定

为给定x和
下的后验概率分布,就能够使
为常量,也就是说能够让
的下界可以和J(z,
)相等(就是式子2和式子3能够取等号)!

由此①得证。

上面回答了第一个问题,其实就是解决了EM算法两个步骤中的E(expectation)步骤。

那么M步,就是在给定Q(z)的情况下,去计算最大似然估计,去不断的更新

,极大化L(
)的下界。

那么这里就引出了第二个问题,每次求解,为什么能保证

一定是不断变大的呢?

我们假设

分别为迭代过程中的两步,我们需要去证明
,也就是表明,在每个迭代过程中,L(
)的值是不断递增的。

下面会分析下面的这个推导公式:

4ab56fc58428622b4c420461e7a440b2.png

首先,我们在上面证明了如何取

会使得
的下界可以和J(z,
)相等。

也就是假设当前我们的

已经求出,我们可以选取
使:

(4)式最好证明,因为根据前面的jensen不等式,对于任何的Q和

,都有
成立。

所以

(在t+1步中,用的是t步的Q)

接下来证明(5):

(5)相当于运用了M步的定义,在M步就是为了将

变为
,使得下界最大化。

就是求解如下公式:

所以(5)式肯定成立。

(6)式也显然是成立的。

至此,证明了②

证明了上面

是单调递增的,其实也就证明了,我们会不断的去逼近极大值,会收敛,会得到极大值。

当然也可以从坐标上升的角度去看待EM算法:

435ad8d03abadbe5b18c453397673ad0.png

具体的讲述可以参考Andrew ng讲义里面的内容:

12345a49f75bebad4f7ce0fd35ac4cc2.png

下面是更清晰一点的迭代图:

b1572ffb5f66fd9c3fdaba6099684fdd.png
选自SIGAI

总结:

这次详细推导 了EM算法,但是应该只算是EM算法系列的第一步吧,用EM算法求解高斯混合模型、HMM、以及面试经常考的EM算法 和Kmeans的联系等内容,后续再写相关的系列文章。

参考:

理解EM算法​www.tensorinfinity.com
536d935e962b357f7e3e53d378aa4e84.png
马同学高等数学​www.matongxue.com 阿泽:【机器学习】EM——期望最大(非常详细)​zhuanlan.zhihu.com
e2ee93a4c99d3cd3a6463af3f93f0550.png
http://cs229.stanford.edu/notes/cs229-notes8.pdf​cs229.stanford.edu 从最大似然到EM算法浅解_zouxy09的专栏-CSDN博客_em算法与最大似然估计​blog.csdn.net
0df41b4f3f536378da1324eedb08cb34.png

最后

以上就是任性音响为你收集整理的em算法详细例子及推导_EM算法学习笔记(非常详细)的全部内容,希望文章能够帮你解决em算法详细例子及推导_EM算法学习笔记(非常详细)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(26)

评论列表共有 0 条评论

立即
投稿
返回
顶部