EM 算法的引入:三硬币模型
概率模型有时既含有观测变量(observable variable),又含有隐变量或潜在变量 (latent variable)。如果概率模型的变量都是观测变量, 那么给定数据,可以直接用极大似然估计法, 或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM 算法就是含有隐变量的概率模型参数的极大似然估计法, 或极大后验概率估计法。我们仅讨论极大似然估计,极大后验概率估计与其类似。
假设有 3 枚硬币,分别记作
进行如下掷硬币试验:
- 掷硬币 A,根据其结果选出硬币 B 或硬币 C,正面选硬币 B,反面选硬币
- 掷根据硬币 A选出的硬币(该次是掷硬币B或C),根据这次掷硬币的结果,出现正面记作
出现反面记作
- 独立地重复
次试验这里,观测结果如下:
假设只能观测到掷硬币的结果,不能观测郑硬币的过程(即我们不知道是掷了硬币B还是掷了硬币C)。问如何估计三硬币模型正面出现的概率,即三个硬币模型的参数。
解: 三个硬币模型可以写作
这里, 随机变量
注意:随机变量
将观测数据表示为
即
考虑求模型参数
这个问题没有解析解,只有通过迭代的方法求解,EM 算法就是可以用于求解这个问题的一种迭代算法。下面给出针对以上问题的 EM 算法,其推导过程省略。
EM 算法首先选取参数的初值, 记作
一般地,用
EM 算法通过迭代求
EM 算法过程
输入: 观测变量数据
输出:模型参数
这里,
(4) 重复第 (2) 步和第 (3) 步,直到收敘。
函数
定义:完全数据的对数似然函数
关于 EM 算法的几点说明
步骤(1):参数的初值选择可以是任意的,但需要注意EM算法对初值是敏感的。
步骤(2):
步骤 (3):
步骤 (4): 给出停止迭代的条件, 一般是对较小的正数
或
则停止迭代。
EM 算法的导出
上面叙述了 EM 算法。为什么 EM 算法能近似实现对观测数据的极大似然估计呢?下面通过近似求解观测数据的对数似然函数的极大化问题来导出 EM 算法,由此可以清楚地看出
我们面对一个含有隐变量的概率模型,目标是极大化观测数据 (不完全数据)
**注意:**这一极大化的主要困难是式中有未观测数据并有包含和 (或积分) 的对数。
事实上,EM 算法是通过迭代逐步近似极大化
利用 Jensen 不等式 ( Jensen inequality) 得到其下界:
note:
- Jensen inequality:
-
则
即函数
因此, 任何可以使
现在求
省去对
此式等价于 EM 算法的一次迭代,即求
EM算法是通过 不断求解下界的极大化逼近求解对数似然函数极大化的算法。 下图给出 EM 算法的直观解释。图中上方曲线为
李航老师:《统计学习》