EM算法公式推导

EM 算法是一种用来进行含有隐变量的概率生成模型参数估计的迭代算法。

EM算法步骤

EM 算法通过迭代求 EM聚类 R em聚类参数迭代公式推导_算法

算法流程:

  • 输入:观测变量数据 EM聚类 R em聚类参数迭代公式推导_迭代_02,隐变量数据 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_03,联合分布 EM聚类 R em聚类参数迭代公式推导_概率论_04 ,条件分布:EM聚类 R em聚类参数迭代公式推导_EM聚类 R_05
  • 输出:模型参数 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_06
  • 步骤
  1. 选择参数的初值 EM聚类 R em聚类参数迭代公式推导_机器学习_07
  2. E 步:记 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_08 为第 EM聚类 R em聚类参数迭代公式推导_概率论_09 次迭代参数 EM聚类 R em聚类参数迭代公式推导_迭代_10 的估计值,在第 EM聚类 R em聚类参数迭代公式推导_概率论_11 次迭代的 E 步,计算:
    EM聚类 R em聚类参数迭代公式推导_概率论_12
    这里 EM聚类 R em聚类参数迭代公式推导_机器学习_13 为给定观测数据 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_14 和当前参数估计 EM聚类 R em聚类参数迭代公式推导_迭代_15 下隐变量数据 EM聚类 R em聚类参数迭代公式推导_概率论_16
  3. M 步:求使 EM聚类 R em聚类参数迭代公式推导_算法_17 极大化的 EM聚类 R em聚类参数迭代公式推导_迭代_10 ,确定第 EM聚类 R em聚类参数迭代公式推导_概率论_19 次迭代的参数估计值 EM聚类 R em聚类参数迭代公式推导_迭代_20 :
    EM聚类 R em聚类参数迭代公式推导_概率论_21
  4. 重复 2、3 两步,直到收敛。

函数 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_22 是 EM 算法的核心,称为 EM聚类 R em聚类参数迭代公式推导_算法_23

EM算法收敛性证明

EM 迭代算法终归要求的是 EM聚类 R em聚类参数迭代公式推导_算法_24 的极大似然估计,因此,要证明它的收敛性,即要证明:
EM聚类 R em聚类参数迭代公式推导_机器学习_25
下面开始证明:
EM聚类 R em聚类参数迭代公式推导_机器学习_26
接下来我们同时对等式两边乘 EM聚类 R em聚类参数迭代公式推导_机器学习_27 在对 EM聚类 R em聚类参数迭代公式推导_机器学习_28 求积分:
EM聚类 R em聚类参数迭代公式推导_迭代_29
即,左边相当于没变。
EM聚类 R em聚类参数迭代公式推导_机器学习_30
分别将上式两项记为 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_22EM聚类 R em聚类参数迭代公式推导_迭代_32 。我们要证的是 EM聚类 R em聚类参数迭代公式推导_迭代_33 ,这里可以通过证明
EM聚类 R em聚类参数迭代公式推导_迭代_34
来得到。对于 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_22 ,明显是通过迭代过程的 EM聚类 R em聚类参数迭代公式推导_机器学习_36 可以保证。因此,我们只需证明 EM聚类 R em聚类参数迭代公式推导_概率论_37
EM聚类 R em聚类参数迭代公式推导_EM聚类 R_38
发现最后的形式是 EM聚类 R em聚类参数迭代公式推导_概率论_39EM聚类 R em聚类参数迭代公式推导_EM聚类 R_40

上面我们是给出最终的公式,然后证明它的收敛性,即 EM聚类 R em聚类参数迭代公式推导_迭代_33 ,这样来说明 EM 算法确实可以以迭代的形式来最大化 EM聚类 R em聚类参数迭代公式推导_概率论_42

EM算法的导出——KL散度

我们再回顾一下整个算法的设定:

  • 观测数据:EM聚类 R em聚类参数迭代公式推导_迭代_02
  • 隐变量:EM聚类 R em聚类参数迭代公式推导_EM聚类 R_03
  • 完整数据:EM聚类 R em聚类参数迭代公式推导_概率论_45
  • 参数:EM聚类 R em聚类参数迭代公式推导_EM聚类 R_06
  • MLE:EM聚类 R em聚类参数迭代公式推导_EM聚类 R_47
  • EM 公式
    EM聚类 R em聚类参数迭代公式推导_概率论_48

