EM 算法
极大似然估计要解决的问题是,当有一堆观测数据
# 1. EM 算法的引入
# 1.1 三硬币模型的例子
一个介绍 EM 算法的例子。
三硬币模型 假设有 3 枚硬币:A、B、C,它们正面朝上的概率分别是
我们只能观察最终的结果,但不知道每一次实验中是 A 朝上还是朝下,也就是不知道投的是 B 硬币还是 C 硬币。现在的任务是估计三枚硬币分别朝上的概率
解 我们知道将一枚硬币抛出,朝上朝下是服从二项分布的。现在我们:
- 令 Y 表示 observable variable,表示一次试验的结果是 0 或 1。
- 硬币 A 的投掷结果记为 Z,表示 latent variable,它无法直接被观测到。
- 模型参数
,即这三枚硬币朝上的概率,我们的任务就是要估计它的值。
注意,随机变量 Y 是可以观测的,而 Z 无法被观测到,也就是说我们不知道在一次试验中 A 的投掷结果,只知道最终 B 或 C 的投掷结果。
观测到的数据表示为
上面的式子就是对每个观测数据的连乘。按照极大似然估计的方法,往往转换成对数的形式,因此对数似然函数写成:
而我们的目标就是找出能够最大化
由于里面存在 latent variable,这个问题是没有解析解的,只有通过迭代的方法来求解。EM 算法就是可以用于求解这个问题的一种迭代算法。
无法直接求解的原因在于,这里的 P(Y) 根本不知道是什么,因为所观测到的样本非常复杂,所以我们可以先假定它服从某个模型,即有一个生成模型,z -> y,然后
。通过人为引入一个 latent variable z,然后做出 Z -> Y 的假设,这样求 就使得问题具体化了。
# 1.2 EM 算法
一般地,用 Y 表示观测随机变量的数据,Z 表示隐随机变量的数据。Y 和 Z 连在一起称为完全数据(complete-data),观测数据 Y 又称为不完全数据(incomplete-data)。
EM 算法通过迭代求出极大似然估计
首先介绍一个概念:Q function:
Q function
完全数据的对数似然函数
- Q function 是 EM 算法的核心,最好把 Q function 的定义背下来。
- 这里之所以对 Z 积分,主要是可以实现将隐变量 z 给去掉。
下面正式介绍 EM 算法:
EM Algorithm
input:观测变量数据 Y,隐变量数据 Z,联合分布
output:模型参数
- 选择参数的初值
,开始迭代。 - Expectation:记
为第 i 论迭代参数 的估计值,在第 i+1 次迭代的 E 步,写出 Q function: 。 - Maximization:求能够 maximize
的 ,作为本轮(即第 i+1 论)的参数估计值 :
- 重复 E 步和 M 步,直到收敛。
下面对 EM 算法做几点说明:
- EM 算法是初值敏感的,即选择不同的初值可能得到不同的参数估计值。
- Q function 中,
的第一个变元表示要极大化的参数,是一个变量,而第二个变元表示参数的当前估计值,是一个常数。 - 可以证明,这个迭代过程是可以收敛的。
- EM 算法的计算过程中,迭代停止的条件一般是设置一个阈值,当
的估计值变化小于阈值时停止,或者:
# 1.3 EM 算法的导出
见原书
# 2. EM 算法的收敛性
反正是可以收敛的,证明也不难,见原书。