MLE(极大似然估计法)是一种非常有效的参数估计方法,但在概率模型中,有时既含有观测变量 (observable variable), 又含有隐变量(hidden variable)或潜在变量(latent variable),例如:分布中有多余参数或数据为截尾或缺失时,这个时候使用MLE求解是比较困难的。于是Dempster等人于1977年提出了EM算法,其出发点是把求MLE的过程分两步走,第一步是求期望,以便把多余的部分去掉,第二步是求极大值。
我们给定数据和参数:
也就是隐变量
EM 算法对这个问题的解决方法是采用迭代的方法,这里直接给出最终的公式
后面再说明这个式子是从何得来的。
这个公式包含了迭代的两步:
E step:计算 在概率分布 下的期望
M step:计算使这个期望最大化的参数得到下一个 EM 步骤的输入
对于上述算法求解过程,似然函数在每一步迭代的过程中都是在增大的,除非已经达到最大值,证明如下。
求证:
证明:
我们知道
在概率下对左右两边求期望:
所以:
由于
而
所以
这时要证 ,只需证::
所以
综上我们得证
进一步,我们来看EM 迭代过程是如何得来的
在概率分布下, 对上式左右两边求期望:
其中
的全称是Evidence lower bound,我们知道,所以
在,上式取等号,即:,EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的,并将这个使 最大的参数代入下一次迭代中,这时便有
由于 的时候,最大值才能取等号,所以
我们就得到了开始给出的EM算法迭代式。
从 Jensen 不等式出发,也可以导出上式:
右边的式子便是我们上面的 ,等号在 时成立。这里是常数,于是:
即, 另外我们知道, 所以
这个结果就是上面的最大值取等号的条件。
参考:
模式识别与机器学习(PRML)
李航的统计学习方法