EM算法推导及其收敛性证明

EM算法简介

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代分为两步:E步,求期望;M步,求极大。

概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计或贝叶斯法估计模型参数。但是当模型含有隐变量时,就不能简单地使用这种估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。

EM算法

观测数据表示为 Y = ( Y 1 , Y 2 … Y n ) T Y=(Y_1, Y_2\dots Y_n)^T Y=(Y1,Y2Yn)T,未观测数据表示为 Z = ( Z 1 , Z 2 … Z n ) T Z=(Z_1, Z_2\dots Z_n)^T Z=(Z1,Z2Zn)T,则观测数据的似然函数为
(1) P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) P(Y|\theta) = \sum_ZP(Z|\theta)P(Y|Z,\theta)\tag{1} P(Yθ)=ZP(Zθ)P(YZ,θ)(1)
考虑求模型参数 θ \theta θ的对数极大似然估计,即
(2) θ ^ = a r g max ⁡ θ log ⁡ P ( Y ∣ θ ) \hat{\theta} = arg \max_{\theta} \log P(Y|\theta)\tag{2} θ^=argθmaxlogP(Yθ)(2)
该问题没有解析解,只有通过迭代的方法求解。

EM算法首先选取参数的初值,记作 θ ( 0 ) \theta^{(0)} θ(0),然后通过如下步骤迭代计算参数的估计值,直至收敛。第 i i i次迭代参数的估计值为 θ ( i ) \theta^{(i)} θ(i)。EM算法的第 i + 1 i+1 i+1次迭代如下:

E步: 计算在模型参数 θ ( i ) \theta^{(i)} θ(i)下观测数据 y j y_j yj的概率。

M步: 计算模型参数的新估计值。

一般地,用 Y Y Y表示观测随机变量的数据, Z Z Z表示隐随机变量的数据。 Y Y Y Z Z Z连在一起称为完全数据,观测数据 Y Y Y又称为不完全数据。假设给定观测数据 Y Y Y,其概率分布是 P ( Y ∣ θ ) P(Y|\theta) P(Yθ),其中 θ \theta θ是需要估计的模型参数;不完全数据 Y Y Y的似然函数为 P ( Y ∣ θ ) P(Y|\theta) P(Yθ),对数似然函数 L ( θ ) = log ⁡ P ( Y ∣ θ ) L(\theta)=\log P(Y|\theta) L(θ)=logP(Yθ);假设 Y Y Y Z Z Z的联合概率分布是 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Zθ),那么完全数据的对数似然函数为 log ⁡ P ( Y , Z ∣ θ ) \log P(Y,Z|\theta) logP(Y,Zθ)

EM算法通过迭代求 L ( θ ) = log ⁡ P ( Y ∣ θ ) L(\theta)=\log P(Y|\theta) L(θ)=logP(Yθ)的极大似然估计,每次迭代包含两步:E步,求期望;M步,求极大化。

算法1:(EM算法)

输入:观测变量数据 Y Y Y,隐变量数据 Z Z Z,联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Zθ),条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(ZY,θ)

输出:模型参数 θ \theta θ

(1)选择参数的初值 θ ( 0 ) \theta^{(0)} θ(0),开始迭代;

(2)E步:记 θ ( i ) \theta^{(i)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 i+1次迭代的E步,计算
(3) Q ( θ , θ ( i ) ) = E Z [ log ⁡ P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z ( log ⁡ P ( Y , Z ∣ θ ) ) P ( Z ∣ Y , θ ( i ) ) Q(\theta, \theta^{(i)}) = E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}] = \sum_Z\Big(\log P(Y,Z|\theta)\Big)P(Z|Y,\theta^{(i)}) \tag{3} Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=Z(logP(Y,Zθ))P(ZY,θ(i))(3)
这里的 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i))是在给定观测数据 Y Y Y和当前的参数估计 θ ( i ) \theta^{(i)} θ(i)下隐变量数据 Z Z Z的条件概率分布;

(3)M步:求使 Q ( θ , θ ( i ) ) Q(\theta, \theta^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第 i + 1 i+1 i+1次迭代的参数估计值为 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)
(4) θ ( i + 1 ) = a r g max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)} = arg \max_{\theta} Q(\theta, \theta^{(i)}) \tag{4} θ(i+1)=argθmaxQ(θ,θ(i))(4)

(4)重复第(2)步和第(3)步,直至收敛。

定义 Q函数

完全数据的对数似然函数 log ⁡ P ( Y , Z ∣ θ ) \log P(Y,Z|\theta) logP(Y,Zθ)关于在给定观测数据 Y Y Y和当前参数 θ ( i ) \theta^{(i)} θ(i)下对未观测数据 Z Z Z的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i))的期望称为 Q Q Q函数,即
Q ( θ , θ ( i ) ) = E Z [ log ⁡ P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] Q(\theta, \theta^{(i)}) = E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}] Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]

注意:

  • 参数的初值是可以任意选择的,但EM算法对初值是敏感的。
  • Q Q Q中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值。
  • 给出停止迭代的条件,一般是对较小的正数 ϵ 1 \epsilon_1 ϵ1 ϵ 2 \epsilon_2 ϵ2,若满足下述则停止迭代。
    ∣ ∣ θ ( i + 1 ) − θ ( i ) ∣ ∣ < ϵ 1   或   ∣ ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ ∣ < ϵ 2 ||\theta^{(i+1)} - \theta^{(i)}||<\epsilon_1\ 或\ ||Q(\theta^{(i+1)}, \theta^{(i)}) - Q(\theta^{(i)}, \theta^{(i)})||<\epsilon_2 θ(i+1)θ(i)<ϵ1  Q(θ(i+1),θ(i))Q(θ(i),θ(i))<ϵ2

EM算法的推导

我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据) Y Y Y关于参数 θ \theta θ的对数似然函数,即极大化
(5) L ( θ ) = log ⁡ P ( Y ∣ θ ) = log ⁡ ∑ Z P ( Y , Z ∣ θ ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) L(\theta) = \log P(Y|\theta) = \log \sum_Z P(Y,Z|\theta)=\log\Big(\sum_Z P(Y|Z,\theta)P(Z|\theta)\Big)\tag{5} L(θ)=logP(Yθ)=logZP(Y,Zθ)=log(ZP(YZ,θ)P(Zθ))(5)
这一极大化的主要困难是式(5)中有未观测数据且有包含和(或积分)的对数。

EM算法是通过迭代逐步近似极大化 L ( θ ) L(\theta) L(θ)。假设在第 i i i次迭代后 θ \theta θ的估计值是 θ ( i ) \theta^{(i)} θ(i)。我们希望新估计值 θ \theta θ能使 L ( θ ) L(\theta) L(θ)增加,即 L ( θ ) > L ( θ ( i ) ) L(\theta)>L(\theta^{(i)}) L(θ)>L(θ(i)),并逐步达到极大值。因此我们考虑两者之差:
L ( θ ) − L ( θ ( i ) ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) − log ⁡ P ( Y ∣ θ ( i ) ) L(\theta)-L(\theta^{(i)}) = \log \Big(\sum_Z P(Y|Z,\theta)P(Z|\theta)\Big) - \log P(Y|\theta^{(i)}) L(θ)L(θ(i))=log(ZP(YZ,θ)P(Zθ))logP(Yθ(i))
根据Jensen不等式得到其下界:(log函数显然为凹函数)
L ( θ ) − L ( θ ( i ) ) = log ⁡ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ) − log ⁡ P ( Y ∣ θ ( i ) ) ≥ ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − log ⁡ P ( Y ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) \begin{aligned} L(\theta)-L(\theta^{(i)}) &= \log \Big(\sum_Z P(Z|Y,\theta^{(i)}) \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}\Big) - \log P(Y|\theta^{(i)})\\ &\geq \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})} - \log P(Y|\theta^{(i)})\\ &=\sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})} \end{aligned} L(θ)L(θ(i))=log(ZP(ZY,θ(i))P(ZY,θ(i))P(YZ,θ)P(Zθ))logP(Yθ(i))ZP(ZY,θ(i))logP(ZY,θ(i))P(YZ,θ)P(Zθ)logP(Yθ(i))=ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ)

