Ng此部分先介绍了EM算法的步骤,然后证明了其一致递增性(收敛性),最后给出了应用于混合高斯的例子。
机器学习的一种任务是求取某个显示变量x的概率分布
更一般的,EM算法的目标是最大化
EM算法
明确目标:最大似然,即采样得到训练集的概率最大。
根据log函数的性质(log′(x)=1/x>0以及log′′(x)=−1/x2<0),可知logEX≥ElogX(Jensen不等式)。因为log′′(x)严格小于0,可知当且仅当
利用Jensen不等式,我们可以构造logP(X;θ)的下部近似(其中xi是样本i的显示变量,而
其中第三个不等式成立的条件是:∀i∑kj=1Q(zi=j;θ)=1和Q(zi=j;θ)≥0,等号成立的条件是∀i,∑kj=1Q(zi=j;θ)P(xi,zi=j;θ)Q(zi=j;θ)=P(xi,zi=j;θ)Q(zi=j;θ),即P(xi,zi=j;θ)Q(zi=j;θ)是个常数。
若仅仅需要不等式成立,Q(zi=j;θ)可以是任意概率分布,但是为了保证EM算法的单调递增性(即收敛性),我们需要保证等号在当前θ不变的情况下成立。即P(xi,zi=j;θ)Q(zi=j;θ)=c,结合∑kj=1Q(zi=j;θ)=1,有c=∑kj=1P(xi,zi=j;θ)=P(xi;θ),进而Q(zi=j;θ)=P(zi=j|xi;θ)。
综上所述,EM算法的具体步骤如下:
E(Estimate)步骤:估计Q(zi=j;θ)=P(zi=j|xi;θ)。
M(Maximize)步骤:最大化l(θ;X)的下部近似:∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ),从而使得l(θ;X)递增。
收敛性验证也就十分直观:
第一个不等式成立的条件是Jensen不等式,第二个不等式成立的条件是M步骤的最大化,第三个等式的成立条件是E步骤中设定Q(zi=j;θ)使得P(xi,zi=j;θ)Q(zi=j;θ)是常数。
EM算法的一次迭代过程的图示如下,其中黑线表示的l(θ;X)随θ的变换过程,红线是E步骤近似Q(zi=j;θ)之后∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)随θ的变化过程。图中θ为迭代前的参数值,而θ′是迭代后的参数值。注意到通过E步骤近似Q(zi=j;θ),得到的红线与黑线在θ处相切,即l(θ;X)=∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)。同时根据Jensen不等式,红线一致位于黑线下方,即∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)是l(θ;X)的下部近似。M步骤最大化红线的取值,并更改参数值为θ′,注意到黑线在θ′处的取值(l(θ′;X))大于红线在θ′处的取值(∑mi=1∑kj=1Q(zi=j;θ′)logP(xi,zi=j;θ′)Q(zi=j;θ′))大于红线在θ处的取值(∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ))等于黑线在θ处的取值l(θ;X),即每次迭代都使得l(θ;X)递增。
Ng还给出了EM算法的另一种看待方式:设J(Q,θ;X)=∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ),则EM算法可以看做是J的坐标轴递增算法。E步骤更新
混合高斯算法
目标:求解argmaxθlogP(X;θ),其中θ={ϕj=1⋯k,μj=1⋯k,Σj=1⋯k}。
假设:存在隐变量z,其中
使用EM算法:
E步骤:估计γij=p(zi=j|xi;θ(t))进而估计∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)。
M步骤:最大化∑mi=1∑kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)实际为分别最大化带权重的高斯分布(因为zi的各个取值互不影响);对ϕj的最优化需要结合∑kj=1ϕj=1,同样是最大化带权重的多项式分布。综上可得: