一、概述
假设有如下数据:
:observed data
:unobserved data(latent variable)
:complete data
:parameter
EM算法的目的是解决具有隐变量的参数估计(MLE、MAP)问题。EM算法是一种迭代更新的算法,其计算公式为:
这个公式包含了迭代的两步:
①E step:计算在概率分布下的期望
②S step:计算使这个期望最大化的参数得到下一个EM步骤的输入
二、EM的算法收敛性
现在要证明迭代求得的序列会使得对应的是单调递增的,也就是说要证明。首先我们有:
接下来等式两边同时求关于的期望:
这里我们定义了,称为Q函数(Q function),这个函数也就是上面的概述中迭代公式里用到的函数,因此满足。
接下来将上面的等式两边分别取和并相减:
我们需要证明,同时已知,现在来观察:
因此得证。这说明使用EM算法迭代更新参数可以使得逐步增大。
另外还有其他定理保证了EM的算法收敛性。首先对于序列和其对应的对数似然序列有如下定理:
①如果有上界,则收敛到某一值;
②在函数与满足一定条件下,由EM算法得到的参数估计序列的收敛值是的稳定点。
三、EM的算法的导出
- ELBO+KL散度的方法
因此我们得出,由于KL散度恒,因此,则就是似然函数的下界。
使得时,就必须有,也就是时。
在每次迭代中我们取,就可以保证与相等,也就是:
也就是说与都是关于的函数,且满足,也就是说的图像总是在的图像的上面。对于,我们取,这也就保证了只有在时与才会相等,因此使取极大值的一定能使得。该过程如下图所示:
ELBO然后我们观察一下取极大值的过程:
由此我们就导出了EM算法的迭代公式。
- ELBO+Jensen不等式的方法
首先要具体介绍一下Jensen不等式:对于一个凹函数 (国内外对凹凸函数的定义恰好相反,这里的凹函数指的是国外定义的凹函数),我们查看其图像如下:
Jensen不等式接下来应用Jensen不等式来导出EM算法:
这里应用了Jensen不等式得到了上面出现过的,这里的函数也就是函数,显然这是一个凹函数。当这个函数是一个常数时会取得等号:
这种方法到这里就和上面的方法一样了,总结来说就是:
四、广义EM
上面介绍的EM算法属于狭义的EM算法,它是广义EM的一个特例。在上面介绍的EM算法的E步中我们假定,但是如果这个后验无法求解,那么必须使⽤采样(MCMC)或者变分推断等⽅法来近似推断这个后验。前面我们得出了以下关系:
当我们对于固定的,我们希望越小越好,这样就能使得更大:
是关于和的函数,写作。以下是广义EM算法的基本思路:
再次观察一下:
因此,我们看到,⼴义 EM 相当于在原来的式⼦中加⼊熵这⼀项。
五、EM的变种
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再⼀遍⼀遍的迭代。如果在 EM 框架中,⽆法求解后验概率,那么需要采⽤⼀些变种的 EM 来估算这个后验:
①基于平均场的变分推断,VBEM/VEM
②基于蒙特卡洛的EM,MCEM
网友评论