(6) B ( θ , θ ( i ) ) = ^ L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) B(\theta, \theta^{(i)}) \hat{=} L(\theta^{(i)}) + \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\tag{6} B(θ,θ(i))=^L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ)(6)
则有
(7) L ( θ ) ≥ B ( θ , θ ( i ) ) L(\theta)\geq B(\theta, \theta^{(i)})\tag{7} L(θ)B(θ,θ(i))(7)
即函数 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) B(θ,θ(i))使 L ( θ ) L(\theta) L(θ)的一个下界,而且由式(6)可知
(8) L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) ) L(\theta^{(i)})= B(\theta^{(i)}, \theta^{(i)})\tag{8} L(θ(i))=B(θ(i),θ(i))(8)
因此,任何可以使 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) B(θ,θ(i))增大的 θ \theta θ,也可以使 L ( θ ) L(\theta) L(θ)增大,为 了使 L ( θ ) L(\theta) L(θ)有尽可能大的增长,选择 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)使 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) B(θ,θ(i))达到极大值,即
(9) θ ( i + 1 ) = a r g max ⁡ θ B ( θ , θ ( i ) ) \theta^{(i+1)} = arg \max_{\theta} B(\theta, \theta^{(i)}) \tag{9} θ(i+1)=argθmaxB(θ,θ(i))(9)
现求 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)的表达式,省去对 θ \theta θ极大化而言是常数的项,
θ ( i + 1 ) = a r g max ⁡ θ ( L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) ) = a r g max ⁡ θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) = a r g max ⁡ θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y , Z ∣ θ ) ) = a r g max ⁡ θ Q ( θ , θ ( i ) ) \begin{aligned} \theta^{(i+1)} &= arg \max_{\theta}\Big(L(\theta^{(i)}) + \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\Big)\\ &= arg \max_{\theta}\Big(\sum_Z P(Z|Y,\theta^{(i)}) \log P(Y|Z,\theta)P(Z|\theta)\Big)\\ &=arg \max_{\theta}\Big(\sum_Z P(Z|Y,\theta^{(i)}) \log P(Y,Z|\theta)\Big)\\ &= arg \max_{\theta} Q(\theta, \theta^{(i)}) \end{aligned} θ(i+1)=argθmax(L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ))=argθmax(ZP(ZY,θ(i))logP(YZ,θ)P(Zθ))=argθmax(ZP(ZY,θ(i))logP(Y,Zθ))=argθmaxQ(θ,θ(i))
式(10)等价于EM算法的一次迭代,即求 Q Q Q函数及其极大化,EM算不断求解下界的极大化逼近求解对数似然函数极大化的算法。
EM算法推导及其收敛性证明_第1张图片

EM算法的收敛性

定理

P ( Y ∣ θ ) P(Y|\theta) P(Yθ)为观测数据的似然函数, θ ( i ) \theta^{(i)} θ(i)为EM算法得到的参数估计序列, P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i)}) P(Yθ(i))为对应的似然函数序列,则 P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i)}) P(Yθ(i))是单调递增的,即
(11) P ( Y ∣ θ ( i + 1 ) ) ≥ P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i+1)})\geq P(Y|\theta^{(i)}) \tag{11} P(Yθ(i+1))P(Yθ(i))(11)

证明:
由于
P ( Y ∣ θ ) = P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ) P(Y|\theta) = \frac{P(Y,Z|\theta)}{P(Z|Y,\theta)} P(Yθ)=P(ZY,θ)P(Y,Zθ)
取对数有
log ⁡ P ( Y ∣ θ ) = log ⁡ P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ) = log ⁡ P ( Y , Z ∣ θ ) − log ⁡ P ( Z ∣ Y , θ ) \log P(Y|\theta) = \log \frac{P(Y,Z|\theta)}{P(Z|Y,\theta)} = \log P(Y,Z|\theta) - \log P(Z|Y,\theta) logP(Yθ)=logP(ZY,θ)P(Y,Zθ)=logP(Y,Zθ)logP(ZY,θ)
Q Q Q函数定义可知
Q ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y , Z ∣ θ ) Q(\theta, \theta^{(i)}) = \sum_Z P(Z|Y,\theta^{(i)}) \log P(Y,Z|\theta) Q(θ,θ(i))=ZP(ZY,θ(i))logP(Y,Zθ)

H ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Z ∣ Y , θ ) H(\theta, \theta^{(i)}) = \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta) H(θ,θ(i))=ZP(ZY,θ(i))logP(ZY,θ)
所以
(12) log ⁡ P ( Y ∣ θ ) = ( ∑ Z P ( Z ∣ Y , θ ( i ) ) ) ( log ⁡ P ( Y , Z ∣ θ ) − log ⁡ P ( Z ∣ Y , θ ) ( ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y , Z ∣ θ ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Z ∣ Y , θ ) ) = Q ( θ , θ ( i ) ) − H ( θ , θ ( i ) ) \begin{aligned} \log P(Y|\theta) &= \Big(\sum_Z P(Z|Y, \theta^{(i)})\Big) \Big(\log P(Y,Z|\theta) - \log P(Z|Y,\theta)\Big())\\ &= \sum_Z P(Z|Y, \theta^{(i)}) \log P(Y,Z|\theta) - \sum_Z P(Z|Y, \theta^{(i)}) \log P(Z|Y,\theta)\Big) \\ &= Q(\theta, \theta^{(i)}) - H(\theta, \theta^{(i)}) \tag{12} \end{aligned} logP(Yθ)=(ZP(ZY,θ(i)))(logP(Y,Zθ)logP(ZY,θ)())=ZP(ZY,θ(i))logP(Y,Zθ)ZP(ZY,θ(i))logP(ZY,θ))=Q(θ,θ(i))H(θ,θ(i))(12)
在式(2)中选取 θ \theta θ θ ( i ) \theta^{(i)} θ(i)相减得:
(13) log ⁡ P ( Y ∣ θ ) − log ⁡ P ( Y ∣ θ ( i ) ) = ( Q ( θ , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ) − ( H ( θ , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) ) \log P(Y|\theta) - \log P(Y|\theta^{(i)}) = \Big(Q(\theta, \theta^{(i)}) - Q(\theta^{(i)}, \theta^{(i)})\Big) - \Big(H(\theta, \theta^{(i)}) - H(\theta^{(i)}, \theta^{(i)})\Big) \tag{13} logP(Yθ)logP(Yθ(i))=(Q(θ,θ(i))Q(θ(i),θ(i)))(H(θ,θ(i))H(θ(i),θ(i)))(13)
在EM算法中,我们要极大化 Q Q Q函数,所以式(3)右边得第一项 Q ( θ , θ ( i ) ) − Q ( θ ( i ) ) ≥ 0 Q(\theta, \theta^{(i)}) - Q(\theta^{(i)}) \geq 0 Q(θ,θ(i))Q(θ(i))0,欲证 log ⁡ ( Y ∣ θ ) ≥ log ⁡ ( Y ∣ θ ( i ) ) \log (Y|\theta) \geq \log (Y|\theta^{(i)}) log(Yθ)log(Yθ(i)),只需证式(3)右边非负。

H ( θ , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Z ∣ Y , θ ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Z ∣ Y , θ ( θ ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ ( i ) ) ≤ log ⁡ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ ( i ) ) ) = log ⁡ ∑ Z P ( Z ∣ Y , θ ) = 0 \begin{aligned} H(\theta, \theta^{(i)}) - H(\theta^{(i)}, \theta^{(i)}) &= \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta) - \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta^{(\theta)}) \\ &= \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Z|Y,\theta)}{P(Z|Y,\theta^{(i)})}\\ &\leq \log \Big(\sum_Z P(Z|Y,\theta^{(i)})\frac{P(Z|Y,\theta)}{P(Z|Y,\theta^{(i)})}\Big)\\ &=\log \sum_Z P(Z|Y,\theta) = 0 \end{aligned} H(θ,θ(i))H(θ(i),θ(i))=ZP(ZY,θ(i))logP(ZY,θ)ZP(ZY,θ(i))logP(ZY,θ(θ))=ZP(ZY,θ(i))logP(ZY,θ(i))P(ZY,θ)log(ZP(ZY,θ(i))P(ZY,θ(i))P(ZY,θ))=logZP(ZY,θ)=0

所以
log ⁡ P ( Y ∣ θ ) ≥ log ⁡ P ( Y ∣ θ ( i ) ) \log P(Y|\theta) \geq \log P(Y|\theta^{(i)}) logP(Yθ)logP(Yθ(i))
#证毕.
EM算法推导及其收敛性证明_第2张图片

你可能感兴趣的:(机器学习)