EM算法

EM算法,即最大期望算法(Expectation-maximization algorithm),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型 依赖于无法观测的隐性变量
最大期望算法经过两个步骤交替进行计算,
第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。
多数情况下我们是根据已知条件来推算结果,而最大似然估计是已经知道了结果,然后寻求使该结果出现的可能性最大的条件,以此作为估计值。似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。

算法推导

对于m个样本观察数据{x(1),x(2),x(3),x(m)},找出样本的模型参数θ, 极大化模型分布的对数似然函数如下

θ=argmaxθilogP(xi;θ)

如果我们得到的观察数据有未观察到的隐含数据z={z(1),z(2),z(3),z(m)},此时我们的极大化模型分布的对数似然函数如下:

θ=argmaxθilogP(xi;θ)=argmaxθilogzp(xi,zi;θ)

第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。
首先,我们把分子分母同乘以一个相等的函数(即隐变量Z的概率分布Qi(z(i)),其概率之和等于1,即zQi(z(i))=1。其次,利用Jensen不等式(即,在凸函数中,有函数的期望大于等于期望的函数,即E[f(X)]>=f(E[X]);当f是(严格)凹函数当且仅当f是(严格)凸函数,不等号方向反向),我们将上式进行缩放,可得:

ilogp(x(i);θ)=tlogz(i)p(x(i),z(i);θ)=ilogz(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))iz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

其中z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))就是p(x(i),z(i);θ)Qi(z(i))的期望,log函数为凹函数(其二次导数为1x2<0)。
此时如果要满足Jensen不等式的等号,则有:

p(x(i),z(i);θ)Qi(z(i))=c,c

对该式做个变换,并对所有的z求和,得到

zp(x(i),z(i);θ)=zQi(z(i))c

由于Qi(z(i))是一个分布,所以满足zQi(z(i))=1
可得:

zp(x(i),z(i);θ)=cQi(z(i))=p(x(i),z(i);θ)c=p(x(i),z(i);θ)zp(x(i),z(i);θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)|x(i);θ)

至此,我们推出了在固定参数θ后,使下界拉升的Qi(z(i))的计算公式就是条件概率,解决了Qi(z(i))如何选择的问题。这一步就是E步,建立L(θ)的下界。接下来的M步,就是在给定Qi(z(i))后,调整θ

argmaxθiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

去掉上式中为常数的部分,则我们需要极大化的对数似然下界为:

argmaxθiz(i)Qi(z(i))logp(x(i),z(i);θ)

上式也就是我们的EM算法的M步。

EM算法能保证收敛吗?如果收敛,那么能保证收敛到全局最大值吗?

要证明EM算法收敛,则我们需要证明我们的 对数似然函数的值在迭代的过程中一直在增大。

i=1mlogP(xi;θj+1)i=1mlogP(xi;θj)

由于:

L(θ;θj)=i=1mziP(z(i)|xi;θj)logP(x(i),z(i);θ)

令:

H(θ;θj)=i=1mziP(z(i)|xi;θj)logP(z(i)|xi;θj)

上两式相减得到:

i=1mlogP(xi;θ)=L(θ;θj)H(θ;θj)

在上式中分别取θθjθ(j+1),并相减得到

i=1mlogP(xi;θj+1)i=1mlogP(xi;θj)=[L(θj+1;θj)L(θj;θj)][H(θj+1;θj)H(θj;θj)]

要证明EM算法的收敛性,我们只需要证明上式的右边是非负的即可。
由于θj+1使得L(θ,θj)极大,因此有:

L(θj+1;θj)L(θj;θj)0

而对于第二部分,我们有:

H(θj+1;θj)H(θj;θj)=i=1mziP(z(i)|xi;θj)logP(z(i)|xi;θj+1)P(z(i)|xi;θj)i=1mlog(ziP(z(i)|xi;θj)P(z(i)|xi;θj+1)P(z(i)|xi;θj))=i=1mlog(ziP(z(i)|xi;θj+1))=0

其中第2式用到了Jensen不等式,只不过和之前使用相反而已,第3式用到了概率分布累积为1的性质。
至此,我们得到了

i=1mlogP(xi;θj+1)i=1mlogP(xi;θj)0

证明了EM算法的收敛性。从上面的推导可以看出,EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标L(θ,θj)是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。比较下其他的机器学习算法,其实很多算法都有类似的思想。比如SMO算法,坐标轴下降法(Lasso回归算法), 都使用了类似的思想来求解问题。

posted @   Jamest  阅读(326)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示