当模型含有隐变量时,无法使用极大似然估计法或贝叶斯估计法估计模型参数,这时适合使用EM算法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximization)。所以这一算法称为期望极大算法(expectation maximization algorithm),简称EM算法。
1、EM算法的引入
EM算法通过迭代求L(θ)=logP(Y∣θ)L(\theta)=logP(Y|\theta)L(θ)=logP(Y∣θ)的极大似然估计。在介绍EM算法之前,需要先定义一个QQQ函数(QQQ function),这是EM算法的核心。
完全数据的对数似然函数logP(Y,Z∣θ)logP(Y,Z|\theta)logP(Y,Z∣θ)关于条件概率分布P(Z∣Y,θ(i))P(Z|Y,\theta^{(i)})P(Z∣Y,θ(i))的期望称为QQQ函数,即
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}]Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)] 下面是EM算法的计算过程:
首先选择参数的初值θ(0)\theta^{(0)}θ(0),进入下面的迭代。记θ(i)\theta^{(i)}θ(i)为第iii次迭代参数θ\thetaθ的估计值,在第i+1i+1i+1次迭代的E步中,计算QQQ函数
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i))Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}]=\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)})Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i)) 在M步中,求使QQQ函数极大化的θ\thetaθ,作为第i+1i+1i+1次迭代的参数估计值θ(i+1)\theta^{(i+1)}θ(i+1)
θ(i+1)=argmaxθQ(θ,θ(i))\theta^{(i+1)}=\arg\max_{\theta}Q(\theta,\theta^{(i)})θ(i+1)=argθmaxQ(θ,θ(i)) 重复上面的步骤直到收敛。
需要注意的是,EM算法对初值是敏感的,每次迭代实际在求QQQ函数(E步)及其极大(M步)。
那么,为什么上面的算法能够求解模型参数呢?该如何理解它呢?我们可以用近似求解对数似然函数的极大化问题来导出EM算法。
首先,我们面对一个含有隐变量的概率模型,目标是极大化不完全数据YYY关于参数θ\thetaθ的对数似然函数,即极大化
L(θ)=logP(Y∣θ)L(\theta)=logP(Y|\theta)L(θ)=logP(Y∣θ) 由于概率模型含有隐变量ZZZ,因此似然函数可写成
P(Y∣θ)=∑ZP(Y,Z∣θ)=∑ZP(Y∣Z,θ)P(Z∣θ)P(Y|\theta)=\sum_ZP(Y,Z|\theta)=\sum_ZP(Y|Z,\theta)P(Z|\theta)P(Y∣θ)=Z∑P(Y,Z∣θ)=Z∑P(Y∣Z,θ)P(Z∣θ) 则对数似然函数便为
L(θ)=log∑ZP(Y∣Z,θ)P(Z∣θ)L(\theta)=log\sum_ZP(Y|Z,\theta)P(Z|\theta)L(θ)=logZ∑P(Y∣Z,θ)P(Z∣θ) 为了极大化上面的对数似然函数,可以考虑迭代方法,保证每一代所得的θ\thetaθ能逐步逼近L(θ)L(\theta)L(θ)的最大值,即在第iii代时,需要求解新的θ\thetaθ使L(θ)>L(θ(i))L(\theta)>L(\theta^{(i)})L(θ)>L(θ(i))。为此,考虑两者的差
L(θ)−L(θ(i))=log∑ZP(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))L(\theta)-L(\theta^{(i)})=log\sum_ZP(Y|Z,\theta)P(Z|\theta)-logP(Y|\theta^{(i)})L(θ)−L(θ(i))=logZ∑P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i)) 将L(θ)L(\theta)L(θ)变换一下,令
L(θ)=log∑ZP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))L(\theta)=log\sum_ZP(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}L(θ)=logZ∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ) 用Jensen不等式将logloglog移进∑Z\sum_Z∑Z内的系数右侧,公式为
log∑jλjyj≥∑jλjlogyj, 其中λj≥0,∑jλj=1log\sum_j\lambda_jy_j\ge\sum_j\lambda_jlogy_j, 其中\lambda_j\ge0,\sum_j\lambda_j=1logj∑λjyj≥j∑λjlogyj, 其中λj≥0,j∑λj=1 得
L(θ)≥∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))L(\theta)\ge\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}L(θ)≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ) 由于L(θ(i))L(\theta^{(i)})L(θ(i))的公式与ZZZ无关,可写作
L(θ(i))=∑ZP(Z∣Y,θ(i))logP(Y∣θ(i))L(\theta^{(i)})=\sum_ZP(Z|Y,\theta^{(i)})logP(Y|\theta^{(i)})L(θ(i))=Z∑P(Z∣Y,θ(i))logP(Y∣θ(i)) 两式相减,得
L(θ)−L(θ(i))≥∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y,θ(i))L(\theta)-L(\theta^{(i)})\ge\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y,\theta^{(i)})}L(θ)−L(θ(i))≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y,θ(i))P(Y∣Z,θ)P(Z∣θ) 为表述方便,引入B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))的表达式
B(θ,θ(i))=L(θ(i))+∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y,θ(i))B(\theta,\theta^{(i)})=L(\theta^{(i)})+\sum_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)) 同时,当θ=θ(i)\theta=\theta^{(i)}θ=θ(i)时,有
B(θ(i),θ(i))=L(θ(i))+∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ(i))=L(θ(i))B(\theta^{(i)},\theta^{(i)})=L(\theta^{(i)})+\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}=L(\theta^{(i)})B(θ(i),θ(i))=L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ(i))P(Y,Z∣θ(i))=L(θ(i)) 因此,任何可以使B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))增大的θ\thetaθ,都能使L(θ)L(\theta)L(θ)增大,为此我们可以选择令B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))最大的θ\thetaθ作为θ(i+1)\theta^{(i+1)}θ(i+1),即
θ(i+1)=argmaxθB(θ,θ(i))\theta^{(i+1)}=\arg\max_{\theta}B(\theta,\theta^{(i)})θ(i+1)=argθmaxB(θ,θ(i)) 将B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))中与自变量θ\thetaθ无关的项去除后,可得
θ(i+1)=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)\theta^{(i+1)}=\arg\max_{\theta}\sum_ZP(Z|Y,\theta^{(i)})logP(Y|Z,\theta)P(Z|\theta)θ(i+1)=argθmaxZ∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ) 合并P(Y∣Z,θ)P(Z∣θ)P(Y|Z,\theta)P(Z|\theta)P(Y∣Z,θ)P(Z∣θ)得
θ(i+1)=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)\theta^{(i+1)}=\arg\max_\theta\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)θ(i+1)=argθmaxZ∑P(Z∣Y,θ(i))logP(Y,Z∣θ) 这正是QQQ函数Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))的表达式。
因此,在每一次迭代中极大化QQQ函数,等价于极大化B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i)),也就是求取对数似然函数L(θ)L(\theta)L(θ)下界的极大值。这样,EM算法在迭代中便保证了对数似然函数L(θ)L(\theta)L(θ)的增加,但无法保证最后找到全局最优值。
2、EM算法的收敛性
关于EM算法的收敛性,有两个定理。
定理1:P(Y∣θ(i))P(Y|\theta^{(i)})P(Y∣θ(i))是单调递增的,即
P(Y∣θ(i+1))≥P(Y∣θ(i))P(Y|\theta^{(i+1)})\ge P(Y|\theta^{(i)})P(Y∣θ(i+1))≥P(Y∣θ(i)) 下面证明这一定理。由于对数似然函数logP(Y∣θ)logP(Y|\theta)logP(Y∣θ)与ZZZ无关,可变换其形态,令
logP(Y∣θ)=∑ZP(Z∣Y,θ(i))logP(Y∣θ)=∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)P(Z∣Y,θ)logP(Y|\theta)=\sum_ZP(Z|Y,\theta^{(i)})logP(Y|\theta)=\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}logP(Y∣θ)=Z∑P(Z∣Y,θ(i))logP(Y∣θ)=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ)P(Y,Z∣θ) 因此,对数似然函数为
logP(Y∣θ)=∑ZP(Z∣Y,θ(i))log[P(Y,Z∣θ)−P(Z∣Y,θ)]logP(Y|\theta)=\sum_ZP(Z|Y,\theta^{(i)})log[P(Y,Z|\theta)-P(Z|Y,\theta)]logP(Y∣θ)=Z∑P(Z∣Y,θ(i))log[P(Y,Z∣θ)−P(Z∣Y,θ)] 令
Q(θ,θ(i))=∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)Q(\theta,\theta^{(i)})=\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)H(θ,θ(i))=∑ZP(Z∣Y,θ(i))logP(Z∣Y,θ)H(\theta,\theta^{(i)})=\sum_ZP(Z|Y,\theta^{(i)})logP(Z|Y,\theta)H(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ) 则对数似然函数可写作
logP(Y∣θ)=Q(θ,θ(i))−H(θ,θ(i))logP(Y|\theta)=Q(\theta,\theta^{(i)})-H(\theta,\theta^{(i)})logP(Y∣θ)=Q(θ,θ(i))−H(θ,θ(i)) 接着便可开始证明下式成立
logP(Y∣θ(i+1))≥logP(Y∣θ(i))logP(Y|\theta^{(i+1)})\ge logP(Y|\theta^{(i)})logP(Y∣θ(i+1))≥logP(Y∣θ(i)) 由于EM算法的每次迭代均为求取QQQ函数的极大值,因此必有
Q(θ(i+1),θ(i))≥Q(θ(i),θ(i))Q(\theta^{(i+1)},\theta^{(i)})\ge Q(\theta^{(i)},\theta^{(i)})Q(θ(i+1),θ(i))≥Q(θ(i),θ(i)) 接着看HHH函数
H(θ(i+1),θ(i))−H(θ(i),θ(i))=∑ZP(Z∣Y,θ(i))logP(Z∣Y,θ(i+1))P(Z∣Y,θ(i))H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})=\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}H(θ(i+1),θ(i))−H(θ(i),θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Z∣Y,θ(i+1)) 根据Jensen不等式
H(θ(i+1),θ(i))−H(θ(i),θ(i))≤log∑ZP(Z∣Y,θ(i))P(Z∣Y,θ(i+1))P(Z∣Y,θ(i))H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})\le log\sum_ZP(Z|Y,\theta^{(i)})\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}H(θ(i+1),θ(i))−H(θ(i),θ(i))≤logZ∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣Y,θ(i+1)) 因此可得
H(θ(i+1),θ(i))−H(θ(i),θ(i))≤log∑ZP(Z∣Y,θ(i+2))=log1=0H(\theta^{(i+1)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)})\le log\sum_ZP(Z|Y,\theta^{(i+2)})=log1=0H(θ(i+1),θ(i))−H(θ(i),θ(i))≤logZ∑P(Z∣Y,θ(i+2))=log1=0 这样,便证明了
logP(Y∣θ(i+1))−logP(Y∣θ(i))≥0logP(Y|\theta^{(i+1)})-logP(Y|\theta{(i)})\ge0logP(Y∣θ(i+1))−logP(Y∣θ(i))≥0 即
P(Y∣θ(i+1))≥P(Y∣θ(i))P(Y|\theta^{(i+1)})\ge P(Y|\theta^{(i)})P(Y∣θ(i+1))≥P(Y∣θ(i)) 接下来是第二个定理。定理2:如果P(Y∣θ)P(Y|\theta)P(Y∣θ)有上界,则L(θ(i))=logP(Y∣θ(i))L(\theta^{(i)})=logP(Y|\theta^{(i)})L(θ(i))=logP(Y∣θ(i))收敛到某一值L∗L^*L∗,在一定条件下EM算法得到的θ(i)\theta^{(i)}θ(i)收敛值θ∗\theta^*θ∗是L(θ)L(\theta)L(θ)的稳定点。
这个定理就不证明了。定理只能保证参数估计序列θ(i)\theta^{(i)}θ(i)收敛到对数似然函数序列L(θ(i))L(\theta^{(i)})L(θ(i))的稳定点,不能保证收敛到极大值点。
3、EM算法在高斯混合模型学习中的应用
最后两节只叙述,不证明。
首先介绍高斯混合模型(Gaussian misture model),高斯混合模型是指具有如下概率分布的模型
P(y∣θ)=∑k=1Kαkϕ(y∣θk)P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k)P(y∣θ)=k=1∑Kαkϕ(y∣θk) 其中,αk\alpha_kαk是系数,满足αk≥0,∑k=1Kαk=1\alpha_k\ge0,\sum_{k=1}^K\alpha_k=1αk≥0,∑k=1Kαk=1;ϕ(y∣θk)\phi(y|\theta_k)ϕ(y∣θk)是高斯分布密度,θk=(μk,σk2)\theta_k=(\mu_k,\sigma_k^2)θk=(μk,σk2),具体为
ϕ(y∣θk)=12πσke−(y−μk)22σk2\phi(y|\theta_k)=\frac{1}{\sqrt{2\pi\sigma_k}}e^{-\frac{(y-\mu_k)^2}{2\sigma_k^2}}ϕ(y∣θk)=2πσk1e−2σk2(y−μk)2 接着介绍高斯混合模型参数估计的EM算法。有NNN个观测数据及KKK个分模型,首先取参数的初始值开始迭代。
在E步,计算分模型kkk对观测数据yjy_jyj的响应度
γ^jk=αkϕ(yj∣θk)∑k=1Kαkϕ(yj∣θk), j=1,2,⋯ ,N; k=1,2,⋯ ,K\hat\gamma_{jk}=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(y_j|\theta_k)}, j=1,2,\cdots,N; k=1,2,\cdots,Kγ^jk=∑k=1Kαkϕ(yj∣θk)αkϕ(yj∣θk), j=1,2,⋯,N; k=1,2,⋯,K 在M步,计算新一轮的模型参数
μ^k=∑j=1Nγjk^yj∑j=1Nγ^jk, k=1,2,⋯ ,K\hat\mu_k=\frac{\sum_{j=1}^N\hat{\gamma_{jk}}y_j}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,Kμ^k=∑j=1Nγ^jk∑j=1Nγjk^yj, k=1,2,⋯,Kσ^k2=∑j=1Nγ^jk(yj−μ^k)2∑j=1Nγ^jk, k=1,2,⋯ ,K\hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\hat\mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,Kσ^k2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μ^k)2, k=1,2,⋯,Kα^k=∑j=1Nγ^jkN, k=1,2,⋯ ,K\hat\alpha_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}}{N}, k=1,2,\cdots,Kα^k=N∑j=1Nγ^jk, k=1,2,⋯,K 重复上面两步直至收敛。
4、EM算法的推广
EM算法还可以解释为FFF函数(FFF function)的极大-极大算法(maximization-maximization algorithm),基于这个解释有广义期望极大(generalized expectation maximization, GEM)算法等推广。
首先引进FFF函数。假设隐变量ZZZ的概率分布为P~(Z)\widetilde{P}(Z)P(Z),定义FFF函数如下
F(P~,θ)=EP~[logP(Y,Z∣θ)]+H(P~)F(\widetilde P,\theta)=E_{\widetilde P}[logP(Y,Z|\theta)]+H(\widetilde P)F(P,θ)=EP[logP(Y,Z∣θ)]+H(P) 式中,H(P~)H(\widetilde P)H(P)是分布P~(Z)\widetilde P(Z)P(Z)的熵,即
H(P~)=−EP~logP~(Z)H(\widetilde P)=-E_{\widetilde P}log\widetilde P(Z)H(P)=−EPlogP(Z) 引进FFF函数的概念后,便可给出下面四条定理。
定理1:对于固定的θ\thetaθ,存在唯一的分布P~θ\widetilde P_\thetaPθ使F(P~,θ)F(\widetilde P,\theta)F(P,θ)极大化,这时的P~θ\widetilde P_\thetaPθ为
P~θ(Z)=P(Z∣Y,θ)\widetilde P_\theta(Z)=P(Z|Y,\theta)Pθ(Z)=P(Z∣Y,θ) 引理2:若P~θ(Z)=P(Z∣Y,θ)\widetilde P_\theta(Z)=P(Z|Y,\theta)Pθ(Z)=P(Z∣Y,θ),则FFF函数为
F(P~,θ)=logP(Y∣θ)F(\widetilde P,\theta)=logP(Y|\theta)F(P,θ)=logP(Y∣θ) 定理3:如果F(P~,θ)F(\widetilde P,\theta)F(P,θ)在P~∗\widetilde P^*P∗和θ∗\theta^*θ∗有局部极大值,那么L(θ)L(\theta)L(θ)也在θ∗\theta^*θ∗有局部极大值,这个结论对全局最大值也使用。
定理4:EM算法的一次迭代,可由FFF函数的极大-极大算法实现。在第i+1i+1i+1次迭代的两步为:对固定的θ(i)\theta^{(i)}θ(i),求P~(i+1)\widetilde P^{(i+1)}P(i+1)使F(P~,θ(i))F(\widetilde P,\theta^{(i)})F(P,θ(i))极大化;对固定的P~(i+1)\widetilde P^{(i+1)}P(i+1),求θ(i+1)\theta^{(i+1)}θ(i+1)使F(P~(i+1),θ)F(\widetilde P^{(i+1)},\theta)F(P(i+1),θ)极大化。
从上面的定理可知,由EM算法与F函数的极大-极大算法得到的θ(i)\theta^{(i)}θ(i)是一致的。这样便有了EM算法的推广,GEM算法。
在GEM算法1中,先初始化参数θ(0)\theta^{(0)}θ(0),在第i+1i+1i+1次迭代先求P~(i+1)\widetilde P^{(i+1)}P(i+1)使F(P~,θ(i))F(\widetilde P,\theta^{(i)})F(P,θ(i))极大化,再求θ(i+1)\theta^{(i+1)}θ(i+1)使F(P~(i+1),θ)F(\widetilde P^{(i+1)},\theta)F(P(i+1),θ)极大化。
在GME算法2中,考虑到有时候求θ(i+1)\theta^{(i+1)}θ(i+1)使Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))极大化比较困难,于是在原本EM算法的基础上放低要求,在M步中求取θ(i+1)\theta^{(i+1)}θ(i+1)使Q(θ(i+1),θ(i))≥Q(θ(i),θ(i))Q(\theta^{(i+1)},\theta^{(i)})\ge Q(\theta^{(i)},\theta^{(i)})Q(θ(i+1),θ(i))≥Q(θ(i),θ(i))。
在GME算法3中,当参数θ\thetaθ的维数为ddd时,将EM算法的M步分解为ddd次条件极大化,每次只改变参数向量的一个分量。