expectation_maximization
Table of Contents
概率模型有时既有 “观测变量” ,又含有 “隐变量或潜在变量” 。当存在后者时,不能直接使用 MLE这样的方法进行参数估计,需要引入EM进行参数估计。 EM算法就是含有隐变量的概率模型参数的最大似然估计法(或最大后验概率估计法)。
#
例子 – 三硬币模型
假设有3枚硬币,分别记作 A, B, C。其抛出正面的概率分别是 $\pi$, $p$ 和 $q$ 。进行如下抛硬 币试验:先抛硬币A,根据其结果选择硬币B或者硬币C(正面选硬币B,反面选硬币A);然后抛选出 的硬币,其抛硬币的结果,出现正面记作1,出现反面记作0;独立重复 $n$ 次试验。观测结果如下 ($n=10$):
1,1,0,1,0,0,1,0,1,1
假设只能观察到抛硬币的结果,不能观测抛硬币过程。问:如何估计三枚硬币正面出现的概率,即三 硬币模型的参数。
##
建模
三硬币模型可以表示为:
$$ \begin{eqnarray} P(y|\theta) &=& \sum_{z} P(y, z | \theta) = \sum_{z} P(z|\theta)P(y|z,\theta) \\ &=& \pi p^{y}(1-p)^{1-y} + (1 - \pi) q^{y}(1-q)^{1-y} \end{eqnarray} $$
其中,随机变量 $y$ 是观测变量,表示一次试验观测的结果是1或0;随机变量 $z$ 是隐变量,表示 未观测到的抛硬币A的结果;$\theta=(\pi, p, q)$ 是模型参数。这一模型是前述$n$次试验数据的 生成模型。
将观测数据表示为 $Y = (Y_1, Y_2, \dots, Y_n)$,将未观测数据表示为 $Z = (Z_1, Z_2, \dots, Z_n)$,则观测数据的似然函数为
$$ \begin{eqnarray} P(Y|\theta) &=& \sum_{z} P(Z|\theta)P(Y|Z,\theta) \\ &=& \prod^{n}_{j=1}[\pi p^{y_j}(1-p)^{1-y_j} + (1 - \pi) q^{y_j}(1-q)^{1-y_j} \end{eqnarray} $$
求模型参数 $\theta=(\pi, p, q)$ 的极大似然估计,即
$$ \hat{\theta} = \arg\max_{\theta} \log P(Y|\theta) $$
这个问题没有解析解,需要通过EM算法进行迭代求解。
##
EM算法迭代步骤
EM算法通过迭代求 $L(\theta) = \log P(Y|\theta)$ 的最大似然估计。每次迭代包含两步:E步,求期望;M步,求最大化。
EM算法步骤清单
输入:观测变量数据 $Y$,隐变量数据 $Z$,联合分布 $P(Y,Z|\theta)$,条件分布 $P(Z|Y, \theta)$;
输出:模型参数 $\theta$ 。
选择参数初始值 $\theta^{(0)}$ ,开始迭代;
E步:记 $\theta^{(i)}$ 为第$i$次迭代参数 $\theta$ 的估计值,在第$i+1$次迭代的E步,计算 $$ \begin{eqnarray} Q(\theta, \theta^{(i)}) &=& E_{z} [\log P(Y,Z|\theta) | Y, \theta^{(i)}] \\ &=& \sum_{z} \log P(Y,Z|\theta) P(Z|Y, \theta^{(i)}) \end{eqnarray} $$ 这里,$P(Z|Y, \theta^{(i)}$ 是在给定观测数据 $Y$ 和当前的参数估计 $\theta^{(i)}$ 下隐变量数据 $Z$ 的条件概率分布;
M步:求使得 $Q(\theta, \theta^{(i)})$ 最大化的 $\theta$ ,确定第 $i+1$ 次迭代的参数的估计值 $\theta^{(i)}$ $$ \theta^{(i)} = \arg\max_{\theta} Q(\theta, \theta^{(i)}) $$
重复第2步和第3步,直到收敛。