在能感性理解EM算法,并且和其理论结合到一起后,我们现在开始学习一下EM算法的理论推导和证明部分,证明的流程主要参考:
https://blog.csdn.net/v_july_v/article/details/81708386,非常详细有逻辑
首先是我们的目标,在我们求解的时候,会有N个观测变量Y,希望求解的参数为
θ
\theta
θ,这个时候,最大似然估计告诉我们,求解
θ
\theta
θ可以最大化下式:
但是由于我们现在中间可能有未知环节,无法给出P(Y|
θ
\theta
θ)的表达式,没办法直接求解,所以引入了一个中间变量z:
这个变量z的引入,一般能让表达式变得更容易表达,比如P(Y|Z,
θ
\theta
θ)是较容易给出表达式的
但是因为这个求解还是比较困难,log中有连加,求导等过程非常复杂,所以EM算法其实就是解决了如何通过迭代的方法求解Z和 θ \theta θ,从而到到我们的最终目标->最大似然估计求参数
下面就是理论推导过程:
使用Jensen不等式,对L(
θ
\theta
θ)进行变形:
这里需要注意一点,我们在提出q的时候,是q(z),
∑
z
\sum_{z}
∑zq(z)=1,Z相当于是X轴
此时我们找到了一个L( θ \theta θ)的下界:
EM算法厉害的地方在于一下两点:
1. 找到了一个q(z),使得当
θ
\theta
θ在某一个值的时候
θ
i
\theta_i
θi,Q(
θ
i
\theta_i
θi)=L(
θ
i
\theta_i
θi)
2. 通过M步,寻找当前Q(
θ
i
\theta_i
θi)的最大值,更新
θ
i
\theta_i
θi,从而不断更新q(z),提高下届的值,从而增大L(
θ
\theta
θ)
下面具体看一下是如何做到这两步的:
首先是当我们给定一个当前的
θ
i
\theta_i
θi时,怎么样让Q(
θ
i
\theta_i
θi)=L(
θ
i
\theta_i
θi)
根据Jensen不等式,在 f(E(X))>=E[f(x)],只有在X为常数的时候,等号成立,所以仅有下式成立时,才有等号成立:
然后进行变形,对两边求z的积分
因为有
∑
z
\sum_{z}
∑zq(z)=1,所以有:C=P(Y|
θ
i
\theta_i
θi), 所以有:
所以当我们有一个
θ
i
\theta_i
θi时,可以找到一个在
θ
i
\theta_i
θi处紧贴L(
θ
\theta
θ的Q(
θ
i
\theta_i
θi):
这里把Q(
θ
i
\theta_i
θi)写成了Q(
θ
\theta
θ,
θ
i
\theta_i
θi)表示在
θ
i
\theta_i
θi时的Q值,那么M步就是求:
所以整个EM算法的流程就是:
在有一个
θ
i
\theta_i
θi时,可以找到一个在
θ
i
\theta_i
θi处紧贴L(
θ
\theta
θ)的Q(
θ
i
\theta_i
θi),然后寻找
a
r
g
m
a
x
θ
argmax_\theta
argmaxθ Q(
θ
i
\theta_i
θi)的最大值 (寻找使Q(
θ
i
\theta_i
θi)最大的
θ
\theta
θ值),将
θ
i
\theta_i
θi更新到
θ
i
+
1
\theta_i+1
θi+1,然后再寻找此时的Q(
θ
i
+
1
\theta_i+1
θi+1),使得Q(
θ
i
+
1
\theta_i+1
θi+1)在
θ
i
+
1
\theta_i+1
θi+1处紧贴L(
θ
\theta
θ)
最后还需要证明整个EM算法的过程是收敛的,是有效果的,也就是这个方法能够保证求得的L(
θ
\theta
θ)在不断的变大,不然也是无用的算法,假设第i次得到的参数值为
θ
i
\theta_i
θi,第i+1次得到的参数值为
θ
i
+
1
\theta_i+1
θi+1,加入能够保证L(
θ
i
+
1
\theta_i+1
θi+1)>=L(
θ
i
\theta_i
θi),就能说明极大似然估计单调增加,那么最终我们能够找到最大似然估计的一个稳定的极大值。EM算法收敛性的证明基本分为两种,一种是李航老师在统计学习方法里面讲的,还有一种直观的方法:
最开始推荐的博文中都有介绍,本文只是希望更简练的让大家了解EM算法的基本思路,有时候看太多的细节反倒会忘记最根本的思路。