EM算法推导与三硬币模型

EM算法推导与三硬币模型


EM算法概览

EM算法是一种极大似然法,专门处理含有隐变量的概率模型。隐变量不能直接观测得到,为了得到对隐变量分布的一个近似估计,EM算法分两步进行迭代求解:

  1. E步:使用当前模型参数求出一个期望
  2. M步:对期望求极大
    一个使用EM算法求解的例子:
    有三枚硬币A,B,C,先投掷A,如果是正面就投掷B,如果是反面就投掷C,若我们只能观测到最后的投掷结果(B或者C的结果),如何估算三颗硬币的正面率?
    在这里面,每次A的结果不能从观测变量中直接得到,因此A是一个隐变量。以下部分会先推导EM算法,然后将其应用在三硬币问题上。

EM算法推导

首先考虑最一般化的极大似然,我们在获得观测变量$Y$时,希望最大化$Y$出现的概率,即极大化目标函数

其中,$\theta$是模型的参数,$Z$是隐变量。上面使用到了全概率公式和条件概率公式。我们使用迭代的方式逐步更新$\theta$的值,试图在迭代的过程中增大$L(\theta)$的值。那么如何更新$\theta$呢?假设我们现在已经进行了i轮的迭代,当前的模型参数为$\theta^{(i)}$,我们来考虑一下迭代后的目标函数$L(\theta)$和迭代前的目标函数$L(\theta^{(i)})$的差值(注:$L(\theta^{(i)})$是指使用当前模型的参数计算出来的目标函数值)

我们可以利用Jensen不等式来进行一个不等式放缩,对于一个凸函数, Jensen不等式为:

或者

那么原式

其中,第一个等号在原式子额外添加了一个分子和分母,分子部分作为概率分布,分母和原有部分组成一个值,那么整个部分变成了一个求解期望的式子,利用Jensen不等式可以得到下一行的前半部分。第三行后半部分可以添加一个乘积的原因是,是一个概率分布,加起来为1,而$\log P\left(Y | \theta^{(i)}\right)$中不含有$Z$,所以可以和前面的求和乘起来(相当于一个常数)。整理一下上面的结论,我们有

引入一个辅助函数,
那么有

说明$B(\theta,\theta^{(i)})$是$L(\theta)$的一个下界,并且有

因此我们的问题变成了,如何最大化$B(\theta,\theta^{(i)})$,只要可以提高$B(\theta,\theta^{(i)})$的值,那么就能提高$L(\theta)$的值。(注:$\theta^{i}$是已知参数或者说常数,代表当前的变量的值,$\theta$是变量,我们需要求解$\theta$的极值点)。记迭代后的值为$\theta^{(i+1)}$,

省去和$\theta$无关的常数,变形如下

我们记,称为Q函数,至此我们就可以根据不同的任务设计好Q函数,然后求导使得Q函数极大化,增加Q函数的值,从而增加极大似然函数的值。

另一方面,Q函数也可以看做是直接对$Y,Z$的极大似然函数求期望得到,即

给定$Y$,$Z$是随机变量,我们求目标极大似然函数的期望,并希望得到的极大似然函数最大,实际上问题也变成了求Q函数的极大。

整个EM算法的框架如下:

输入:观察变量Y,隐变量数据Z,联合分布$P(Y,Z|\theta)$,条件分布$P(Z|Y,\theta)$
模型参数:$\theta$
(1) 初始化参数值$\theta^{(0)}$,开始迭代
(2) E步:记$\theta^{(i)}$为当前模型的参数估计值,在第i+1次迭代的E步,我们计算Q函数

E步的输出是当前的Q函数,其中的$\theta$是待优化的参数
(3)M步:求Q函数的极值点使其极大化,得到新的参数

(4) 重复(2)(3)直到收敛
注:EM算法对初始值敏感,不同的初始值可能导致不同的结果,EM算法也无法保证找到全局最优点

下面针对三硬币模型进行一个EM算法的应用讲解

三硬币模型

问题描述

有三枚硬币A,B,C,先投掷A,如果是正面就投掷B,如果是反面就投掷C,若我们只能观测到最后的投掷结果(B或者C的结果)而不能直到投掷的过程,如何估算三颗硬币的正面率?

形式化

我们将A,B,C正面朝上的概率分别设为$\pi,p,q$,最后的观察结果随机变量记为$Y(Y=0,1)$,变量$Z$表示硬币A的结果,$Z=0/1$。

建立概率模型

目标函数

首先我们的极大似然函数为
其中$n$为样本数量,$j$为样本编号。取了log之后为

由上面的推导可以知道,极大化$L(\theta)$可以通过极大化Q函数得到

条件概率

我们先来计算$P\left(Z | Y, \theta^{(i)}\right)$,

联合分布

关于$P(Y, Z | \theta)$,我们有

特别的,我们有

求解Q函数(E步)

由上面的结果得

记$u_j^{(i)}=P\left(Z=1 | Y=y_j, \theta^{(i)}\right)$,那么
$P\left(Z=0 | Y=y_j, \theta^{(i)}\right) =1-P\left(Z=1 | Y=y_j, \theta^{(i)}\right)=1-u_j^{(i)}$

我们要优化的Q函数为

求Q函数极大(M步)

我们分别求参数$\pi,p,q$对Q函数的偏导

令$\frac{\partial Q}{\partial \pi}=0$,得

继续求$ p $的偏导

令$\frac{\partial Q}{\partial p}=0$,得

同理,我们得到

至此,我们的所有参数更新完成,进入下一轮迭代,EM算法一轮完成。

参考文献

  1. 《统计学习方法》,李航