從第九章開始,學習總結的東西有所不同了,第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),直到收斂。