从第九章开始,学习总结的东西有所不同了,第2-8章是分类问题,都属于监督学习,第9章EM算法是非监督学习。本文主要是总结EM算法的应用以及处理问题的过程和原理推导。
EM算法
![]()
EM算法(期望极大算法 expectation maximization algorithm)是一种迭代算法。当我们面对概率模型的时候,既有观测变量,又含有隐变量或者潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接使用极大似然估计法或者贝叶斯估计模型估计参数,但是,当模型含有隐变量的时候,就不能简单地这样估计,此时,在1977年,Dempster等人总结提出EM算法:E步:求期望(expectation);M步:求极大值(maximization)。
输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z∣θ),条件分布P(Z∣Y,θ)。输出:模型参数θ。(1)选择参数的初值θ(0),开始迭代。(2)∗∗E步:∗∗记θ(i)为第i次迭代参数θ的估计值,在第i+1次迭代的E步,计算Q(θ,θ(i))=EZ[lnP(Y,Z∣θ)∣Y,θ(i)] =Z∑lnP(Y,Z∣θ)P(Z∣Y,θ(i))这里,P(Z∣Y,θ(i))是在给定观测数据Y和当前的参数估计θ(i)下隐变量数据Z的条件概率分布。(3)∗∗M步:∗∗求使得Q(θ,θ(i))极大化的θ,确定第i+1次迭代的参数估计值θ(i+1)θ(i+1)=θargmaxQ(θ,θ(i))(4)重复第(2)步和第(3)步,直到收敛(收敛条件:θ(i)和θ(i+1)很接近,或者是Q(θ(i+1),θ(i))和Q(θ(i),θ(i−1))很接近)。函数Q(θ,θ(i))是EM算法的核心,称为Q函数。
推导过程
上述阐述了EM算法,可是为什么EM算法能近似实现对观测数据的极大似然估计呢?下面通过近似求解观测数据的对数似然函数的极大化问题来导出EM算法,从而了解EM算法的作用。
在推导过程中用到的公式:
Jenson不等式:f(i∑αixi)⩾i∑αif(xi)其中函数f是凸函数,那么对数函数也是凸函数,i∑αi=1,αi表示权值,0⩽αi⩽1
首先有一个需要观测的向量θ,观测数据Y=(y1,y2,⋯,yN),隐变量Z=(z1,z2,⋯,zN),当求解θ时,似然函数为L(θ)=lnP(Y∣θ) =lnZ∑P(Y,Z∣θ) =ln(Z∑P(Z∣θ)P(Y∣Z,θ)) 假设在第i次迭代后θ的估计值为θ(i),希望新估计值θ能使L(θ)增加,即L(θ)>L(θ(i)),则可计算两者的差:L(θ)−L(θ(i))=ln(Z∑P(Z∣θ)P(Y∣Z,θ))−lnP(Y∣θ(i)) 一般来说,对lnP1P2⋯PN比较好处理,但是如果是ln∑P1P2就不好处理,为了将∑求和符号去掉,用Jenson不等式进行缩放处理。 对于上述形式,对Z求和,要如何凑出来一个具有Jenson不等式中的αi呢?很容易想到,关于Z的密度函数,该密度函数取值求和为1,需要构造一个Z的概率分布。L(θ)−L(θ(i))=ln(Z∑P(Z∣θ)P(Y∣Z,θ))−lnP(Y∣θ(i))=ln(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ))−lnP(Y∣θ(i))由Jesson不等式,ln(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ))⩾Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)∵lnP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))lnP(Y∣θ(i))∴L(θ)−L(θ(i))⩾Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Z∣θ)P(Y∣Z,θ)−Z∑P(Z∣Y,θ(i))lnP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)令B(θ,θ(i))=L(θ(i))+Z∑P(Z∣Y,θ(i))lnP(Z∣Y,θ(i))P(Y∣θ(i))P(Z∣θ)P(Y∣Z,θ)∴L(θ)⩾B(θ,θ(i)),也就是说B(θ,θ(i))是L(θ)的一个下界,要最大化L(θ),即最大化B(θ,θ(i))。∴θ(i+1)=θargmaxB(θ,θ(i))=θargmax(Z∑P(Z∣Y,θ(i))lnP(Z∣θ)P(Y∣Z,θ))=θargmax(Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ))∵Q(θ,θ(i))=Z∑lnP(Y,Z∣θ)P(Z∣Y,θ(i))∴θ(i+1)=θargmax(Q(θ,θ(i))) 等价于EM算法的M步,E步等价于求Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ),以上就得到了EM算法,通过不断求解下界的极大化逼近求解对数似然函数极大化。
EM算法在高斯混合模型学习中的应用
高斯混合模型
高斯混合模型是指具有如下形式的概率分布模型:P(y∣θ)=k=1∑Kαkϕ(y∣θk)其中,αk是系数,αk⩾0,k=1∑Kαk=1,ϕ(y∣θk)是高斯分布密度,θk=(μk,σk2),ϕ(y∣θ)=2πσk1exp(−2σk2(y−μk)2)称为第k个分模型。 首先介绍高斯混合模型,只考虑简单的一维随机变量y,高斯分布就是正态分布,y∼N(μ,σ2),给定y的观测值,就可以很容易求出μ和σ2,但是目前y不是来自高斯分布,而是有一定概率的来自于两个不同的高斯分布N(μ1,σ12)和N(μ2,σ22),这个就是两个高斯分布的混合,并不知道y来自于哪一个高斯分布,这里涉及到了隐变量。对于包含隐变量的参数估计,对此可以做以下处理。用一个向量γ表示z,如果z=1,则γ=(1,0,0,⋯,0),如果z=2,则γ=(0,1,0,⋯,0),这个相当于One−hot,也就是说z是第i个高斯分布,在γ的第i个分量为1,其他分量都为0。
推导过程
明确隐变量,写出完全数据的对数似然函数
根据EM算法,存在一个隐变量γ,γ表示当前的y来自的高斯分布,对于第一个观测值,有γ1=(γ11,γ12,⋯,γ1K),其中根据书中的γjk的定义:γjk={1,0,第j个观测来自第k个分模型否则j=1,2,⋯,N;k=1,2,⋯,K以上是随机变量的分布,取第1个值的概率为α1,取第2个值的概率为α2,……,取第K个值的概率为αK,一旦知道γ1的值,就知道从第几个高斯分布中抽取y1。p(γ1,y1∣θ)=p(γ1∣θ)⋅p(y1∣γ1,θ)=αγ111⋅αγ122⋯αγ1KKϕ(y1∣θ1)γ11ϕ(y2∣θ2)γ12⋯ϕ(y1∣θK)γ1K=k=1∏K[αkϕ(y1∣θk)]γ1k这个是第1个样本点完全数据的密度函数。在极大化似然估计中是极大化似然函数,这需要所有样本点的联合分布,对于所有的样本点,概率密度函数为P(y,γ∣θ)=j=1∏Nk=1∏K[αkϕ(yj∣θk)]γjk∵j=1∏Nk=1∏Kαkγjk=k=1∏Kαk∑j=1Nγjk,j=1∑Nγjk表示在N个样本点中,一共有多少个是来自第k个高斯分布的,将该数量记为nk=j=1∑Nγjk,n1+n2+⋯+nK=N∴k=1∏Kαk∑j=1Nγjk=k=1∏Kαknk∴j=1∏Nk=1∏Kαkγjk=k=1∏Kαknk∴P(y,γ∣θ)=k=1∏Kαknkj=1∏N[ϕ(yi∣θk)]γjk=k=1∏Kαknk⋅j=1∏N[2πσk1exp(−2σk2(yj−μk)2)]γjk∴lnP(y,γ∣θ)=k=1∑K{nklnαk+j=1∑Nγjk[ln(2π1)−lnσk−2σk21(yj−μk)2]}
EM算法的E步,确定Q函数
将隐变量都换成期望,隐变量有γjk和nk∵E(nk)=E(j∑γjk)=j∑E(γjk),E(γjk∣θ(i),y)=P(γjk=1∣θ(i),y),求解期望时,是根据上一步的θ(i)以及观测数据所有的yj,需要知道γjk的分布P(γjk=1∣θ(i),y)。∵P(γjk=1∣θ(i),y)===P(yj∣θ(i))P(γjk=1,yj∣θ(i))k=1∑KP(γjk=1,yj∣θ(i))P(γjk=1,yj∣θ(i))k=1∑KP(yj∣γjk=1,θ(i))P(γjk=1∣θ(i))P(γjk=1∣θ(i))P(yi∣γjk=1,θ(i))∵αk=P(γjk=1∣θ),ϕ(yi∣θ)=P(yi∣γjk=1,θ)∴E(γjk∣y,θ(i))=P(γjk=1∣θ(i),y)=k=1∑Kαkϕ(yi∣θ(i))αkϕ(yi∣θ(i)),其中θ(i)=(αk(i),θk(i)) 将γjk关于给定y和θ(i)的条件下的期望记为Zk=E(γjk∣y,θ(i)),因为各个样本之间是独立同分布的,所以Zk是和j无关的。∴Q(θ,θ(i))=EZ[lnP(y,γ∣θ(i))]=k=1∑K{(NZk)lnαk+Zkj=1∑N[ln(2π1)−lnσk−2σk21(yj−μk)2]}
确定EM算法的M步
需要估计的变量有αk,σk,μk,然后求偏导等于0:∂μk∂Q(θ,θ(i))=0∂σk2∂Q(θ,θ(i))=0⎩⎨⎧∂αk∂Q(θ,θ(i))=0∑αk=1根据上述公式可以推导出:μk(i+1)=j=1∑Nγjk^j=1∑Nγjk^yj(σk2)(i+1)=j=1∑Nγjk^j=1∑Nγjk^(yi−μk)2αk(i+1)=Nnk=Nj=1∑Nγjk^,其中γjk^=Eγjk,nk=j=1∑NEγjk,k=1,2,⋯,K
EM算法的推广
GEM算法
输入:观测数据,Q函数输出:模型参数(1)初始化参数θ(0)=(θ1(0),θ2(0),⋯,θd(0)),开始迭代;(2)第i+1次迭代,第1步:记θ(i)=(θ1(i),θ2(i),⋯,θd(i))为参数θ=(θ1,θ2,⋯,θd)的估计值,计算Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)] =Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)(3)第2步:进行d次条件极大化:首先,在θ2(i),θ3(i),⋯,θk(i)保持不变的条件下求使得Q(θ,θ(i))达到极大的θ1(i+1);然后,在θ1=θ1(i+1),θj=θj(j),j=3,4,⋯,k的条件下求使Q(θ,θ(i))达到极大的θ(i+1);如此继续,经过d次条件极大化,得到θ(i+1)=(θ1(i+1),θ2(i+1),⋯,θd(i+1))使得Q(θ(i+1),θ(i))>Q(θ(i),θ(i))(4)重复(2)和(3),直到收敛。