EM算法详细推导(启发性)

EM算法

期望最大化算法,是寻找具有潜在变量地概率模型地最大似然解的一种通用的方法。下面介绍一般形式的EM算法的推导过程。

我们把所有的观测变量联合起来记作X={x1,x2,...,xN}X=\{x_1, x_2, ..., x_N\},将所有的隐含变量记作Z={z1,z2,xN}Z=\{z_1, z_2, x_N\}。这里只考虑ZZ的状态是离散值的情况,我们假设每个样本xnx_n点由对应的隐含变量znz_n决定。于是对于生成式模型,我们希望模型的参数集θ\theta能够使得p(Xθ)p(X|\theta)的概率达到最大。因此很容易想到最大化模型的似然函数就能解出最优的参数集θ\theta

我们通过计算(X,Z)(X,Z)的联合概率密度分布计算XX的边缘概率密度:
(1)p(Xθ)=Zp(X,Zθ) p(X|\theta) = \sum _Z p(X,Z|\theta) \tag{1}
对上式使用极大似然法求解参数θ\theta的最优解过程中,需要对左右同时取对数,观察右边部分lnZp(X,Zθ)ln \sum _Z p(X, Z|\theta),我们会发现对潜在变量的求和出现在了对数运算内部,这阻止了对数运算直接作用于联合概率分布,使得最大似然解的形式更加复杂。

问题的转化

后面的介绍中,我们称{X,Z}\{X, Z\}为完整的数据集,并且我们称实际观测的数据集XX为不完整的,完整数据集的对数似然函数为ln p(X,Zθ)ln \ p(X,Z|\theta),我们假定这个完整数据集的对数似然函数进行最大化是很容易的。

下面介绍将最大化p(Xθ)p(X|\theta)的目标转化成最优化p(X,Zθ)p(X,Z|\theta)的过程。我们引入一个定义在潜在变量上的分布q(Z)q(Z),对于任意的q(Z)q(Z),下面的分解式成立:
(2)ln p(Xθ)=L(q,θ)+KL(qp) ln\ p(X|\theta)=\mathcal{L}(q,\theta)+KL(q||p)\tag{2}
其中,我们定义了
(3)L(q,θ)=Zq(Z)ln{p(X,Zθ)q(Z)}KL(qp)=Zq(Z)ln{p(ZX,θ)q(Z)} \mathcal{L}(q, \theta) = \sum _Z q(Z)ln\{\frac {p(X,Z|\theta)}{q(Z)}\} \\ KL(q||p) = - \sum _Z q(Z) ln \{\frac{p(Z|X,\theta)}{q(Z)}\} \tag{3}

证明公式(2)

利用概率的乘积规则p(X,Zθ)=p(ZX,θ) p(Xθ)p(X,Z|\theta)=p(Z|X,\theta) \ p(X|\theta),于是ln (X,Zθ)=ln p(ZX,θ)+ln p(Xθ)ln\ (X,Z|\theta) = ln \ p(Z|X,\theta) + ln\ p(X|\theta),然后代入L(q,θ)\mathcal{L}(q, \theta)的表达式。这得到了两项,一项消去了KL(qp)KL(q||p),而另外一项给出了所需的对数似然函数ln p(Xθ)ln\ p(X|\theta),其中我们用到了归一化的概率分布q(Z)q(Z)的积分等于1的事实。

我们来观察公式(2),右边的两项都是关于变量q(Z)q(Z)和模型参数集{θ}\{\theta\}的的函数,右边的第二项表示的是KL散度KL(q,θ)KL(q, \theta)q(Z)q(Z)和后验概率分布p(X,Zθ)p(X,Z|\theta)之间的KullbackLeiblerKullback-Leibler散度。我们知道KullbackLeiblerKullback-Leibler散度满足KL(q,θ)0KL(q, \theta) \ge 0,当且仅当q(Z)=p(ZX,θ)q(Z) = p(Z|X, \theta)时等号成立。因此从公式(2)中我们可以得到一个结论:L(q,θ)\mathcal{L} (q, \theta)ln p(Xθ)ln \ p(X|\theta)的一个下界。因此,既然ln p(Xθ)ln \ p(X|\theta)无法使用极大似然法得到一个解析解,那么只要找到一种方法让这个下界不断接近ln p(Xθ)ln \ p(X|\theta),就能找到使得似然函数p(Xθ)p(X|\theta)最大化的参数集θ\theta。下面介绍这些方法中一个通用的方法:EM算法。

EM算法的实现过程

EM算法是一个两阶段的迭代优化算法,用于寻找ln p(Xθ)ln \ p(X|\theta)最大似然解θopt\theta ^{opt}。转化公式(2)包含两个参数{q(Z),θ}\{q(Z), \theta\},假设参数向量的当前值为θ\theta ^{旧},EM算法分类两个步骤:

  • E步骤:固定θ\theta ^{旧}q(Z)q(Z)分布被设置为当前参数值θ\theta ^{旧}下的后验概率分布p(ZX,θ)p(Z|X, \theta ^{旧}),(2)式中的第二项KL(qp)=Zq(Z)ln{p(ZX,θ)q(Z)}KL(q||p)= - \sum _Z q(Z) ln \{\frac{p(Z|X,\theta)}{q(Z)}\}的取值为0。因此ln p(Xθ)=L(q,θ)ln \ p(X|\theta ^{旧}) = \mathcal{L}(q, \theta ^{旧}),这使得θ\theta ^{旧}固定的情况下,下界上移到对数似然函数值相同的位置。θ\theta ^{旧}在未达到最大似然解θopt\theta ^{opt}之前,ln p(Xθ)ln p(Xθopt)ln \ p(X|\theta ^{旧}) \le ln \ p(X|\theta ^{opt}),于是我们通过M步骤更新θ\theta ^{旧}θ\theta ^{新},使得θ\theta ^{新}不断地逼近θopt\theta ^{opt}

EM算法详细推导(启发性)

  • M步骤:保持E步骤中计算得到的q(Z)=p(ZX,θ)q(Z)=p(Z|X, \theta ^{旧})固定,使下界L(q,θ)\mathcal {L}(q, \theta)关于θ\theta进行最大化,得到某个新值θ\theta ^{新}。这会使下界L\mathcal{L}增大(除非达到了极大值),这会使得对应的对数似然函数ln p(Xθ)ln \ p (X|\theta^{新})增大。原因是当前潜在变量的分布q(Z)q(Z)由旧的参数值确定并且保持了固定,因此它不会等于新的后验概率分布p(ZX,θ)p(Z|X, \theta ^{新}),从而KL散度不为0。于是对数似然函数的增加量大于下界的增加量(下界增加量+新的KL散度值)。

EM算法详细推导(启发性)

M步骤我们推导了通过对下界L(q,θ)\mathcal{L}(q, \theta)进行最大化,更新迭代得到的θ\theta ^{新}对应的对数似然函数ln p(XZ,θ)>ln p(XZ,θ)ln \ p(X|Z, \theta ^{新}) > ln \ p(X|Z, \theta ^{旧}),我们只要将E步骤中旧的参数θ\theta ^{旧}用M步骤的θ\theta ^{新}代替,如此持续迭代,就能使参数$\theta 不断逼近最优解\theta ^{opt}$。

最大化下界L(q,θ)\mathcal{L}(q, \theta)

我们将注意力放在M步骤中L(q,θ)\mathcal{L}(q, \theta)的最大化上,使用q(Z)=p(ZX,θ)q(Z)=p(Z|X, \theta ^{旧})代入下界函数L(q,θ)\mathcal{L}(q, \theta)得到:
(4)L(q,θ)=Zp(ZX,θ)ln p(X,Zθ)Zp(ZX,θ)ln p(ZX,θ)=Q(θ,θ)+ \mathcal{L}(q, \theta) = \sum _Z p(Z|X, \theta ^{旧}) ln \ p(X, Z |\theta) - \sum _Z p(Z|X, \theta _{旧}) ln \ p(Z|X, \theta ^{旧}) \\ =\mathcal{Q}(\theta, \theta ^{旧})+常数 \tag{4}
其中,常数就是分布qq的熵,与θ\theta无关。观察公式(4)可知,M步骤后下界的增大值实际上等于完整数据似然函数的期望,我们记作Q(θ,θ)\mathcal{Q}(\theta, \theta _{旧})。最大化L(q,θ)\mathcal{L}(q, \theta)又转化成了最大化Q(θ,θ)\mathcal{Q}(\theta, \theta ^{旧}),至此我们就将最大化p(Xθ)p(X|\theta)目标转化成了关于p(X,Zθ)p(X, Z|\theta)的问题,这样做的好处是使得我们要优化的θ\theta只出现在对数运算内部,如果联合概率分布p(X,Zθ)p(X,Z|\theta)由指数族分布的成员组成,或者其乘积组成,那么对数运算会抵消指数运算,大大简化了运算的复杂度,解决了原来无法得到θ\theta解析解的问题。

