统计学习方法读书笔记第九章:EM算法及其推广

统计学习方法读书笔记第九章:EM算法及其推广

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximization)。所以这一算法称为期望极大算法,简称EM算法。

EM算法的引入

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

  • EM算法
    将观测数据表示为Y=(Y1,Y2, ,Yn)TY=(Y_1,Y_2,\cdots,Y_n)^T,未观测数据表示为Z=(Z1,Z2, ,Zn)TZ=(Z_1,Z_2,\cdots,Z_n)^T,则观测数据的似然函数为
    (1)P(Yθ)=ZP(Zθ)P(YZ,θ) P(Y|\theta)=\sum_ZP(Z|\theta)P(Y|Z,\theta) \tag{1}
    考虑求模型参数θ=(π,p,q)\theta=(\pi,p,q)的极大似然估计,即
    (2)θ^=argmaxθlogP(Yθ) \hat\theta=arg\max_\theta logP(Y|\theta) \tag{2}
    这个问题没有解析解,只有通过迭代的方法求解。EM算法就是可以用于求解这个问题的一种迭代算法。
    一般地,用YY表示观测随机变量的数据,ZZ表示隐随机变量的数据。YYZZ连在一起称为完全数据,观测数据YY又称为不完全数据。假设给定观测数据YY,其概率分布是P(Yθ)P(Y|\theta),其中θ\theta是需要估计的模型参数,那么不完全数据YY的似然函数是P(Yθ)P(Y|\theta),对数似然函数L(θ)=logP(Yθ)L(\theta)=logP(Y|\theta);假设YYZZ的联合概率分布是P(Y,Zθ)P(Y,Z|\theta),那么完全数据的对数似然函数是logP(Y,Zθ)logP(Y,Z|\theta)
    EM算法通过迭代求L(θ)=logP(Yθ)L(\theta)=logP(Y|\theta)的极大似然估计。每次迭代包含两步:E步,求期望;M步,求极大化。下面来介绍EM算法。
    EM算法
    输入:观测变量数据YY,隐变量数据ZZ,联合分布P(Y,Zθ)P(Y,Z|\theta),条件分布P(ZY,θ)P(Z|Y,\theta)
    输出:模型参数θ\theta
    (1) 选择参数的初值θ(0)\theta^{(0)},开始迭代;
    (2) E步:记θ(i)\theta^{(i)}为第ii次迭代参数θ\theta的估计值,在第i+1i+1次迭代的E步,计算
    (3)Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=ZlogP(Y,Zθ)P(ZY,θ(i)) \begin{aligned} Q(\theta,\theta^{(i)})&=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}] \\ &=\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) \tag{3} \end{aligned}
    这里,P(ZY,θ(i))P(Z|Y,\theta^{(i)})实在给定观测数据YY和当前的参数估计θ(i)\theta^{(i)}下隐变量数据ZZ的条件概率分布;
    (3) M步:求使Q(θ,θ(i))Q(\theta,\theta^{(i)})极大化的θ\theta,确定第i+1i+1次迭代的参数的估计值θ(i+1)\theta^{(i+1)}
    (4)θ(i+1)=argmaxθQ(θ,θ(i)) \theta^{(i+1)}=arg\max_\theta Q(\theta,\theta^{(i)}) \tag{4}
    (4) 重复第(2)步和第(3)步,直到收敛。
    第(2)步中的函数Q(θ,θ(i))Q(\theta,\theta^{(i)})是EM算法的核心,称为QQ函数。
    定义1(Q函数) 完全数据的对数似然函数logP(Y,Zθ)logP(Y,Z|\theta)关于在给定观测数据YY和当前参数θ(i)\theta^{(i)}下对未观测数据ZZ的条件概率分布P(ZY,θ(i))P(Z|Y,\theta^{(i)})的期望称为QQ函数,即
    (5)Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)] Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}] \tag{5}
    下面关于EM算法作几点说明:
    步骤(1) 参数的初值可以任意选择,但需注意EM算法对初值是敏感的。
    步骤(2) E步求Q(θ,θ(i))Q(\theta,\theta^{(i)})QQ函数式中ZZ是未观测数据,YY是观测数据。注意,Q(θ,θ(i))Q(\theta,\theta^{(i)})的第1个变元表示要极大化的参数,第2个变元表示参数的当前估计值。每次迭代实际在求QQ函数及其极大。
    步骤(3) M步求Q(\theta,\theta^{(i)})的极大化,得到θ(i+1)\theta^{(i+1)},完成一次迭代θ(i)θ(i+1)\theta^{(i)}\to\theta^{(i+1)}。后面将证明每次迭代使似然函数增大或达到局部极值。
    步骤(4) 给出停止迭代的条件,一般是对较小的正数ε1\varepsilon_1ε2\varepsilon_2,若满足
    θ(i+1)θ(i)<ε1Q(θ(i+1),θ(i))Q(θ(i),θ(i))<ε2 ||\theta^{(i+1)}-\theta^{(i)}||<\varepsilon_1 或||Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})||<\varepsilon_2
    则停止迭代。
  • EM算法的导出
    上面叙述了EM算法。为什么EM算法能近似实现对观测数据的极大似然估计呢?下面通过近似求解观测数据的对数似然函数的极大化问题来导出EM算法,由此可以清楚地看出EM算法的作用。
    我们面对一个含有隐含量的概率模型,目标是极大化观测数据(不完全数据)YY关于参数θ\theta的对数似然函数,即极大化
    (6)L(θ)=logP(Yθ)=logZP(Y,Zθ)=log(ZP(YZ,θ)P(Zθ)) \begin{aligned} L(\theta)&=logP(Y|\theta)=log\sum_ZP(Y,Z|\theta) \\ &=log\bigg(\sum_ZP(Y|Z,\theta)P(Z|\theta)\bigg) \tag{6} \end{aligned}
    注意到这一极大化的主要困难是上式中有未观测数据并有包含和(或积分)的对数。
    事实上,EM算法是通过迭代逐步近似极大化L(θ)L(\theta)的。假设在第ii次迭代后θ\theta的估计值是θ(i)\theta^{(i)}。我们希望新估计值θ\theta能使L(θ)L(\theta)增加,即L(θ)>L(θ(i))L(\theta)>L(\theta^{(i)}),并逐步达到极大值。为此,考虑两者的差:
    L(θ)L(θ(i))=log(ZP(YZ,θ)P(Zθ))logP(Yθ(i)) L(\theta)-L(\theta^{(i)})=log\bigg(\sum_ZP(Y|Z,\theta)P(Z|\theta)\bigg)-logP(Y|\theta^{(i)})
    利用Jensen不等式得到其下界:
    L(θ)L(θ(i))=log(ZP(YZ,θ(i))P(YZ,θ)P(Zθ)P(YZ,θ(i)))logP(Yθ(i))ZP(ZY,θ(i))logP(YZ,θ)P(Zθ)P(ZY,θ(i))logP(Yθ(i))=ZP(ZY,θ(i))logP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i)) \begin{aligned} L(\theta)-L(\theta^{(i)})&=log\bigg(\sum_ZP(Y|Z,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Y|Z,\theta^{(i)})}\bigg)-logP(Y|\theta^{(i)}) \\ &\geq\sum_ZP(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-logP(Y|\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)})} \end{aligned}

    (7)B(θ,θ(i))=^L(θ(i))+ZP(ZY,θ(i))logP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i)) B(\theta,\theta^{(i)})\hat{=}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)})} \tag{7}

    (8)L(θ)B(θ,θ(i)) L(\theta)\geq B(\theta,\theta^{(i)}) \tag{8}
    即函数B(θ,θ(i))B(\theta,\theta^{(i)})L(θ)L(\theta)的一个下界,且由上式可知,
    (9)L(θ(i))=B(θ(i),θ(i)) L(\theta^{(i)})=B(\theta^{(i)},\theta^{(i)}) \tag{9}
    因此,任何可以使B(θ,θ(i))B(\theta,\theta^{(i)})增大的θ\theta,也可以使L(θ)L(\theta)增大。为了使L(θ)L(\theta)有尽可能大的增长,选择θ(i+1)\theta^{(i+1)}使B(θ,θ(i))B(\theta,\theta^{(i)})达到极大,即
    (10)θ(i+1)=argmaxθB(θ,θ(i)) \theta^{(i+1)}=arg\max_\theta B(\theta,\theta^{(i)}) \tag{10}
    现在求θ(i+1)\theta^{(i+1)}的表达式。省去对θ\theta的极大化而言是常数的项,则有
    (11)θ(i+1)=argmaxθ(L(θ(i))+ZP(ZY,θ(i))logP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i)))=argmaxθ(ZP(ZY,θ(i))log(P(YZ,θ)P(Zθ)))=argmaxθ(ZP(ZY,θ(i))logP(Y,Zθ))=argmaxθQ(θ,θ(i)) \begin{aligned} \theta^{(i+1)}&=arg\max_\theta\bigg(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)})}\bigg) \\ &=arg\max_\theta\bigg(\sum_ZP(Z|Y,\theta^{(i)})log(P(Y|Z,\theta)P(Z|\theta))\bigg) \\ &=arg\max_\theta\bigg(\sum_ZP(Z|Y,\theta^{(i)})logP(Y,Z|\theta)\bigg) \\ &=arg\max_\theta Q(\theta,\theta^{(i)}) \tag{11} \end{aligned}
    上式等价于EM算法的一次迭代,即求QQ函数及其极大化。EMEM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
    下图给出EM算法的直观解释。途中上方曲线为L(θ)L(\theta),下方曲线为B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i))B(\theta,\theta^{(i)})为对数似然函数L(θ)L(\theta)的下界。同时,两个函数在点θ=θ(i)\theta=\theta^{(i)}处相等。则EM算法找到下一个点θ(i+1)\theta^{(i+1)}使函数B(θ,θ(i))B(\theta,\theta^{(i)})极大化,也使函数Q(θ,θ(i))Q(\theta,\theta^{(i)})极大化。这时由于L(θ)B(θ,θ(i))L(\theta)\geq B(\theta,\theta^{(i)}),函数B(θ,θ(i))B(\theta,\theta^{(i)})的增加,保证对数似然函数L(θ)L(\theta)在每次迭代中也是增加的。EM算法在点θ(i+1)\theta^{(i+1)}重新计算QQ函数值,进行下一次迭代。在这个过程中,对数似然函数L(θ)L(\theta)不断增大。从图可以推断出EM算法不能保证找到全局最优解。
    统计学习方法读书笔记第九章:EM算法及其推广
  • EM算法在非监督学习中的应用
    监督学习是由训练数据{(x1,y1),(x2,y2), ,(xN,yN)}\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}学习条件概率分布P(YX)P(Y|X)或决策函数Y=f(X)Y=f(X)作为模型,用于分类、回归、标注等任务。这时训练数据中的每个样本点由输入和输出对组成。
    有时训练数据只有输入没有对应的输出{(x1,),(x2,), ,(xN,)}\{(x_1,\cdot),(x_2,\cdot),\cdots,(x_N,\cdot)\},从这样的数据学习模型称为非监督学习问题。EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布P(X,Y)P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。XX为观测数据,YY为未观测数据。

