EM Algorithm

EM(Expectation maximization)演算法,也即期望最大化演算法,作為「隱變數」(屬性變數不可知)估計的利器在自然語言處理(如HMM中的Baum-Welch演算法)、高斯混合聚類、心理學、定量遺傳學等含有隱變數的概率模型參數極大似然估計中有著十分廣泛的應用。EM演算法於1977年由Arthur Dempster, Nan Laird和Donald Rubin總結提出,其主要通過E步(exceptation),M步(maximization)反覆迭代直至似然函數收斂至局部最優解。由於其方法簡潔、操作有效,EM演算法曾入選「數據挖掘十大演算法」,可謂是機器學習經典演算法之一。

Introduction

EM演算法推導一

對於概率模型,當模型中的變數均為觀測變數時,我們可以直接使用給定數據通過最大似然估計(頻率學派)或貝葉斯估計(貝葉斯學派)這兩種方法求解。然而當我們的模型中存在隱變數時,我們將無法使用最大似然估計直接求解,這時即導出EM演算法。

假設一個概率模型中同時存在隱變數 Z 和可觀測變數 Y ,我們學習的目標是極大化觀測變數 Y 關於模型參數 	heta 的對數似然,即:

L(	heta)=logP(Y|	heta)=logsum_ZP(Y,Z|	heta)=log(sum_zP(Y|Z,	heta)P(Z|	heta))	ag{1}

式(1)中我們假設直接優化P(Y|	heta)是很困難的,但是優化完整數據的似然函數P(Y,Z|	heta)相對容易,同時利用概率乘法公式將P(Y,Z|	heta)展開。然而由於未觀測變數 Y 的存在,上式仍求解困難,因此我們通過迭代逐步最大對數似然 L(	heta) ,這裡假設第 i 次迭代後	heta的估計值為	heta^i 。根據要求,我們希望新估計的參數 	heta 使 L(	heta) 增加,即 L(	heta)>L(	heta^i) ,且逐步使 L(	heta) 達到最大,因此考慮兩者之差:

L(	heta)-L(	heta^i)=log(sum_zP(Y|Z,	heta)P(Z|	heta))-log(P(Y|	heta^i))\ =log(sum_ZP(Z|Y,	heta^i)frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)})-log(P(Y|	heta^i))	ag{2}

這裡我們根據Jensen(琴生)不等式: logsum_jlambda_jy_jgeqsum_jlambda_jlogy_j ,其中 lambda_jgeq0,sum_jlambda_j=1 有:

log(sum_ZP(Z|Y,	heta^i)frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)})-log(P(Y|	heta^i))geqsum_ZP(Z|Y,	heta^i)log(frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)})-log(P(Y|	heta^i)	ag{3}

同時由於 sum_ZP(Y|Z,	heta^i)=1 ,式(3)可進一步寫為:

sum_ZP(Z|Y,	heta^i)log(frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)})-log(P(Y|	heta^i)=sum_ZP(Z|Y,	heta^i)log(frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)P(Y|	heta^i)})	ag{4}

因此有:

 L(	heta)geq L(	heta^i)+sum_ZP(Z|Y,	heta^i)log(frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)P(Y|	heta^i)})=B(	heta,	heta^i)	ag{5}

因此,B(	heta,	heta^i) 即為 L(	heta) 的下界。故當 B(	heta,	heta^i) 增大時 L(	heta) 也將同時增加,為使 L(	heta) 取得最大,則我們必須在 i+1 次迭代時選擇的 	heta^{i+1} 為使第 i 次迭代 B(	heta,	heta^i) 取得最大的 	heta^i ,即:

	heta^{i+1}=arg;max_{	heta}B(	heta,	heta^i)=arg;max_{	heta}(L(	heta^i)+sum_ZP(Z|Y,	heta^i)log(frac{P(Y|Z,	heta)P(Z|	heta)}{P(Z|Y,	heta^i)P(Y|	heta^i)}))\ =arg;max_{	heta}(sum_ZP(Z|Y,	heta^i)log(P(Y|Z,	heta)P(Z|	heta)))\ =arg;max_{	heta}(sum_ZP(Z|Y,	heta^i)logP(Y,Z|	heta)=arg;max_{	heta}Q(	heta,	heta^i)	ag{6}

在上式的求解中我們略去了對求解 	heta 極大化而言的常數項 L(	heta^i)P(Z|Y,	heta^i)P(Y|	heta^i)

因此在EM演算法的每一迭代中,我們均需求解使得 Q(	heta,	heta^i) 取得最大值的 	heta ,使得下一不迭代的 	heta^{i+1}=	heta ,這樣如此反覆提高最大似然 L(	heta) 的下界,直至逼近 L(	heta) 的最優解(最大值)。

EM演算法推導二

這裡我們採用變分的方法,假設隱變數服從任一分布為 q(Z) ,則 sum_Zq(Z)=1 。故對於 L(	heta) 同樣有:

L(	heta)=logP(Y|	heta)=sum_Z q(Z)logP(Y|	heta)=sum_Zq(Z)logfrac{P(Z|Y,	heta)P(Y|	heta)}{P(Z|Y,	heta)}=sum_Zq(Z)logfrac{P(Y,Z|	heta)}{P(Z|Y,	heta)}\ =sum_Zq(Z)log(frac{P(Y,Z|	heta)}{q(Z)}frac{q(Z)}{P(Z|Y,	heta)})=sum_Zq(Z)(logfrac{P(Y,Z|	heta)}{q(Z)}-logfrac{q(Z)}{P(Z|Y,	heta)})\ =underbrace{sum_Zq(Z)logfrac{P(Y,Z|	heta)}{q(Z)}}_{(1)}-underbrace{sum_Zq(Z)logfrac{P(Z|Y,	heta)}{q(Z)}}_{(2)}	ag{7}

記(1)為 L(q,	heta)=sum_Zq(Z)logfrac{P(Y,Z|	heta)}{q(Z)} ,(2)為 KL(q||p)=-sum_Zq(Z)logfrac{P(Z|Y,	heta)}{q(Z)} 。其中 KL(q||p) 即為KL散度(相對熵),主要反映變數 q、p 分布的相似性,可以看出KL散度=交叉熵-信息熵,故交叉熵在某種意義上與KL散度等價。有:

L(	heta)=L(q,	heta)+KL(q||p)	ag{8}

由於 KL(q||p)geq0 ,因此 L(q,	heta) 即為對數似然函數 L(	heta) 的下界。同理在每一次迭代中我們均需要最大化下界 L(q,	heta) ,則在第 i 次迭代中即有:

q(Z)=P(Z|Y,	heta^i)	heta^{i+1}=arg;max_{	heta}L(q,	heta)=sum_Zq(Z)logfrac{P(Y,Z|	heta)}{q(Z)} =arg;max_{	heta}sum_ZP(Z|Y,	heta^i)logfrac{P(Y,Z|	heta)}{P(Z|Y,	heta^i)}\ =arg;max_{	heta}(sum_ZP(Z|Y,	heta^i)(logP(Y,Z|	heta)-logP(Z|Y,	heta^i))=arg;max_{	heta}Q(	heta,	heta^i)+const	ag{9}

式(9)中 -sum_ZP(Z|Y,	heta^i)logP(Z|Y,	heta^i) 為一常數 const ,故式(8)與式(6)等價。因此,綜上可知,EM演算法可描述為:

對於觀測變數數據 Y 和隱變數數據 Z ,其聯合分布為 P(Y,Z|	heta) ,條件分布為 P(Z|Y,	heta)

  • Step1. 參數初始化 	heta^0 ,開始迭代。
  • Step2. E步:記 	heta^i 為第 i 次迭代的參數 	heta 的估計值,則在第 i+1 次迭代的E步中,有:

Q(	heta,	heta^i)=E_Z[logP(Y,Z|	heta^i)|Y,	heta^i]=sum_ZP(Z|Y,	heta^i)logP(Y,Z|	heta)

上式中, P(Z|Y,	heta^i) 即為給定觀測數據Y 和當前估計參數	heta^i下隱變數數據Z的條件概率分布。 Q函數為對數似然函數logP(Y,Z|	heta) 關於在給定觀測數據Y和當前模型參數	heta^i下對未觀測數據 Z 的條件概率分布P(Z|Y,	heta^i) 的期望。

  • Step3. M步:計算使Q(	heta,	heta^i) 取得極大值的	heta ,確定第 i+1 次迭代的參數估計值	heta^{i+1} ,有:

	heta^{i+1}=arg;max_{	heta}Q(	heta,	heta^i)

  • Step4. 迭代Step2,Step3直至收斂。其收斂條件一般為給定較小的正數 epsilon_1,epsilon_2 ,若滿足:

||	heta^{i=1}-	heta^i||<epsilon_1或||Q(	heta^{i+1},	heta^i)-Q(	heta^i,	heta^i)||<epsilon_2

由於目標函數為非凸函數,因此EM演算法並不能保證收斂至全局最小值,即EM演算法的求解結果與初值的選擇有較大關係,該演算法對初值敏感。

上述推導過程可由下圖表示:

圖1. EM演算法

圖1即對應式(8),可以看出 logP(Y|	heta)L(q,	heta),KL(q||p) 兩部分組成。其中 L(q,	heta) 即為 logP(Y|	heta) 的下界。

圖2. EM演算法

在M步中我們總期望最大化L(q,	heta) ,即使得 logP(Y|	heta) 的下界取得最大,也即最大化對數似然。故此時 KL(q||p) 取得最小值為0。求解最大化 Q 函數,得到 i+1 次迭代變數的估計 	heta

圖3. EM演算法

從圖3中可以明顯看出在 	heta^i 更新後,對數似然 L(	heta) 的下界 L(q,	heta)KL(q||p) 均得到提高。此時在繼續求解 	heta^{i+1}=arg;max_{	heta}Q(	heta,	heta^i) 。如此反覆迭代,通過不斷提高的 L(	heta)下界,使得其取得局部最大值。

圖4. EM演算法迭代過程

從圖4中我們也能明顯看出,通過 	heta^i 的反覆迭代,我們不斷提高對數似然的下界 L(q,	heta) 使之最後收斂於對數似然的局部最大解。

由上文討論我們已經知道,通過EM反覆迭代,其對數似然的下界將不斷提高,然而我們卻還是要問對於這種啟發式的方法,即下界不斷增大的這種方法,其等價於求解對數似然的最大值嗎?或者說通過不斷優化下界,演算法就一定會收斂到似然函數的最大值嗎?我們對此能否給出理論證明呢?

EM演算法收斂性的理論證明

這裡我們分別給出兩種方法的理論證明。

收斂性證明方法一

這裡主要利用變分的思想,參照式(7)有:

log?(P(Y│θ))=∫_Zq(Z)log?frac{(P(Y,Z│θ))}{(P(Z│Y,θ)}=∫_Zq(Z)log?frac{p(Y,Z│θ)q(Z)}{P(Z│Y,θ)q(Z)}=∫_Zq(Z)log?(frac{P(Y,Z│θ)}{q(Z)}×frac{q(Z)}{(P(Z│Y,θ)})\ =∫_Zlog?frac{(P(Y,Z│θ)}{q(Z)}q(Z)+∫_Zlog?(frac{q(Z)}{(P(Z│Y,θ)}q(Z)=∫_Zlog?frac{P(Y,Z│θ)}{q(Z)}q(Z)+KL(q(Z)||P(Z│Y,θ))	ag{10}

由於 KL(q(Z)||P(Z│Y,θ))geq0 恆成立,且我們跟據第 i 次迭代參數 	heta^i 估計 q(Z)q(Z)=P(Z|Y,	heta^i) 。故式(10)即為:

logP(Y|	heta^{i+1})geq∫_Zlog?frac{P(Y,Z│θ^i)}{P(Z|Y,	heta^i)}P(Z|Y,	heta^i)=logP(Y|	heta^i)	ag{11}

故對於每一次的迭代均能保證 logP(Y|	heta^{i+1})geq logP(Y|	heta^i) ,即可將EM演算法理解為在變數坐標空間內,利用坐標下降法最大化對數似然下界的過程,故演算法最終能夠收斂至局部極小值點。

收斂性證明方法二

這裡我們使用Jensen不等式進行證明,即對於凸函數 phiphi E[f(x)]leq E[phi(f(x))] ,故 -logE[f(x)]leq E[-log(f(x))]implies E[log(f(x))]geq logE[f(x)](其中 -log(x) 為凸函數,只有為凸函數時琴生不等式才存在)。因此有:

log?(P(Y│θ))=log?∫_Zq(Z)P(Y|	heta)geq∫_Zq(Z)logP(Y|	heta)=∫_Zq(Z)logfrac{(P(Y,Z│θ))}{(P(Z│Y,θ)}	ag{12}

同樣跟據第 i 次迭代參數 	heta^i 估計 q(Z) ,則式(12)為:

logP(Y|	heta^{i+1})geq∫_Zlog?frac{P(Y,Z│θ^i)}{P(Z|Y,	heta^i)}P(Z|Y,	heta^i)=logP(Y|	heta^i)	ag{13}

故演算法最終能夠收斂至局部極小值點。

圖5. Jensen不等式

GMM

與K-Means聚類不同,高斯混合聚類採用概率模型來刻畫每個樣本的簇類,即為一種「軟劃分」方法。這裡我們首先回憶多元高斯模型。

對於 n 維樣本空間 chi 中的隨機向量 xx 服從高斯分布 x ~ N(mu,sum) ,其概率密度函數如下:

 p(x)=frac{1}{(2pi)^{frac2n}||sum|^{frac12}}e^{-frac12(x-mu)^Tsum^{-1}(x-mu)}	ag{14}

其中 mun 維均值向量, sumn	imes n 協方差矩陣。如下圖所示:

圖6. 多元高斯變數

這裡假設存在 k 個簇,且每一個簇均服從高斯分布。我們以概率 pi_k 隨機選擇一個簇 k ,並從該簇的分布中採樣樣本點,如此得到觀測數據X ,則其似然函數為:

P(X|	heta)=P(X|pi,mu,sum)=sum_{n=1}^Nln{sum_{k=1}^Kpi_kN(x_n|mu_k,sum_k)}	ag{15},其中sum_{k=1}^Kpi_k=1,0leqpi_kleq1

觀察式(15)發現函數 P(X|	heta) 由於 log 中有求和運算,所有參數均耦合在一起,故求導困難,因而梯度下降優化較為困難。因此我們有必要採用一種新的優化演算法。

這裡首先我們令 frac{partial P(X|	heta)}{partial mu_k}=0 ,則有:

 -sum_{n=1}^Kfrac{pi_kN(x_n|mu_k,sum_k)}{sum_jpi_jN(x_n|mu_j,sum_j)}sum_k^{-1}(x_n-mu_k)=0	ag{16}

這裡我們記 gamma(z_{nk})=frac{pi_kN(x_n|mu_k,sum_k)}{sum_jpi_jN(x_n|mu_j,sum_j)} ,則 gamma(z_{nk}) 可以看為由參數 mu_k,sum_k 對應的觀測變數 x_n 的後驗概率,即 x_n 從屬於第 k 個簇的一種估計,或權值或「解釋」。同時對式(16)左右兩邊同時乘以 sum_k ,並進行移項操作,有:

mu_k=frac{1}{N_k}sum_{n=1}^Ngamma(z_{nk})x_n N_k=sum_{n=1}^Ngamma(z_{nk}) 	ag{17}

同理我們令 frac{partial P(X|	heta)}{partial sum_k}=0 ,有:

sum_k=frac{1}{N_k}sum_{n=1}^Ngamma(z_{nk})(x_n-mu_k)(x_n-mu_k)^T	ag{18}

最後我們考慮混合係數即變數 pi_k,同理最大化對數似然 lnP(X|pi,mu,sum) 。然而由式(15)知 pi_k 需滿足約束條件 sum_{k=1}^Kpi_k=1,故這裡我們引入拉格朗日乘子法,即最大化下式:

 lnP(X|pi,mu,sum)+lambda(sum_{k=1}^Kpi_k-1)	ag{19}

式(19)對 pi_k 求偏導為0有:

sum_{n=1}^Nfrac{pi_kN(x_n|mu_k,sum_k)}{sum_jpi_jN(x_n|mu_j,sum_j)}+lambda=0	ag{20}

上式兩邊同時乘以 pi_k ,有:

pi_k=-frac{sum_{n=1}^Nfrac{pi_kN(x_n|mu_k,sum_k)}{sum_jpi_jN(x_n|mu_j,sum_j)}}{lambda}=frac{-N_k}{lambda}	ag{21}

這裡我們將 sum_{k=1}^Kpi_k=1k 進行求和,則有 lambda=-N ,故:

pi_k=frac{-N_k}{N}	ag{22}

這裡需要注意的是由於 gamma(z_{nk})=frac{pi_kN(x_n|mu_k,sum_k)}{sum_jpi_jN(x_n|mu_j,sum_j)},中仍存在隱變數 pi_k,並非為封閉解,故我們需要根據EM演算法求解。具體如下:

  • Step1. 初始化參數並計算對數似然;
  • Step2. E步:依據當前模型參數,計算觀測數據 x_i 屬於簇 k 的概率(從屬度):

gamma(z_{ik})=frac{pi_kN(x_i|mu_k,sum_k)}{sum_jpi_jN(x_i|mu_j,sum_j)}

  • Step3. M步:基於當前參數最大化對數似然函數,即重新求解新一輪迭代參數(第 i+1 輪):

mu_k=frac{1}{N_k}sum_{n=1}^Ngamma(z_{ik})x_n;quadsum_k=frac{1}{N_k}sum_{n=1}^Ngamma(z_{nk})(x_i-mu_k)(x_i-mu_k)^T;quad pi_k=frac{sum_{n=1}^ngamma(z_{ik})}{N}

  • Step4. 反覆迭代直至收斂。

至此我們已經給出了EM演算法求解GMM模型的具體方法。對比GMM與K-Means方法,我們可已看出由於概率的引入使得點到簇的從屬關係為軟分配,故其可以被用於非球形簇。

圖7. GMM聚類過程

上圖即為GMM演算法的聚類過程。EM演算法求解結果為局部最優解,其在隱變數的估計中應用廣泛。

圖8. GMM與K-Mean演算法比較

由上圖可以明顯看出GMM相較於K-Means聚類有更佳的效果。

Variants

由於EM演算法是只能收斂至局部極小值點,其對初值敏感。為克服這一缺陷,各種各樣的啟發式搜索演算法如模擬退火法(其能較好的收斂至全局最優解)、隨機重複爬山法等,通過多次隨機的參數初始化或一定概率拒絕當前解從而使演算法收斂至全局最優。此外卡爾曼濾波的思想同EM演算法結合從而發展了Filtering and smoothing EM algorithms,以解決聯合狀態參數估計問題。共軛梯度與擬牛頓法也在EM中得到了應用。參數擴展期望最大化演算法(PX-EM,parameter-expanded expectation maximization)通過協方差的調整引入額外的信息來修正M步中參數的估計以加速演算法收斂。 alpha-EM 由於不需要計算梯度或Hessi矩陣而使得演算法收斂更快,同時也因而派生出了 alpha-HMM 演算法。

Reference

[1] Dempster A P. Maximum likelihood estimation from incomplete data via the EM algorithm (with discussion[J]. Journal of the Royal Statistical Society, 1977, 39(1):1-38.(web.mit.edu/6.435/www/D)

[2] Jensens inequality - Wikipedia

[3] Bishop C M, ???. Pattern Recognition and Machine Learning, 2006[M]. Academic Press, 2006.](users.isr.ist.utl.pt/~w)

[4] Expectation–maximization algorithm - Wikipedia


推薦閱讀:
相关文章