一、概述

假设有如下数据:

EM算法(含隐变量的参数估计) - 图1:observed data EM算法(含隐变量的参数估计) - 图2:unobserved data(latent variable) EM算法(含隐变量的参数估计) - 图3:complete data EM算法(含隐变量的参数估计) - 图4:parameter

EM算法的目的是解决具有隐变量的参数估计(MLE、MAP)问题。EM算法是一种迭代更新的算法,其计算公式为:

EM算法(含隐变量的参数估计) - 图5

这个公式包含了迭代的两步:
①E step:计算EM算法(含隐变量的参数估计) - 图6在概率分布EM算法(含隐变量的参数估计) - 图7下的期望
②S step:计算使这个期望最大化的参数得到下一个EM步骤的输入
image.png

二、EM的算法收敛性

现在要证明迭代求得的EM算法(含隐变量的参数估计) - 图9序列会使得对应的EM算法(含隐变量的参数估计) - 图10是单调递增的,也就是说要证明EM算法(含隐变量的参数估计) - 图11。首先我们有:

EM算法(含隐变量的参数估计) - 图12

接下来等式两边同时求关于EM算法(含隐变量的参数估计) - 图13的期望:

EM算法(含隐变量的参数估计) - 图14

这里我们定义了EM算法(含隐变量的参数估计) - 图15,称为Q函数(Q function),这个函数也就是上面的概述中迭代公式里用到的函数,因此满足EM算法(含隐变量的参数估计) - 图16
接下来将上面的等式两边EM算法(含隐变量的参数估计) - 图17分别取EM算法(含隐变量的参数估计) - 图18EM算法(含隐变量的参数估计) - 图19并相减:

EM算法(含隐变量的参数估计) - 图20

我们需要证明EM算法(含隐变量的参数估计) - 图21,同时已知EM算法(含隐变量的参数估计) - 图22,现在来观察EM算法(含隐变量的参数估计) - 图23

EM算法(含隐变量的参数估计) - 图24

因此得证EM算法(含隐变量的参数估计) - 图25。这说明使用EM算法迭代更新参数可以使得EM算法(含隐变量的参数估计) - 图26逐步增大。
另外还有其他定理保证了EM的算法收敛性。首先对于EM算法(含隐变量的参数估计) - 图27序列和其对应的对数似然序列EM算法(含隐变量的参数估计) - 图28有如下定理:
①如果EM算法(含隐变量的参数估计) - 图29有上界,则EM算法(含隐变量的参数估计) - 图30收敛到某一值EM算法(含隐变量的参数估计) - 图31
②在函数EM算法(含隐变量的参数估计) - 图32EM算法(含隐变量的参数估计) - 图33满足一定条件下,由EM算法得到的参数估计序列EM算法(含隐变量的参数估计) - 图34的收敛值EM算法(含隐变量的参数估计) - 图35EM算法(含隐变量的参数估计) - 图36的稳定点。

三、EM的算法的导出

  1. ELBO+KL散度的方法

    EM算法(含隐变量的参数估计) - 图37

因此我们得出EM算法(含隐变量的参数估计) - 图38,由于KL散度恒EM算法(含隐变量的参数估计) - 图39,因此EM算法(含隐变量的参数估计) - 图40,则EM算法(含隐变量的参数估计) - 图41就是似然函数EM算法(含隐变量的参数估计) - 图42的下界。
使得EM算法(含隐变量的参数估计) - 图43时,就必须有EM算法(含隐变量的参数估计) - 图44,也就是EM算法(含隐变量的参数估计) - 图45时。
在每次迭代中我们取EM算法(含隐变量的参数估计) - 图46,就可以保证EM算法(含隐变量的参数估计) - 图47EM算法(含隐变量的参数估计) - 图48相等,也就是:

EM算法(含隐变量的参数估计) - 图49

也就是说EM算法(含隐变量的参数估计) - 图50EM算法(含隐变量的参数估计) - 图51都是关于EM算法(含隐变量的参数估计) - 图52的函数,且满足EM算法(含隐变量的参数估计) - 图53,也就是说EM算法(含隐变量的参数估计) - 图54的图像总是在EM算法(含隐变量的参数估计) - 图55的图像的上面。对于EM算法(含隐变量的参数估计) - 图56,我们取EM算法(含隐变量的参数估计) - 图57,这也就保证了只有在EM算法(含隐变量的参数估计) - 图58EM算法(含隐变量的参数估计) - 图59EM算法(含隐变量的参数估计) - 图60才会相等,因此使EM算法(含隐变量的参数估计) - 图61取极大值的EM算法(含隐变量的参数估计) - 图62一定能使得EM算法(含隐变量的参数估计) - 图63。该过程如下图所示:
image.png
ELBO
然后我们观察一下EM算法(含隐变量的参数估计) - 图65取极大值的过程:

EM算法(含隐变量的参数估计) - 图66

由此我们就导出了EM算法的迭代公式。

  1. ELBO+Jensen不等式的方法

首先要具体介绍一下Jensen不等式:对于一个凹函数 EM算法(含隐变量的参数估计) - 图67(国内外对凹凸函数的定义恰好相反,这里的凹函数指的是国外定义的凹函数),我们查看其图像如下:
image.png
Jensen不等式

EM算法(含隐变量的参数估计) - 图69

接下来应用Jensen不等式来导出EM算法:

EM算法(含隐变量的参数估计) - 图70

这里应用了Jensen不等式得到了上面出现过的EM算法(含隐变量的参数估计) - 图71,这里的EM算法(含隐变量的参数估计) - 图72函数也就是EM算法(含隐变量的参数估计) - 图73函数,显然这是一个凹函数。当EM算法(含隐变量的参数估计) - 图74这个函数是一个常数时会取得等号:

EM算法(含隐变量的参数估计) - 图75

这种方法到这里就和上面的方法一样了,总结来说就是:

EM算法(含隐变量的参数估计) - 图76

参考:
博客1
博客2
机器学习——聚类