EM算法的引入
概率模型有时既含有观测变量,又含有隐变量或潜在变量。所以不能直接用极大似然估计去估计参数。EM算法就是对含有隐变量模型的参数的极大似然估计算法。
EM算法
一般用 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∣θ),那么完全数据的对数似然函数是 L ( θ ) = P ( Y , Z ∣ θ ) L(\theta)=P(Y,Z|\theta) L(θ)=P(Y,Z∣θ)
E M EM EM算法基本思路是先求期望 M M M再进一步最大化,似然函数
算法:
输入:观测变量 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 ) (1) (1)选择参数的初始值 θ ( 0 ) , \theta^{(0)}, θ(0),开始迭代
( 2 ) (2) (2) E E E步:记 θ ( i ) \theta^{(i)} θ(i),为第 i i i次迭代的参数估计值,在第 i + 1 i+1 i+1次迭代的 E E E计算
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)]
= ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) =\sum\limits_{Z}\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)}) =Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))
( 3 ) (3) (3) M M M步:求使 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第 i + 1 i+1 i+1次迭代的参数估计值 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)
θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\argmax\limits_{\theta}Q(\theta,\theta^{(i)}) θ(i+1)=θargmaxQ(θ,θ(i))
( 4 ) (4) (4)重复 ( 2 ) , ( 3 ) (2),(3) (2),(3)直到收敛
注意,定义 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)]
当 ∣ ∣ θ i + 1 − θ i ∣ ∣ < ϵ 1 o r ∣ ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ ∣ < ϵ 2 ||\theta^{i+1}-\theta^{i}|| <\epsilon_1 \ \ \ \ or \ \ \ \ ||Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})||<\epsilon_2 ∣∣θi+1−θi∣∣<ϵ1 or ∣∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣∣<ϵ2
算法停止
EM算法的导出
对数似然函数为
L ( θ ) = log P ( Y ∣ θ ) = log ∑ Z P ( Y , Z ∣ θ ) L(\theta)=\log P(Y|\theta)=\log \sum\limits_Z P(Y,Z|\theta) L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)
= log ( ∑ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) =\log(\sum\limits_P(Y|Z,\theta)P(Z|\theta)) =log(P∑(Y∣Z,θ)P(Z∣θ))
我们希望新值 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 (\sum\limits_ZP(Y|Z,\theta)P(Z|\theta))-\log P(Y|\theta^{(i)}) L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))
利用 J e n s e n Jensen Jensen不等式得
L ( θ ) − L ( θ ( i ) ) = log ( ∑ Z P ( Z ∣ Y , θ i ) P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ i ) ) − log P ( Y ∣ θ ( i ) ) L(\theta)-L(\theta^{(i)})=\log(\sum\limits_ZP(Z|Y,\theta^{i})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})})-\log P(Y|\theta^{(i)}) 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 ) ) log P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ i ) − log P ( Y ∣ θ ( i ) ) \ge \sum\limits_ZP(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})}-\log P(Y|\theta^{(i)}) ≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θi)P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))
= ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) =\sum\limits_ZP(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} =Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
令
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)})=L(\theta^{(i)})+\sum\limits_ZP(Z|Y,\theta^{(i)})\log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})} 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)\ge B(\theta,\theta^{(i)}) L(θ)≥B(θ,θ(i))
又
L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) ) L(\theta^{(i)})= B(\theta^{(i)},\theta^{(i)}) L(θ(i))=B(θ(i),θ(i))
因此我们可以使 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))增大
θ ( i + 1 ) = arg max θ B ( θ , θ ( i ) ) \theta^{(i+1)}=\argmax\limits_{\theta}B(\theta,\theta^{(i)}) θ(i+1)=θargmaxB(θ,θ(i))
θ ( i + 1 ) = arg max θ ( L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ Z , θ