E 步求对数条件联合概率 EM聚类 R em聚类参数迭代公式推导_算法_49 关于后验 EM聚类 R em聚类参数迭代公式推导_概率论_50 的期望,M 步选择一个新的 EM聚类 R em聚类参数迭代公式推导_迭代_51 使得上述期望达到最大。从而迭代地使得 EM聚类 R em聚类参数迭代公式推导_算法_24

下面开始推导公式的导出。我们还是从对数似然 EM聚类 R em聚类参数迭代公式推导_算法_24 出发:
EM聚类 R em聚类参数迭代公式推导_EM聚类 R_54

  • 第一步先从似然,引入隐变量 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_03
  • 然后通过对数的性质写开;
  • 引入关于 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_03 的概率分布 EM聚类 R em聚类参数迭代公式推导_算法_57 ,两个对数里面同时除 EM聚类 R em聚类参数迭代公式推导_算法_57
  • 然后两边同时求关于 EM聚类 R em聚类参数迭代公式推导_算法_57

EM聚类 R em聚类参数迭代公式推导_机器学习_60

  • 左边原来就与 EM聚类 R em聚类参数迭代公式推导_迭代_61

EM聚类 R em聚类参数迭代公式推导_迭代_62

  • 右边也求期望后,后一项是 EM聚类 R em聚类参数迭代公式推导_算法_57EM聚类 R em聚类参数迭代公式推导_EM聚类 R_05 的相对熵,也就是 KL 散度。而前一项我们通常称为 ELBO (Evidence Lower BOund)证据下界。很明显的, KL 散度是恒正的,因此前一项 ELBO 是 EM聚类 R em聚类参数迭代公式推导_机器学习_65 的一个下界。当且仅当后一项相对熵为零,即两个分布完全相同 EM聚类 R em聚类参数迭代公式推导_算法_66
    EM 算法的思想就是通过使得 ELBO 取得最大,从而使得对数似然 EM聚类 R em聚类参数迭代公式推导_机器学习_65

EM聚类 R em聚类参数迭代公式推导_算法_68

  • EM聚类 R em聚类参数迭代公式推导_概率论_69
  • 在经过一次变换后,我们发现中括号中后面一项与 EM聚类 R em聚类参数迭代公式推导_机器学习_70 无关,因此丢掉。注意,在迭代算法中 EM聚类 R em聚类参数迭代公式推导_算法_71 都是常数,EM聚类 R em聚类参数迭代公式推导_机器学习_70
  • 最终得到了 EM 的公式

EM算法的导出——Jensen不等式

下面我们再从 Jensen 不等式的角度来进行推导。

先来介绍一下 Jensen 不等式,这里只介绍 EM 算法推导需要用到的程度:

EM聚类 R em聚类参数迭代公式推导_迭代_73,对于一个凸函数 EM聚类 R em聚类参数迭代公式推导_机器学习_74 来说,有 EM聚类 R em聚类参数迭代公式推导_概率论_75

我们如果取 EM聚类 R em聚类参数迭代公式推导_机器学习_76 ,则有 EM聚类 R em聚类参数迭代公式推导_迭代_77 。即对凸函数来说,均值的函数值大于等于函数值的均值。而在概率论中,均值就是期望,即有 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_78

下面开始推导:
EM聚类 R em聚类参数迭代公式推导_迭代_79

  • 同样是引入隐变量 EM聚类 R em聚类参数迭代公式推导_迭代_61, 这次转换为对联合概率分布积分的形式;
  • 变形,上下同乘 EM聚类 R em聚类参数迭代公式推导_EM聚类 R_81
  • 我们通常讲积分写成期望的形式;
  • log 函数是凸函数,这里使用 Jensen 不等式,其实这里得到的期望就是 ELBO

这里的等号当且仅当 EM聚类 R em聚类参数迭代公式推导_迭代_82 是常数时取到,即:
EM聚类 R em聚类参数迭代公式推导_迭代_83

  • 做一个变形;
  • 等式两边同时对 EM聚类 R em聚类参数迭代公式推导_迭代_61
  • 左边就是 1,右边把 EM聚类 R em聚类参数迭代公式推导_迭代_61
  • 得到 EM聚类 R em聚类参数迭代公式推导_机器学习_86,代回到原式中:

EM聚类 R em聚类参数迭代公式推导_机器学习_87

可以看到 EM聚类 R em聚类参数迭代公式推导_算法_88 就是后验 EM聚类 R em聚类参数迭代公式推导_机器学习_27

Ref

  1. 统计学习方法——李航
  2. 机器学习白板推导