一、概述
- 介绍
概率模型有时既包含观测变量(observed variable),又包含隐变量(latent variable)。当概率模型只包含观测变量时,那么给定观测数据,就可以直接使用极大似然估计法或者贝叶斯估计法进行模型参数的求解。然而如果模型包含隐变量,就不能直接使用这些简单的方法了。EM算法就是用来解决这种含有隐变量的概率模型参数的极大似然参数估计法。这里只讨论极大似然估计,极大后验估计与其类似。
- 算法
EM算法的输入如下:
在算法运行开始时需要选择模型的初始化参数。EM算法是一种迭代更新的算法,其计算公式为:
这个公式包含了迭代的两步:
①E step:计算
②M step:计算使这个期望最大化的参数得到下一个EM步骤的输入。
总结来说,EM算法包含以下步骤:
①选择初始化参数;
②E step;
③M step;
④重复②③步直至收敛。
二、EM算法的收敛性
因此有:
因此有:
三、EM算法的导出
- ELBO+KL散度的方法
对于前面用过的式子,首先引入一个新的概率分布:
ELBO
然后我们观察一下取极大值的过程:
由此我们就导出了EM算法的迭代公式。
- ELBO+Jensen不等式的方法
首先要具体介绍一下Jensen不等式:对于一个凹函数 (国内外对凹凸函数的定义恰好相反,这里的凹函数指的是国外定义的凹函数),我们查看其图像如下:
Jensen不等式
上面的说明只是对Jensen不等式的一个形象的描述,而非严谨的证明。接下来应用Jensen不等式来导出EM算法:
这种方法到这里就和上面的方法一样了,总结来说就是:
四、广义EM算法
五、EM的变种
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再⼀遍⼀遍的迭代。如果在 EM 框架中,⽆法求解后验概率,那么需要采⽤⼀些变种的 EM 来估算这个后验:
①基于平均场的变分推断,VBEM/VEM
②基于蒙特卡洛的EM,MCEM