EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代分为两步:E步,求期望;M步,求极大。
概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计或贝叶斯法估计模型参数。但是当模型含有隐变量时,就不能简单地使用这种估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。
观测数据表示为 Y = ( Y 1 , Y 2 … Y n ) T Y=(Y_1, Y_2\dots Y_n)^T Y=(Y1,Y2…Yn)T,未观测数据表示为 Z = ( Z 1 , Z 2 … Z n ) T Z=(Z_1, Z_2\dots Z_n)^T Z=(Z1,Z2…Zn)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∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)(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(Z∣Y,θ);
输出:模型参数 θ \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(Z∣Y,θ(i))(3)
这里的 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(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(Z∣Y,θ(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)]
注意:
我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据) 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∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)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(Z∑P(Y∣Z,θ)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(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∣θ)
令
(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))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)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))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ))=argθmax(Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ))=argθmax(Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ))=argθmaxQ(θ,θ(i))
式(10)等价于EM算法的一次迭代,即求 Q Q Q函数及其极大化,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(Z∣Y,θ)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(Z∣Y,θ)P(Y,Z∣θ)=logP(Y,Z∣θ)−logP(Z∣Y,θ)
由 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))=Z∑P(Z∣Y,θ(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))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ)
所以
(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∣θ)=(Z∑P(Z∣Y,θ(i)))(logP(Y,Z∣θ)−logP(Z∣Y,θ)())=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ))=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))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(θ))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Z∣Y,θ)≤log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣Y,θ))=logZ∑P(Z∣Y,θ)=0
所以
log P ( Y ∣ θ ) ≥ log P ( Y ∣ θ ( i ) ) \log P(Y|\theta) \geq \log P(Y|\theta^{(i)}) logP(Y∣θ)≥logP(Y∣θ(i))
#证毕.