EM算法(expectation maximization)


EM算法簡述

    EM算法是一種迭代算法,主要用於含有隱變量的概率模型參數的極大似然估計,或極大后驗概率估計。EM算法的每次迭代由兩步完成:

E步,求期望

M步,求極大。

EM算法的引入

  如果概率模型的變量都是觀測變量,那么給定數據,可以直接用極大似然估計法或貝葉斯估計法估計模型參數,但是當模型中含有隱變量時,就不能簡單地使用這些估計方法。因此提出了EM算法。

EM算法流程

假定集合 由觀測數據 和未觀測數據 組成, 分別稱為不完整數據和完整數據。假設Z的聯合概率密度參數化地定義為 ,其中 表示要被估計的參數。 的最大似然估計是求不完整數據的對數似然函數的最大值而得到的:EM算法包括兩個步驟:由E步和M步組成,它是通過迭代地最大化完整數據的對數似然函數 的期望來最大化不完整數據的對數似然函數,其中:假設在算法第t次迭代后 獲得的估計記為 ,則在(t+1)次迭代時,E-步:計算完整數據的對數似然函數的期望,記為:M-步:通過最大化 來獲得新的 。通過交替使用這兩個步驟,EM算法逐步改進模型的參數,使參數和訓練樣本的似然概率逐漸增大,最后終止於一個極大點。

直觀地理解EM算法,它也可被看作為一個逐次逼近算法:事先並不知道模型的參數,可以隨機的選擇一套參數或者事先粗略地給定某個初始參數,確定出對應於這組參數的最可能的狀態,計算每個訓練樣本的可能結果的概率,在當前的狀態下再由樣本對參數修正,重新估計參數λ,並在新的參數下重新確定模型的狀態,這樣,通過多次的迭代,循環直至某個收斂條件滿足為止,就可以使得模型的參數逐漸逼近真實參數。

可見上述算法流程中Q()是EM算法的核心,稱為Q函數。

即完整數據的對數似然函數logP(x,y|)關於在給定觀測數據x和當前參數下對未觀測數據y的條件概率分布P(y|x,)的期望稱為Q函數,

EM算法的導出

我們面對一個含有隱變量的概率模型,目標是極大化觀測數據(不完全數據)x關於參數的對數似然函數,即極大化

L()=logP(x|)=logΣyP(X,y|)=log(ΣyP(X|y,)P(y|))

注意到這一極大化主要困難是式中有未觀測數據並有包含和(或積分)的對數

示例

給定樣本T = {X1, X2, …, Xm},現在想給每個Xi一個Zi,即標出: {(X1,Z1), (X2,Z2),…,(Xm,Zm)}(z是隱形變量,zi=j可以看成是Xi被划分為j類),求對T的最大似然估計:

其實Zi也是個向量,因為對於每一個Xi,都有多種分類的情況。設第i個樣本Xi在Z上的概率分布為Qi(Zi),即Qi(Zi=j)表示Xi被划分到類j的概率,因此有ΣQi(Zi) = 1。

(2)到(3)是利用Jensen不等式,因為log(x)為凹函數,且這個就是p(xi, zi; θ)/Qi(zi)的期望。

現在,根據Jensen不等式取等號的條件:

因為這個式子對於Zi等於任何值時都成立,且有ΣQi(Zi) = 1,所以可以認為:Σp(xi, zi;θ) = c。此時可以推出:

式子中,Zi是自變量,若θ已知,則可計算出Qi(zi)。

至此,終於可以描述算法過程了:

  1)給θ一個初始值;

  2)固定當前的θ,讓不等式(3)取等號,算出Qi(zi);-------> E 步

  3)將2)算出的Qi(zi)代入g(Q, θ) = ,並極大化g(Q,θ),得到新的θ。-------------->M步

  4)循環迭代2)、3)至收斂。

證明EM算法收斂

當θ取到θt值時,求得

    那么可得如下不等式:

    (10)=>(11)是因為Jensen不等式,因為等號成立的條件是θ為θt的時候得到的,而現在中的θ值為θt+1,所以等號不一定成立,除非θt+1=θt,

    (11)=>(12)是因為θt+1已經使得取得最大值,那必然不會小於(12)式。

    所以l(θ)在迭代下是單調遞增的,且很容易看出l(θ)是有上界的(單調有界收斂),則EM算法收斂性得證。

 

EM算法E步說明

上述EM算法描述,主要是參考Andrew NG教授的講義,如果看過李航老師的《統計方法學》,會發現里面的證明以及描述表明上有些許不同,Andrew NG教授的講義的說明(如上述)將隱藏變量的作用更好的體現出來,更直觀,證明也更簡單,而《統計方法學》中則將迭代之間θ的變化羅列的更為明確,也更加准確的描述了EM算法字面上的意思:每次迭代包含兩步:E步,求期望;M步,求極大化。下面列出《統計方法學》書中的EM算法,與上述略有不同:

EM算法(2):

選取初始值θ0初始化θ,t=0

Repeat {

E步:

M步:

}直到收斂

    (13)式中,Y={y1,y2,...,ym},Z={z1,z2,...,zm},不難看出將(9)式中兩個Σ對換,就可以得出(13)式,而(13)式即是關於分布z的一個期望值,而需要求這個期望公式,那么要求出所有的EM算法(1)中E步的值,所以兩個表明看起來不同的EM算法描述其實是一樣的。

 

總結:EM算法就是通過迭代地最大化完整數據的對數似然函數的期望,來最大化不完整數據的對數似然函數。


參考文獻:

1.《統計學習方法》

2. http://blog.csdn.net/hechenghai/article/details/41896213

3.https://baike.baidu.com/item/em%E7%AE%97%E6%B3%95/1866163?fr=aladdin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM