EM算法讲解及推导

EM算法也就是Expectation Maximization Algorithm,它是基于极大似然估计方法,如果大家还不是很熟悉极大似然估计可以看看这篇文章https://blog.csdn.net/blank_tj/article/details/82015361


EM的理解

首先极大似然估计解决了一个什么样的问题呢?极大似然估计是一个已知模型也就是什么样的分布,但是不知道这个分布中参数的具体多少。就像是我知道班级里同学的身高服从正态分布,但是正态分布的 μ σ 我们不知道,然后我们通过极大似然估计来求这个参数,通过已有的数据样本,它是参数估计的一种方法。

那么EM算法是解决什么样子的事情呢?其实呀,EM算法可以理解为是极大似然估计的复杂版,也就是多个极大似然估计组合成了EM算法。
举个例子:一班的成绩服从 μ 1 , σ 1 ,二班的成绩服从 μ 2 , σ 2 都是正态分布。首先,我们给出一班的样本和这个模型,通过极大似然估计方法能把 μ 1 , σ 1 估计出来,同理给二班的样本和模型也能把 μ 2 , σ 2 求出来。对吧,这就是极大似然估计的用处。那么EM算法是什么样呢?现在如果我把一班和二班的样本混合在一起,挑出来了一个人,但是我们不知道这个人是属于一班还是属于二班的,也就是说,我们随便选一个人,但是我们不知道这个人是属于哪个班级,所以也就不知道该往哪个模型套用极大似然估计方法。这就是EM算法所要解决的问题,由两个或者多个混合的模型及其样本组成,来估算出整个混合模型的参数。


用到的公式:Jenson不等式

X 是一个随机变量, f ( X ) 是一个凸函数(二阶导数大或等于0),那么有:

E [ f ( x ) ] f [ E ( x ) ]

当且仅当 X 是常数的时候等号成立。
如果 f ( X ) 是凹函数,不等号反向。
这里写图片描述
横坐标是参数,纵坐标是似然函数,首先我们初始化一个θ1,根据它求似然函数一个紧的下界,也就是图中第一条黑短线,黑短线上的值虽然都小于似然函数的值,但至少有一点可以满足等号(所以称为紧下界),最大化小黑短线我们就hit到至少与似然函数刚好相等的位置,对应的横坐标就是我们的新的θ2,如此进行,只要保证随着θ的更新,每次最大化的小黑短线值都比上次的更大,那么算法收敛,最后就能最大化到似然函数的极大值处。(别人的图)


EM的数学推导

以两个模型组合来说,即 z=0,z=1代表两个模型。所以当混合时,z就不知道是哪个模型的了,所以z是一个隐变量。因此,需要最大化的似然函数为:

l ( θ ) = i = 1 m l o g   p ( x i ; θ ) = i = 1 m l o g z p ( x i , z ; θ )

接着上图来说,构造这个小黑短线,就要靠Jensen不等式。注意我们这里的log函数是个凹函数,所以我们使用的Jensen不等式的凹函数版本。
根据Jensen函数,需要把log里面的东西写成一个数学期望的形式,注意到log里的和是关于隐变量Z的和,于是自然而然,这个数学期望一定是和Z有关,如果设Q(z)是Z的分布函数,那么可以这样构造:

l o g Z p ( x i , z ; θ ) = l o g Z Q ( z ) p ( x i , z ; θ ) Q ( z )

Y = p ( x i , z ; θ ) Q ( z ) ,则 P ( Y = p ( x i , z ; θ ) Q ( z ) ) = Q

l o g Z Q p ( x i , z ; θ ) Q = l o g Y P ( Y ) Y = l o g E ( Y )

所以 l o g 里其实构造了一个随机变量 Y Y Z 的函数。
构造好了数学期望,下一步根据Jensen不等式进行缩放:

l o g E ( Y ) E ( l o g Y ) = Y P ( Y ) l o g Y = Z Q ( Z ) l o g p ( x i , z ; θ ) Q ( Z )

l ( θ ) = i = 1 m l o g Z p ( x i , z ; θ ) i = 1 m Z Q ( Z ) l o g p ( x i , z ; θ ) Q ( Z )

这个时候保证这个似然函数下界是紧的,需要使等号成立。由Jensen不等式,等式成立的条件是随机变量是常数:

Y = p ( x i , z ; θ ) Q ( Z ) = C

因为 Q ( Z ) Z 的分布函数,所以:

Z Q ( Z ) = Z p ( x i , z ; θ ) C = 1

C 乘过去,可得C就是 p ( x i , z ) z 求和,所以我们终于知道了:

Q ( Z ) = p ( x i , z ; θ ) C = p ( x i , Z ; θ ) Z p ( x i , z ; θ ) = p ( x i , z ; θ ) p ( x i ) = p ( z | x i ; θ )

得到 Q ( Z ) Q ( Z ) 就是 p ( z i | x i ) ,或者写成 p ( z i ) 都一样,代表第 i 个数据是来自 z i 的概率。


EM算法的流程:

首先,初始化参数 θ
1)E-step:根据参数 θ 计算每个样本属于 z i 的概率,即这个同学是一班或者二班的概率,这个概率是Q
2)M-step:根据计算得到的Q,求出含有 θ 的似然函数的下界并最大化它,得到新的参数 θ
重复1)和2),直到收敛。

需要额外说明的是,EM算法在一般情况是收敛的,但是不保证收敛到全局最优,即有可能进入局部的最优。
EM算法在混合高斯模型(GMM),隐马尔科夫模型(HMM)中都有应用,是著名的数据挖掘十大算法之一。

猜你喜欢

转载自blog.csdn.net/blank_tj/article/details/82086015
今日推荐