1. 引言
EM算法是Dempster等人在1977年提出来的一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望;M步,求极大,因此,该算法也被称为期望极大算法,简称EM算法。
2. EM算法原理介绍
2.1 EM算法的原理
一般地,用YYY表示观测随机变量的数据,ZZZ表示隐随机变量的数据,YYY和ZZZ连在一起称为完全数据,观测数据YYY又称为不完全数据。假设给定观测数据YYY,其概率分布是P(Y∣θ)P(Y | \theta)P(Y∣θ),其中θ\thetaθ是需要估计的模型参数,那么不完全数据YYY的似然函数是P(Y∣θ)P(Y | \theta)P(Y∣θ),对数似然函数是L(θ)=logP(Y∣θ)L(\theta)=\log P(Y | \theta)L(θ)=logP(Y∣θ),假设YYY和ZZZ的联合概率分布是P(Y,Z∣θ)P(Y, Z | \theta)P(Y,Z∣θ),那么完全数据对数似然函数是logP(Y,Z∣θ)\log P(Y, Z | \theta)logP(Y,Z∣θ)。
EM算法就是通过极大化不完全数据YYY的对数似然函数来对参数θ\thetaθ进行估计,即极大化:
L(θ)=logP(Y∣θ)=log∑ZP(Y,Z∣θ)=log(∑ZP(Y∣Z,θ)P(Z∣θ)) \begin{aligned} L(\theta) &=\log P(Y | \theta)=\log \sum_{Z} P(Y, Z | \theta) \\ &=\log \left(\sum_{Z} P(Y | Z, \theta) P(Z | \theta)\right) \end{aligned} L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)P(Z∣θ))由于上式中含有未观测的数据和求和的对数,因此,没法直接对参数进行极大化估计。事实上,EM算法是通过迭代逐步近似极大化L(θ)L(\theta)L(θ),假设在第iii次迭代后θ\thetaθ的估计值是θ(i)\theta^{(i)}θ(i),我们希望估计值θ\thetaθ能使L(θ)L(\theta)L(θ)增加,即L(θ)>L(θ(i))L(\theta)>L\left(\theta^{(i)}\right)L(θ)>L(θ(i)),并逐步达到极大值,因此,可以直接考虑两者的差:
L(θ)−L(θ(i))=log(∑ZP(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i)) L(\theta)-L\left(\theta^{(i)}\right)=\log \left(\sum_{Z} P(Y | Z, \theta) P(Z | \theta)\right)-\log P\left(Y | \theta^{(i)}\right) L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))利用Jensen不等式可以得到其下界:
L(θ)−L(θ(i))=log(∑ZP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i)))−logP(Y∣θ(i))⩾∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))−logP(Y∣θ(i))=∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(i)) \begin{aligned} L(\theta)-L\left(\theta^{(i)}\right) &=\log \left(\sum_{Z} P\left(Z | Y, \theta^{(i)}\right) \frac{P(Y | Z, \theta) P(Z | \theta)}{P\left(Z | Y, \theta^{(i)}\right)}\right)-\log P\left(Y | \theta^{(i)}\right) \\ & \geqslant \sum_{Z} P\left(Z | Y, \theta^{(i)}\right) \log \frac{P(Y | Z, \theta) P(Z | \theta)}{P\left(Z | Y, \theta^{(i)}\right)}-\log P\left(Y | \theta^{(i)}\right) \\ &=\sum_{Z} P\left(Z | Y, \theta^{(i)}\right) \log \frac{P(Y | Z, \theta) P(Z | \theta)}{P\left(Z | Y, \theta^{(i)}\right) P\left(Y | \theta^{(i)}\right)} \end{aligned} L(θ)−L(θ(i))=log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))⩾Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)令
B(θ,θ(i))=^L(θ(i))+∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(i)) B\left(\theta, \theta^{(i)}\right) \hat{=} L\left(\theta^{(i)}\right)+\sum_{Z} P\left(Z | Y, \theta^{(i)}\right) \log \frac{P(Y | Z, \theta) P(Z | \theta)}{P\left(Z | Y, \theta^{(i)}\right) P\left(Y | \theta^{(i)}\right)} B(θ,θ(i))=^L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)则
L(θ)⩾B(θ,θ(i)) L(\theta) \geqslant B\left(\theta, \theta^{(i)}\right) L(θ)⩾B(θ,θ(i))即函数B(θ,θ(i))B\left(\theta, \theta^{(i)}\right)B(θ,θ(i))是L(θ)L(\theta)L(θ)的一个下界,并且有:
L(θ(i))=B(θ(i),θ(i)) L\left(\theta^{(i)}\right)=B\left(\theta^{(i)}, \theta^{(i)}\right) L(θ(i))=B(θ(i),θ(i))因此,任何可以使B(θ,θ(i))B\left(\theta, \theta^{(i)}\right)B(θ,θ(i))增大的θ\thetaθ也可以使L(θ)L(\theta)L(θ)增大,因此,每次迭代时可以直接对B(θ,θ(i))B\left(\theta, \theta^{(i)}\right)B(θ,θ(i))进行极大化更新θ\thetaθ:
θ(i+1)=argmaxθB(θ,θ(i)) \theta^{(i+1)}=\arg \max _{\theta} B\left(\theta, \theta^{(i)}\right) θ(i+1)