机器学习-白板推导 10. EM 算法

1. EM算法导出

本文中所有的参数定义如下:

EM是Expectation Maximization简写,意为期望最大, 用于含有隐变量的概率模型参数的极大似然估计。我们经常说的极大似然估计是对于概率分布,求解使得其最大的算法:

对于式1如果引入隐变量,要满足.如果是离散量就改成求和。那么可改写成:

实际上式2是非常难计算,因为有未观测数据并含有积分的对数。

而对利用条件概率有:

其中,引入的是关于的分布。

现在对式3左右两边同时求关于的期望:

右边变成:

其中,前半部分是ELBO,evidence lower bound。后半部分是

KL散度是用来衡量两个分布相似度(距离):

因此,。根据式3, 4, 5可知,当KL部分取等号时,,也就是说ELBO是其下界。

image-20210615155230999

如上图所示,和ELBO都是关于的函数,且从定义上看,,也就是图像总在ELBO上面。我们用迭代法来寻找最优解,当前仅当时,能使得,并且因为迭代法要求使得。实际上,先赋予初值,求出ELBO的期望,然后求下一个,直到ELBO值大于对应的,用替换掉,直到找到最大的参数,这时也是最大的参数。其公式就是:

总结:EM算法适用于含有隐变量的极大似然估计,由于含隐变量的的积分和对数难于计算,转化为求ELBO的最大值,EM算法公式如下:

最重要的两步:

  1. E step: 计算在概率分布下的期望。
  2. M step: 计算使得这个期望最大化的参数

2. EM 公式导出另外一种方法 (Jensen 不等式)

对公式2引入隐变量分布:

其中,最后一步是利用Jensen不等式,对于凹函数。其实最后结果就是ELBO。当且仅当时,可取等号。

这表明引入要等于后验分布。而这时,优化目标,其它迭代优化过程跟第一小节一样。

3. EM算法的收敛性

使用迭代算法来求的最大值,即我们希望新的估计值能使得变大,就是,其中是t次迭代后的值,这跟第一小节推导非常类似。

而要证明,我们先用条件概率公式转换下:

我们对式10两边同时求关于的期望:

其中,。而右边有:

我们将前半部分记为在EM算法中称为Q function, 其实就是上面ELBO,也就是EM算法迭代目标式。

后半部分记为。那么根据式10、11和式12有:

对于,由小节1可知,那么会怎么变化?

其中,不等号变换使用Jensen不等式,如下式:

如果用KL散度易知,

那么根据式14可知,,也就是说是递减的。综上根据式13可知,是递增的,即,因此EM算法是收敛

4. 广义EM算法

还是回到最开始的问题:最大化似然函数如式1所示。EM算法是为了解决参数估计中的问题,也就是learning问题:

实际过程中,由于难于计算,我们利用条件概率公式将其转化为式3所示。从第一小节,式3, 4, 5可得:

这里我们定义ELBO为:

另外,再写出KL散度部分:

前面部分,我们直接假定,实际上这个后验也是难以处理的。广义EM算法思路是:

  1. 先把固定住,若Q越接近P,KL部分越小,由于这时是定值,那么ELBO就会越大。即根据下式,求出

  2. 固定, 就是第一步求解的值,按照求解.

综上,广义EM可表示为:

  1. E-step:
  2. M-step:

对ELBO进一步化简有:

在前面的狭义EM算法中,只对进行迭代优化,是因为我们假定是已知的,优化与部分无关。

5. EM的变种

上节介绍了广义EM算法,其中E步和M步都是求极大,也称为MM算法。这两步求解中,先固定一个参数,再优化另外一个参数;完成后,再固定优化后得到的参数,然后优化开始固定的参数,这叫做坐标上升法。SVM中求解算法SMO就是用该方法求解的。

实际过程中, 会采用变分推断(Variable Inference)或MCMC,结合EM算法就变成了VBEM(Variable Bayes)/VEM 和MCEM。

总结:

  • 狭义EM算法:迭代求解算法目标式即极大似然函数的下界ELBO:

其中,E步是计算在概率分布下的期望,M步是最大化该期望。

  • 广义EM算法:不假定, KL散度部分不可忽略,求解极为困难,我们使用坐标上升法求解E步和M步:
    • E步,固定 ,最大化,这时得到Q
    • M步,固定Q,再最大化,得到

Inference

[1] EM 算法

[2] EM算法推导与三硬币模型

[3] 从最大似然到EM算法:一致的理解方式

[4] 人人都懂EM算法

[5] EM

[6] What is the expectation maximization algorithm?