机器学习10:期望最大化(Expectation Maximization)

期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)。MLE 对 参数的估计记为:

EM算法采取的是一种迭代的、非梯度的方法,其迭代式为 其中为隐变量。

公式的导出

思路1

的一个分布 两边都对期望:

由于,则为对数似然的一个下界,记为(evidence lower bound)。即,当且仅当时取等。

为使对数似然最大,一种可能的思路是在取等时最大化ELBO,也即

思路2

(其中最后一行使用了不等式)

取等号的时候,,其中为常数,两边对积分,得到,则 得到了与上面相同的结论。

算法有效性证明

要证明这个迭代过程有效,也即要证明对数似然在增大

,对左右两边求积分:

其中,记 所以: 由于 ,而 ,所以 。要证 ,需证: 综合上面的结果: 得证。

广义EM算法

目前我们得到的EM算法为:

E-step: M-step: 而我们面对的一个问题就是,不一定能够求出,但是我们还想使得接近真实的,我们对现有的EM算法进行改进。

EM算法本质上就是最大似然,我们已经知道,为了使得尽可能接近,也就是尽可能小,我们可以最大化

我们记 是关于的函数。

则我们按照上述思路可以将EM算法改写为:

E-step: M-step: 注意到 比原本的EM算法多了熵这一项

参考:

EM算法详细推导和讲解