CS229课程笔记12:EM算法及混合高斯的应用

Ng此部分先介绍了EM算法的步骤,然后证明了其一致递增性(收敛性),最后给出了应用于混合高斯的例子。


机器学习的一种任务是求取某个显示变量 x 的概率分布P(x;θ),但是鉴于 P(x) 不属于常见的易于表示的(例如指数型的变形)概率分布,无法通过简易的最大log-likelihood的方式求取。一种方式就是假设存在某种隐变量 z P(x,z;θ)可以表示为简易概率分布的组合,例如 P(x|z;θ) P(z;θ) 都是某种常见的概率分布,则可以通过EM算法最大化 argmaxθP(X;θ) 近似求解 x 的概率分布。

更一般的,EM算法的目标是最大化P(x;θ),假设存在隐变量 z ,通过最大化P(x,z;θ)的某种形式,逐步最大化 P(X;θ) ,并且保证 P(X;θ) 在过程中单调递增,即保证了收敛性。值得注意的是通常情况下 P(X;θ) 是非凸的,所以单调递增只能保证收敛到某个局部极值(甚至是鞍点),即EM算法不保证找到最优值,通常的做法是多次初始化选取使得 P(X;θ) 最大的参数值。

EM算法

明确目标:最大似然,即采样得到训练集的概率最大。

argmaxθlogP(X;θ)=argmaxθlogi=1mP(xi;θ)                                 =argmaxθi=1mlogP(xi;θ)

根据 log 函数的性质( log(x)=1/x>0 以及 log′′(x)=1/x2<0 ),可知 logEXElogX (Jensen不等式)。因为 log′′(x) 严格小于 0 ,可知当且仅当EX=X(即 X 为常数)时logEX=ElogX,否则 logEX>ElogX

利用Jensen不等式,我们可以构造 logP(X;θ) 下部近似(其中 xi 是样本 i 的显示变量,而zi是样本 i 的隐变量,zi的可能取值有 k 个,样本数为m Q(zi=j;θ) zi 的某种概率分布):

l(θ;X)=i=1mlogP(xi;θ)=i=1mlogj=1kP(xi,zi=j;θ)=i=1mlogj=1kQ(zi=j;θ)P(xi,zi=j;θ)Q(zi=j;θ)i=1mj=1kQ(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)

其中第三个不等式成立的条件是: ikj=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=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) ,从而使得 l(θ;X) 递增。

收敛性验证也就十分直观:

                                             l(θ;X)i=1mj=1kQ(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)                                                      i=1mj=1kQ(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=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) θ 的变化过程。图中 θ 为迭代前的参数值,而 θ 是迭代后的参数值。注意到通过E步骤近似 Q(zi=j;θ) ,得到的红线与黑线在 θ 处相切,即 l(θ;X)=mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) 。同时根据Jensen不等式,红线一致位于黑线下方,即 mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) l(θ;X) 的下部近似。M步骤最大化红线的取值,并更改参数值为 θ ,注意到黑线在 θ 处的取值( l(θ;X) )大于红线在 θ 处的取值( mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) )大于红线在 θ 处的取值( mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) )等于黑线在 θ 处的取值 l(θ;X) ,即每次迭代都使得 l(θ;X) 递增。

EM_alg

Ng还给出了EM算法的另一种看待方式:设 J(Q,θ;X)=mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) ,则EM算法可以看做是 J 的坐标轴递增算法。E步骤更新Q(zi=j;θ)使得 J(Q,θ;X)=l(θ;X)J(Q,θ;X) ;M步骤更新 θ 使得 θ=argmaxθJ(Q,θ;X) 。根据 J(Q,θ;X) 的单调性,从而证明了EM算法的收敛性。

混合高斯算法

目标:求解 argmaxθlogP(X;θ) ,其中 θ={ϕj=1k,μj=1k,Σj=1k}

假设:存在隐变量 z ,其中z服从多项式分布,有 P(z=j)=ϕj 以及 ki=1ϕj=1 p(x|z) 服从高斯分布,有 p(x|z=j)N(μj,Σj)

使用EM算法

E步骤:估计 γij=p(zi=j|xi;θ(t)) 进而估计 mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)

p(zi=j|xi;θ)=p(zi=j,xi;θ)kh=1p(zi=h,xi;θ)                                                                      =p(zi=j;θ)p(xi|zi=j;θ)kh=1p(zi=j;θ)p(xi|zi=j;θ)                            =ϕj12π|Σj|exp(12(xiμj)TΣj(xiμj))kh=1ϕh12π|Σh|exp(12(xiμh)TΣh(xiμh))

i=1mj=1kQ(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ)=i=1mj=1kγijlogP(xi,zi=j;θ)γij=i=1mj=1kγijlogϕj12π|Σj|exp(12(xiμj)TΣj(xiμj))γij

M步骤:最大化 mi=1kj=1Q(zi=j;θ)logP(xi,zi=j;θ)Q(zi=j;θ) 实际为分别最大化带权重的高斯分布(因为 zi 的各个取值互不影响);对 ϕj 的最优化需要结合 kj=1ϕj=1 ,同样是最大化带权重的多项式分布。综上可得:

ϕj=mi=1γijkh=1mi=1γihμj=mi=1γijximi=1γijΣj=mi=1γij(xiμj)(xiμj)Tmi=1γij

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值