十大机器学习算法之EM算法讲解及推导

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


EM的理解

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

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


用到的公式:Jenson不等式

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

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

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


EM的数学推导

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

l(θ)=mi=1log p(xi;θ)=mi=1logzp(xi,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的分布函数,那么可以这样构造:

logZp(xi,z;θ)=logZQ(z)p(xi,z;θ)Q(z) l o g ∑ Z p ( x i , z ; θ ) = l o g ∑ Z Q ( z ) p ( x i , z ; θ ) Q ( z )

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

logZQp(xi,z;θ)Q=logYP(Y)Y=logE(Y) l o g ∑ Z Q p ( x i , z ; θ ) Q = l o g ∑ Y P ( Y ) Y = l o g E ( Y )

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

logE(Y)E(logY)=YP(Y)logY=ZQ(Z)logp(xi,z;θ)Q(Z)

l(θ)=mi=1logZp(xi,z;θ)mi=1ZQ(Z)logp(xi,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(xi,z;θ)Q(Z)=C Y = p ( x i , z ; θ ) Q ( Z ) = C

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

ZQ(Z)=Zp(xi,z;θ)C=1

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

Q(Z)=p(xi,z;θ)C=p(xi,Z;θ)Zp(xi,z;θ)=p(xi,z;θ)p(xi)=p(z|xi;θ)

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


EM算法的流程:

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

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值