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