EM算法的收敛性

EM算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法。EM算法的最大优点是简单性和普适性。我们很自然地要问:EM算法得到的估计序列是否收敛?如果收敛,是否收敛到全局最大值或局部最大值?下面给出关于EM算法收敛性的两个定理。

  • 定理1P(Yθ)P(Y|\theta)为观测数据的似然函数,θ(i)(i=1,2, )\theta^{(i)}(i=1,2,\cdots)为EM算法得到的参数估计序列,P(Yθ(i))(i=1,2, )P(Y|\theta^{(i)})(i=1,2,\cdots)为对应的似然函数序列,则P(Yθ(i))P(Y|\theta^{(i)})是单调递增的,即
    (12)P(Yθ(i+1))P(Yθ(i)) P(Y|\theta^{(i+1)})\geq P(Y|\theta^{(i)}) \tag{12}
    证明 由于
    P(Yθ)=P(Y,Zθ)P(ZY,θ) P(Y|\theta)=\frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}
    取对数有
    logP(Yθ)=logP(Y,Zθ)logP(ZY,θ) logP(Y|\theta)=logP(Y,Z|\theta)-logP(Z|Y,\theta)
    由Q函数
    Q(θ,θ(i))=ZlogP(Y,Zθ)P(ZY,θ(i)) Q(\theta,\theta^{(i)})=\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)})

    (13)H(θ,θ(i))=ZlogP(ZY,θ)P(ZY,θ(i)) H(\theta,\theta^{(i)})=\sum_ZlogP(Z|Y,\theta)P(Z|Y,\theta^{(i)}) \tag{13}
    于是对数似然函数可以写成
    (14)logP(Yθ)=Q(θ,θ(i))H(θ,θ(i)) logP(Y|\theta)=Q(\theta,\theta^{(i)})-H(\theta,\theta^{(i)}) \tag{14}
    在上式中分别取θ\thetaθ(i)\theta^{(i)}θi+1\theta^{i+1}并相减,有
    (15)logP(Yθ(i+1))logP(Yθ(i))=[Q(θ(i+1),θ(i))Q(θ(i),θ(i))][H(θ(i+1))] \begin{aligned} &logP(Y|\theta^{(i+1)})-logP(Y|\theta^{(i)}) \\ &=[Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})]-[H(\theta^{(i+1)})] \tag{15} \end{aligned}
    为证式(12),只需证式(15)右端是非负的。式(15)右端的第1项,由于θ(i+1)\theta^{(i+1)}使Q(θ,θ(i))Q(\theta,\theta^{(i)})达到极大,所以有
    (16)Q(θ(i+1),θ(i))Q(θ(i),θ(i))0 Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})\geq 0 \tag{16}
    其第2项,由式(13)可得:
    (17)H(θ(i+1),θ(i))H(θ(i),θ(i))=Z(logP(ZY,θ(i+1))P(ZY,θ(i)))P(ZY,θ(i))log(ZP(ZY,θ(i+1))P(ZY,θ(i))P(ZY,θ(i)))=logP(ZY,θ(i+1))=0 \begin{aligned} H(\theta^{(i+1)},&\theta^{(i)})-H(\theta^{(i)},\theta^{(i)}) \\ &=\sum_Z\bigg(log\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}\bigg)P(Z|Y,\theta^{(i)}) \\ &\leq log\bigg(\sum_Z\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}P(Z|Y,\theta^{(i)})\bigg) \\ &=logP(Z|Y,\theta^{(i+1)})=0 \tag{17} \end{aligned}
    这里的不等号由Jensen不等式得到。
    由式(16)和式(17)即知式(15)右端是非负的。
    定理2L(θ)=logP(Yθ)L(\theta)=logP(Y|\theta)为观测数据的对数似然函数,θ(i)(i=1,2, )\theta^{(i)}(i=1,2,\cdots)为EM算法得到的参数估计序列,L(θ(i))(i=1,2, )L(\theta^{(i)})(i=1,2,\cdots)为对应的对数似然函数序列。
    (1) 如果P(Yθ)P(Y|\theta)有上界,则L(θ(i))=logP(Yθ(i))L(\theta^{(i)})=logP(Y|\theta^{(i)})收敛到某一值LL^{*}
    (2) 在函数Q(θ,θ)Q(\theta,\theta')L(θ)L(\theta)满足一定条件下,由EM算法得到的参数估计序列θ(i)\theta^{(i)}的收敛值θ\theta^{*}L(θ)L(\theta)的稳定点。
    证明 (1)由L(θ)=logP(Yθ(i))L(\theta)=logP(Y|\theta^{(i)})的单调性及P(Yθ)P(Y|\theta)的有界性立即得到。
    (2) 证明从略。
    定理2关于函数Q(θ,θ)Q(\theta,\theta')L(θ)L(\theta)的条件在大多数情况下都是满足的。EM算法的收敛性包含关于对数似然函数序列L(θ(i))L(\theta^{(i)})的收敛性和关于参数估计序列θ(i)\theta^{(i)}的收敛性两层意思,前者并不蕴含后者。此外,定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。所以在应用中,初值的选择变得非常重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

EM算法在高斯混合模型学习中的应用

EM算法的一个重要应用是高斯混合模型的参数估计。高斯混合模型应用广泛,在许多情况下,EM算法是学习高斯混合模型的有效方法。

  • 高斯混合模型
    定义2(高斯混合模型) 高斯混合模型是指具有如下形式的概率分布模型:
    (18)P(yθ)=k=1Kαkϕ(yθk) P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta_k) \tag{18}
    其中,αk\alpha_k是系数,αk0\alpha_k\geq0k=1Kαk=1\sum_{k=1}^K\alpha_k=1ϕ(yθk)\phi(y|\theta_k)是高斯分布密度,θk=(μk,σk2)\theta_k=(\mu_k,\sigma_k^2)
    (19)ϕ(yθk)=12πσkexp((yμk)22σk2)  \phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\exp\bigg(-\frac{(y-\mu_k)^2}{2\sigma_k^2}\bigg) \tag{19}
    称为第kk个分模型。
    一般混合模型可以由任意概率分布密度代替式(19)中的高斯分布密度,我们只介绍最常用的高斯混合模型。

  • 高斯混合模型参数估计的EM算法
    假设观测数据y1,y2, ,yNy_1,y_2,\cdots,y_N由高斯混合模型生成,
    (20)P(yθ)=k=1Kαkϕ(yθ) P(y|\theta)=\sum_{k=1}^K\alpha_k\phi(y|\theta) \tag{20}
    其中,θ=(α1,α2, ,αK;θ1,θ2, ,θK)\theta=(\alpha_1,\alpha_2,\cdots,\alpha_K;\theta_1,\theta_2,\cdots,\theta_K)。我们用EM算法估计高斯混合模型的参数θ\theta

  1. 明确隐变量,写出完全数据的对数似然函数
    可以摄像观测数据yj,j=1,2, ,Ny_j,j=1,2,\cdots,N,是这样产生的:首先依概率αk\alpha_k选择第kk个高斯分布模型ϕ(yθk)\phi(y|\theta_k);然后依第kk个分模型的概率分布ϕ(yθk)\phi(y|\theta_k)生成观测数据yjy_j。这时观测数据yj,j=1,2, ,Ny_j,j=1,2,\cdots,N,是已知的;反映观测数据yjy_j来自第kk个分模型的数据是未知的,k=1,2, ,Kk=1,2,\cdots,K,以隐变量γjk\gamma_{jk}表示,定义如下:
    (21)γjk={1,jk0,j=1,2, ,N;k=1,2, ,K \gamma_{jk}=\left\{ \begin{array}{ll} 1, & 第j个观测来自第k个模型 \\ 0, & 否则 \end{array}\right. \\ j=1,2,\cdots,N; k=1,2,\cdots,K \tag{21}
    γjk\gamma_{jk}是0-1随机变量。
    有了观测数据yjy_j及未观测数据γjk\gamma_{jk},那么完全数据是
    (yj,γj1,γj2, ,γjK),j=1,2, ,N (y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}), j=1,2,\cdots,N
    于是,可以写出完全数据的似然函数:
    P(y,γθ)=j=1NP(yj,γj1,γj2, ,γjKθ)=k=1Kj=1N[αkϕ(yjθk)]γjk=k=1Kαknkj=1N[ϕ(yjθk)]γjk=k=1Kαknkk=1N[12πσkexp((yjμk)22σk2)]γjk \begin{aligned} P(y,\gamma|\theta)&=\prod_{j=1}^NP(y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}|\theta) \\ &=\prod_{k=1}^K\prod_{j=1}^N[\alpha_k\phi(y_j|\theta_k)]^{\gamma_{jk}} \\ &=\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N[\phi(y_j|\theta_k)]^{\gamma_{jk}} \\ &=\prod_{k=1}^K\alpha_k^{n_k}\prod_{k=1}^N\bigg[\frac{1}{\sqrt{2\pi}\sigma_k}\exp\bigg(-\frac{(y_j-\mu_k)^2}{2\sigma_k^2}\bigg)\bigg]^{\gamma_{jk}} \end{aligned}
    式中,nk=j=1Nγjkn_k=\sum_{j=1}^N\gamma_{jk}k=1Knk=N\sum_{k=1}^Kn_k=N
    那么,完全数据的对数似然函数为
    (22)logP(y,γθ)=k=1Knklogαk+j=1Nγjk[log(12π)logσk12σ2(yjμk)2] \log P(y,\gamma|\theta)=\sum_{k=1}^Kn_k\log\alpha_k+\sum_{j=1}^N\gamma_{jk}\bigg[\log\bigg(\frac{1}{\sqrt{2\pi}}\bigg)-\log\sigma_k-\frac{1}{2\sigma^2}(y_j-\mu_k)^2\bigg] \tag{22}
  2. EM算法的E步:确定Q函数
    Q(θ,θ(i))=E[logP(y,γθ)y,θ(i)]=E{k=1Knklogαk+j=1Nγjk[log(12π)logσk12σk2(yjμk)2]}=k=1K{j=1N(Eγjk)logαk+j=1N(Eγjk)[log(12π)logσk12σk2(yjμk)2]} \begin{aligned} Q(\theta,\theta^{(i)})&=E[\log P(y,\gamma|\theta)|y,\theta^{(i)}] \\ &=E\bigg\{\sum_{k=1}^Kn_k\log\alpha_k+\sum_{j=1}^N\gamma_{jk}\bigg[\log\bigg(\frac{1}{\sqrt{2\pi}}\bigg)-\log\sigma_k-\frac{1}{2\sigma_k^2(y_j-\mu_k)^2}\bigg]\bigg\} \\ &=\sum_{k=1}^K\bigg\{\sum_{j=1}^N(E\gamma_{jk})\log\alpha_k+\sum_{j=1}^N(E\gamma_{jk})\bigg[\log\bigg(\frac{1}{\sqrt{2\pi}}\bigg)-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2\bigg]\bigg\} \end{aligned}
    这里需要计算E(γjky,θ)E(\gamma_{jk}|y,\theta),记为γ^jk\hat\gamma_{jk}
    γ^jk=E(γjky,θ)=P(γjk=1y,θ)=P(γjk=1,yjθ)k=1KP(γjk=1,yjθ)=P(yjγjk=1,θ)P(γjk=1theta)k=1KP(yjγjk=1,θ)P(γjk=1θ)=αkϕ(yjθk)k=1Kαkϕ(yjθ),j=1,2, ;k=1,2, ,K \begin{aligned} \hat\gamma_{jk}&=E(\gamma_{jk}|y,\theta)=P(\gamma_{jk}=1|y,\theta) \\ &=\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)} \\ &=\frac{P(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|theta)}{\sum_{k=1}^KP(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)} \\ &=\frac{\alpha_k\phi(y_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(y_j|\theta)}, j=1,2,\cdots; k=1,2,\cdots,K \end{aligned}
    γ^jk\hat\gamma_{jk}是在当前模型参数下第jj个观测数据来自第kk个分模型的概率,称为分模型kk对观测数据yjy_j的响应度。
    γ^jk=Eγjk\hat\gamma_{jk}=E\gamma_{jk}nk=j=1NEγjkn_k=\sum_{j=1}^NE\gamma_{jk}代入式(22)即得
    (23)Q(θ,θ(i))=k=1Knklogαk+k=1Nγ^jk[log(12π)logσk12σk2(yjμk)2] Q(\theta,\theta^{(i)})=\sum_{k=1}^Kn_k\log\alpha_k+\sum_{k=1}^N\hat\gamma_{jk}\bigg[\log\bigg(\frac{1}{\sqrt{2\pi}}\bigg)-\log\sigma_k-\frac{1}{2\sigma_k^2}(y_j-\mu_k)^2\bigg] \tag{23}
  3. 确定EM算法的M步
    迭代的M步是求函数Q(θ,θ(i))Q(\theta,\theta^{(i)})θ\theta的极大值,即求新一轮迭代的模型参数:
    θ(i+1)=argmaxθQ(θ,θ(i)) \theta^{(i+1)}=\arg\max_\theta Q(\theta,\theta^{(i)})
    μ^k\hat\mu_kσ^k2\hat\sigma_k^2α^k\hat\alpha_kk=1,2, ,Kk=1,2,\cdots,K,表示θ(i+1)\theta^{(i+1)}的各参数。求μ^k\hat\mu_kσ^k2\hat\sigma_k^2只需将式(23)分别对μk\mu_kσk2\sigma_k^2求偏导数并令其为0,即可得到;求α^k\hat\alpha_k是在k=1Kαk=1\sum_{k=1}^K\alpha_k=1条件下求偏导数并令其为0得到的。结果如下:
    (24)μ^k=j=1Nγ^jkyjj=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 \tag{24}
    (25)σ^k2=j=1Nγ^jk(yjμk)2j=1Nγ^jk,k=1,2, ,K \hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,K \tag{25}
    (26)α^k=nkN=j=1Nγ^jkN,k=1,2, ,N \hat\alpha_k=\frac{n_k}{N}=\frac{\sum_{j=1}^N\hat\gamma_{jk}}{N}, k=1,2,\cdots,N \tag{26}
    重复以上计算,直到对数似然函数值不再有明显的变化为止。
    现将估计高斯混合模型参数的EM算法总结如下:
    算法2(高斯混合模型参数估计的EM算法)
    输入:观测数据y1,y2, ,yNy_1,y_2,\cdots,y_N,高斯混合模型;
    输出:高斯混合模型参数。
    (1) 取参数的初始值开始迭代
    (2) E步:依据当前模型参数,计算分模型kk对观测数据yjy_j的响应度
    γ^jk=αkϕ(yjθk)k=1Kαkϕ(yjθ),j=1,2, ;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)}, j=1,2,\cdots; k=1,2,\cdots,K
    (3) M步:计算新一轮迭代的模型参数
    μ^k=j=1Nγ^jkyjj=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
    σ^k2=j=1Nγ^jk(yjμk)2j=1Nγ^jk,k=1,2, ,K \hat\sigma_k^2=\frac{\sum_{j=1}^N\hat\gamma_{jk}(y_j-\mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}}, k=1,2,\cdots,K
    α^k=j=1Nγ^jkN,k=1,2, ,N \hat\alpha_k=\frac{\sum_{j=1}^N\hat\gamma_{jk}}{N}, k=1,2,\cdots,N
    (4) 重复第(2)步和第(3)步,直到收敛。