Q(θ,θ)\mathcal{Q}(\theta, \theta ^{旧})的最大化

经过上文的推导,我们对问题进行了两次转化,第一次在M步骤中将最优化ln p(Xθ)ln \ p(X|\theta)的目标转化成最优化下界L(q,θ)\mathcal{L}(q, \theta)的问题,第二次转化是将最优化下界L(q,θ)\mathcal{L}(q, \theta)的目标转化成最优化Q(θ,θ)\mathcal{Q}(\theta, \theta _{旧})的目标。

我们来讨论独立同分布数据集的情况,XXNN个数据点{xn}\{x_n\}组成,而ZZ由对应的N个潜在变量{zn}\{z_n\}组成,其中n={1,2,...,N}n=\{1,2,...,N\}。根据独立性假设,我们有p(X,Z)=np(xn,zn)p(X, Z)= \prod _ n p(x_n, z_n),并通过关于{zn}\{z_n\}边缘概率分布,我们有P(X)=np(xn)P(X)=\prod _n p(x_n),使用加和规则和乘积规则,我们看到E步骤计算的后验概率分布的形式为:
(5)p(ZX,θ)=P(X,Zθ)Zp(X,Zθ)=n=1Np(xn,znθ)Zn=1Np(xn,znθ)=n=1Np(znxn,θ) p(Z|X,\theta)=\frac {P(X, Z |\theta)}{\sum _Z p(X, Z|\theta)} =\frac{\prod _{n=1} ^{N} p(x_n, z_n|\theta)}{\sum _Z \prod _{n=1} ^{N} p(x_n, z_n|\theta)} =\prod _{n=1}^{N}p(z_n|x_n, \theta) \tag{5}
因此后验概率分布也可以关于nn进行分解。在高斯混合模型中,这个结果意味着混合分布的每个分量对于一个特定的数据点xnx_n的”责任“只与xnx_n的值和混合分量的参数θ\theta有关,而与其他数据点无关。

从参数空间角度理解EM算法

EM算法详细推导(启发性)

如上图所示,红色曲线表示(不完整数据)的对数似然函数,它的最大值是我们想要的。我们首先选择某一个初始的参数θ\theta ^{旧},然后第一个E步骤中,我们计算潜在变量上的后验概率分布p(ZX,θ)p(Z|X, \theta ^{旧}),我们使用p(ZX,θ)p(Z|X, \theta ^{旧})代替q(Z)q(Z)代入进而得到了一个较小的下界函数L(q,θold)\mathcal{L}(q, \theta ^{old}),用蓝色曲线表示,下界和对数似然函数在θold\theta ^{old}处相切。并且这个下界函数L(q,θold)\mathcal{L}(q, \theta ^{old})是一个凹函数,对于指数族分布的混合分布来说,有唯一的最大值,注意前面证明过下界函数L(q,θold)\mathcal{L}(q, \theta ^{old})的最大值始终小于似然函数的最大值。因此在M步骤中,下界函数L(q,θ)\mathcal{L}(q, \theta)被最大化,得到了新的参数θnew\theta ^{new},这个参数给出了比θold\theta ^{old}处更大的似然函数值。接下来的E步骤构建一个新的下界,它在θnew\theta ^{new}处和似然函数相切,用绿色曲线表示。重复上面的步骤直到下界函数的最大值的增加率小于某个阈值。