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
,同样是最大化带权重的多项式分布。综上可得: