EM算法公式推导
EM 算法是一种用来进行含有隐变量的概率生成模型参数估计的迭代算法。
EM算法步骤
EM 算法通过迭代求
算法流程:
- 输入:观测变量数据 ,隐变量数据 ,联合分布 ,条件分布:
- 输出:模型参数
- 步骤
- 选择参数的初值
- E 步:记 为第 次迭代参数 的估计值,在第 次迭代的 E 步,计算:
这里 为给定观测数据 和当前参数估计 下隐变量数据 - M 步:求使 极大化的 ,确定第 次迭代的参数估计值 :
- 重复 2、3 两步,直到收敛。
函数 是 EM 算法的核心,称为
EM算法收敛性证明
EM 迭代算法终归要求的是 的极大似然估计,因此,要证明它的收敛性,即要证明:
下面开始证明:
接下来我们同时对等式两边乘 在对 求积分:
即,左边相当于没变。
分别将上式两项记为 和 。我们要证的是 ,这里可以通过证明
来得到。对于 ,明显是通过迭代过程的 可以保证。因此,我们只需证明 :
发现最后的形式是 和
上面我们是给出最终的公式,然后证明它的收敛性,即 ,这样来说明 EM 算法确实可以以迭代的形式来最大化
EM算法的导出——KL散度
我们再回顾一下整个算法的设定:
- 观测数据:
- 隐变量:
- 完整数据:
- 参数:
- MLE:
- EM 公式
E 步求对数条件联合概率 关于后验 的期望,M 步选择一个新的 使得上述期望达到最大。从而迭代地使得
下面开始推导公式的导出。我们还是从对数似然 出发:
- 第一步先从似然,引入隐变量
- 然后通过对数的性质写开;
- 引入关于 的概率分布 ,两个对数里面同时除
- 然后两边同时求关于
- 左边原来就与
- 右边也求期望后,后一项是 对 的相对熵,也就是 KL 散度。而前一项我们通常称为 ELBO (Evidence Lower BOund)证据下界。很明显的, KL 散度是恒正的,因此前一项 ELBO 是 的一个下界。当且仅当后一项相对熵为零,即两个分布完全相同
EM 算法的思想就是通过使得 ELBO 取得最大,从而使得对数似然
- 当
- 在经过一次变换后,我们发现中括号中后面一项与 无关,因此丢掉。注意,在迭代算法中 都是常数,
- 最终得到了 EM 的公式
EM算法的导出——Jensen不等式
下面我们再从 Jensen 不等式的角度来进行推导。
先来介绍一下 Jensen 不等式,这里只介绍 EM 算法推导需要用到的程度:
设 ,对于一个凸函数 来说,有
我们如果取 ,则有 。即对凸函数来说,均值的函数值大于等于函数值的均值。而在概率论中,均值就是期望,即有
下面开始推导:
- 同样是引入隐变量 , 这次转换为对联合概率分布积分的形式;
- 变形,上下同乘 ;
- 我们通常讲积分写成期望的形式;
- log 函数是凸函数,这里使用 Jensen 不等式,其实这里得到的期望就是 ELBO
这里的等号当且仅当 是常数时取到,即:
- 做一个变形;
- 等式两边同时对
- 左边就是 1,右边把
- 得到 ,代回到原式中:
可以看到 就是后验
Ref