EM算法的推广

EM算法还可以解释为F函数的极大-极大算法,基于这个解释有若干变形与推广,如广义期望极大算法。下面予以介绍。

  • F函数的极大-极大算法
    首先引进F函数并讨论其性质。
    定义3(F函数) 假设隐变量数据ZZ的概率分布为P~(Z)\tilde P(Z),定义分布P~\tilde P与参数θ\theta的函数F(P~,θ)F(\tilde P, \theta)如下:
    (27)F(P~,θ)=EP~[logP(Y,Zθ)]+H(P~) F(\tilde P,\theta)=E_{\tilde P}[\log P(Y,Z|\theta)]+H(\tilde P) \tag{27}
    称为F函数。式中H(P~)=EP~logP~(Z)H(\tilde P)=-E_{\tilde P}\log\tilde P(Z)是分布P~(Z)\tilde P(Z)的熵。
    在定义3中,通常假设P(Y,Zθ)P(Y,Z|\theta)θ\theta的连续函数,因而F(P~,θ)F(\tilde P,\theta)P~\tilde Pθ\theta的连续函数。函数F(P~,θ)F(\tilde P,\theta)还有以下重要性质:
    引理1 对于固定的θ\theta,存在唯一的分布P~θ\tilde P_\theta极大化F(P~,θ)F(\tilde P,\theta),这时P~θ\tilde P_\theta由下式给出:
    (28)P~θ(Z)=P(ZY,θ) \tilde P_\theta(Z)=P(Z|Y,\theta) \tag{28}
    并且P~θ\tilde P_\thetaθ\theta连续变化。
    证明 对于固定的θ\theta,可以求得使F(P~,θ)F(\tilde P,\theta)达到极大的分布P~θ(Z)\tilde P_\theta(Z)。为此,引进拉格朗日乘子λ\lambda,拉格朗日函数为
    (29)L=EP~logP(Y,Zθ)EP~logP~(Z)+λ(1ZP~(Z)) L=E_{\tilde P}\log P(Y,Z|\theta)-E_{\tilde P}\log \tilde P(Z)+\lambda\bigg(1-\sum_Z\tilde P(Z)\bigg) \tag{29}
    将其对P~\tilde P求偏导数:
    LP~(Z)=logP(Y,Zθ)logP~(Z)1λ \frac{\partial L}{\partial\tilde P(Z)}=\log P(Y,Z|\theta)-\log\tilde P(Z)-1-\lambda
    令偏导数等于0,得出
    λ=logP(Y,Zθ)logP~θ(Z)1 \lambda=\log P(Y,Z|\theta)-\log \tilde P_\theta(Z)-1
    由此推出P~θ(Z)\tilde P_\theta(Z)P(Y,Zθ)P(Y,Z|\theta)成比例
    P(Y,Zθ)P~θ(Z)=e1+λ \frac{P(Y,Z|\theta)}{\tilde P_\theta(Z)}=e^{1+\lambda}
    再从约束条件ZP~θ(Z)=1\sum_Z\tilde P_\theta(Z)=1得式(28)。
    由假设P(Y,Zθ)P(Y,Z|\theta)θ\theta的连续函数,得到P~θ\tilde P_\thetaθ\theta的连续函数。
    引理2P~θ(Z)=P(ZY,θ)\tilde P_\theta(Z)=P(Z|Y,\theta),则
    (30)F(P~,θ)=logP(Yθ) F(\tilde P,\theta)=\log P(Y|\theta) \tag{30}
    由以上引理,可以得到关于EM算法用F函数的极大-极大算法的解释。
    定理3L(θ)=logP(Yθ)L(\theta)=\log P(Y|\theta)为观测数据的对数似然函数,θ(i),i=1,2,\theta^{(i)},i=1,2,\cdots,为EM算法得到的参数估计序列,函数F(P~,θ)F(\tilde P,\theta)由式(27)定义。若果F(P~,θ)F(\tilde P,\theta)P~\tilde P^*θ\theta^*有局部极大值,那么L(θ)L(\theta)也在θ\theta^*有局部极大值。类似地,如果F(P~,θ)F(\tilde P,\theta)P~\tilde P^*θ\theta^*达到全局最大值,那么L(θ)L(\theta)也在θ\theta^*达到全局最大值。
    证明 由引理1和引理2可知,L(θ)=logP(Yθ)=F(P~θ,θ)L(\theta)=\log P(Y|\theta)=F(\tilde P_\theta,\theta)对任意θ\theta成立。特别地,对于使F(P~,θ)F(\tilde P,\theta)达到极大的参数θ\theta^*,有
    (31)L(θ)=F(P~θ,θ)=F(P~,θ) L(\theta^*)=F(\tilde P_{\theta^*},\theta^*)=F(\tilde P^*,\theta^*) \tag{31}
    为了证明θ\theta^*L(θ)L(\theta)的极大点,需要证明不存在接近θ\theta^*的点θ\theta^{**},使L(θ)>L(θ)L(\theta^{**})>L(\theta^*)。加入存在这样的点θ\theta^{**},那么应有F(P~,θ)>F(P~,θ)F(\tilde P^{**},\theta^{**})>F(\tilde P^*,\theta^*),这里P~=P~θ\tilde P^{**}=\tilde P_{\theta^{**}}。但因P~θ\tilde P_\theta是随θ\theta连续变化的,P~\tilde P^{**}应接近P~\tilde P^*,这与P~\tilde P^*θ\theta^*F(P~,θ)F(\tilde P,\theta)的局部极大点的假设矛盾。
    类似可以证明关于全局最大值的结论。
    定理4 EM算法的一次迭代可由F函数的极大-极大算法实现。
    θ(i)\theta^{(i)}为第ii次迭代参数θ\theta的估计,P~(i)\tilde P^{(i)}为第ii次迭代函数P~\tilde P的估计。在第i+1i+1次迭代的两步为
    (1) 对固定的θ(i)\theta^{(i)},求P~(i+1)\tilde P^{(i+1)}使F(P~,θ(i))F(\tilde P,\theta^{(i)})极大化;
    (2) 对固定的P~(i+1)\tilde P^{(i+1)},求θi+1\theta^{i+1}使F(P~(i+1),θ)F(\tilde P^{(i+1)},\theta)极大化。
    证明 (1) 由引理1,对于固定的θ(i)\theta^{(i)}
    P~(i+1)(Z)=P~θ(i)(Z)=P(ZY,θ(i)) \tilde P^{(i+1)}(Z)=\tilde P_{\theta^{(i)}}(Z)=P(Z|Y,\theta^{(i)})
    使F(P~,θ(i))F(\tilde P,\theta^{(i)})极大化。此时
    F(P~(i+1),θ)=EP~(i+1)[logP(Y,Zθ)]+H(P~(i+1))=ZlogP(Y,Zθ)P(ZY,θ(i))+H(P~(i+1)) \begin{aligned} F(\tilde P^{(i+1)},\theta)&=E_{\tilde P^{(i+1)}}[\log P(Y,Z|\theta)]+H(\tilde P^{(i+1)}) \\ &=\sum_Z\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)})+H(\tilde P^{(i+1)}) \end{aligned}
    Q(θ,θ(i))Q(\theta,\theta^{(i)})的定义式(5)有
    F(P~(i+1),θ)=Q(θ,θ(i))+H(P~(i+1)) F(\tilde P^{(i+1)},\theta)=Q(\theta,\theta^{(i)})+H(\tilde P^{(i+1)})
    (2) 固定P~(i+1)\tilde P^{(i+1)},求θ(i+1)\theta^{(i+1)}使F(P~(i+1),θ)F(\tilde P^{(i+1)},\theta)极大化。得到
    θ(i+1)=argmaxθF(P~(i+1),θ)=argmaxθQ(θ,θ(i)) \theta^{(i+1)}=\arg\max_\theta F(\tilde P^{(i+1)},\theta)=\arg\max_\theta Q(\theta,\theta^{(i)})
    通过以上两步完成了EM算法的一次迭代。由此可知,由EM算法与F函数的极大-极大算法得到的参数估计序列θ(i),i=1,2,\theta^{(i)},i=1,2,\cdots,是一致的。
    这样,就有EM算法的推广。

  • GEM算法
    算法3(GEM算法1)
    输入:观测数据,F函数;
    输出:模型参数。
    (1) 初始化参数θ(0)\theta^{(0)},开始迭代
    (2) 第i+1i+1次迭代,第1步:记θ(i)\theta^{(i)}为参数θ\theta的估计值,P~(i)\tilde P^{(i)}为函数P~\tilde P的估计。求P~(i+1)\tilde P^{(i+1)}使P~\tilde P极大化F(P~,θ(i))F(\tilde P,\theta^{(i)})
    (3) 第2步:求θ(i+1)\theta^{(i+1)}使F(P~(i+1),θ)F(\tilde P^{(i+1)},\theta)极大化
    (4) 重复(2)和(3),直到收敛。
    在GEM算法1中,有时求Q(θ,θ(i))Q(\theta,\theta^{(i)})的极大化是很困难的。下面介绍的GEM算法2和GEM算法3并不是直接求θ(i+1)\theta^{(i+1)}使Q(θ,θ(i))Q(\theta,\theta^{(i)})达到极大的θ\theta,而是找一个θ(i+1)\theta^{(i+1)}使得Q(θ(i+1),θ(i))>Q(θ(i),θ(i))Q(\theta^{(i+1)},\theta^{(i)})>Q(\theta^{(i)},\theta^{(i)})
    算法4(GEM算法2)
    输入:观测数据,Q函数;
    输出:模型参数。
    (1) 初始化参数θ(0)\theta^{(0)},开始迭代
    (2) 第i+1i+1次迭代,第1步:记θ(i)\theta^{(i)}为参数θ\theta的估计值,计算
    Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=ZP(ZY,θ(i))logP(Y,Zθ) \begin{aligned} Q(\theta,\theta^{(i)})&=E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}] \\ &=\sum_ZP(Z|Y,\theta^{(i)})\log P(Y,Z|\theta) \end{aligned}
    (3) 第2步:求θ(i+1)\theta^{(i+1)}使
    KaTeX parse error: Expected 'EOF', got '\thata' at position 35: …theta^{(i)})>Q(\̲t̲h̲a̲t̲a̲{(i)},\theta^{(…
    (4) 重复(2)和(3),直到收敛。
    当参数θ\theta的维数为d(d2)d(d\geq 2)时,可采用一种特殊的GEM算法,它将EM算法的M步分解为d次条件极大化,每次只改变参数向量的一个分量,其余分量不改变。
    算法5(GEM算法3)
    输入:观测数据,Q函数;
    输出:模型参数。
    (1) 初始化参数θ(0)=(θ1(0),θ2(0), ,θd(0))\theta^{(0)}=(\theta_1^{(0)},\theta_2^{(0)},\cdots,\theta_d^{(0)}),开始迭代
    (2) 第i+1i+1次迭代,第1步:记θ(i)=(θ1(i),θ2(i), ,θd(i))\theta^{(i)}=(\theta_1^{(i)},\theta_2^{(i)},\cdots,\theta_d^{(i)})为参数θ=(θ1,θ2, ,θd)\theta=(\theta_1,\theta_2,\cdots,\theta_d)的估计值,计算
    Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)]=ZP(ZY,θ(i))logP(Y,Zθ) \begin{aligned} Q(\theta,\theta^{(i)})&=E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}] \\ &=\sum_ZP(Z|Y,\theta^{(i)})\log P(Y,Z|\theta) \end{aligned}
    (3) 第2步:进行d次条件极大化:
    首先,在θ2(i), ,θk(i)\theta_2^{(i)},\cdots,\theta_k^{(i)}保持不变的条件下求使Q(θ,θ(i))Q(\theta,\theta^{(i)})达到极大的θ2(i+1)\theta_2^{(i+1)}
    然后,在θ1=θ1(i+1),θj=θj(i),j=2,3, ,k\theta_1=\theta_1^{(i+1)},\theta_j=\theta_j^{(i)},j=2,3,\cdots,k的条件下求使Q(θ,θ(i))Q(\theta,\theta^{(i)})达到极大的θ2(i+1)\theta_2^{(i+1)}
    如此继续,经过d次条件极大化,得到θ(i+1)=(θ1(i+1),θ2(i+1), ,θd(i+1))\theta^{(i+1)}=(\theta_1^{(i+1)},\theta_2^{(i+1)},\cdots,\theta_d^{(i+1)})使得
    KaTeX parse error: Expected 'EOF', got '\thata' at position 35: …theta^{(i)})>Q(\̲t̲h̲a̲t̲a̲{(i)},\theta^{(…
    (4) 重复(2)和(3),直到收敛。