1. 程式人生 > >概率圖模型之EM算法

概率圖模型之EM算法

bsp size margin right auto 核心 gin 聚類 關於

一、EM算法概述

EM算法(Expectation Maximization Algorithm,期望極大算法)是一種叠代算法,用於求解含有隱變量的概率模型參數的極大似然估計(MLE)或極大後驗概率估計(MAP)。EM算法是一種比較通用的參數估計算法,被廣泛用於樸素貝葉斯、GMM(高斯混合模型)、K-means(K均值聚類)和HMM(隱馬爾科夫模型)的參數估計。

隱變量是指不能被直接觀察到,但是對系統的狀態和能被觀察到的變量存在影響的變量,比如經典的三硬幣模型中,能被觀察到的變量是在某次實驗中,先後丟兩枚硬幣的最終結果,比如1或0(1表示正面朝上,0表示背面朝上),而隱變量是第一枚硬幣拋擲後的結果(假設是別人拋的,我們不能看到拋第一枚硬幣的結果)。用HMM進行詞性標註時,可以觀察到的變量是詞語,而隱變量是每個詞的詞性。

二、EM算法的叠代步驟

用Y表示可觀測隨機變量的數據,Z表示隱隨機變量的數據,則Y和Z的數據合起來稱為完全數據,而單獨的觀測數據Y稱為不完全數據。

給定觀測數據Y,θ為需要估計的參數。假設Y和Z的聯合概率分布為P(Y, Z|θ),那麽完全數據的對數似然函數是logP(Y, Z|θ);假設Y的概率分布為P(Y| θ),那麽不完全數據Y的對數似然函數是L(θ)=logP(Y|θ)。

EM算法的目標是什麽呢?EM算法的目標是通過叠代,求不完全數據的對數似然函數L(θ)=logP(Y, Z|θ)的極大似然估計,這可以轉化為求完全數據的對數似然函數logP(Y, Z|θ)的期望的極大似然估計。

EM算法叠代的步驟如下:

輸入:觀測變量數據Y,隱變量數據Z,聯合分布P(Y, Z|θ),條件分布P(Z|Y,θ);

輸出:模型參數θ。

1、選擇參數的初始值 θ(0),開始叠代;

2、E步:求期望。記第i次叠代後參數 θ的估計值為θ(i),在第i+1次叠代時,計算完全數據的對數似然函數logP(Y, Z|θ)的期望。

這個期望的完整表述非常長:在給定觀測數據Y和第i輪叠代的參數θ(i)時,完全數據的對數似然函數logP(Y, Z|θ)的期望,計算期望的概率是隱隨機變量數據Z的條件概率分布P(Z|Y, θ(i)

)。我們把這個期望稱為Q函數。

技術分享圖片

一般我們求期望是用n個樣本的概率分布去求,而這裏是用隱隨機變量數據Z的條件概率分布去求。(在三硬幣模型中,這個Z的條件概率分布是拋擲第一枚硬幣得到正面或反面的概率:Z∈{正面,反面},P(Z=正面|Y, θ(i))=π,P(Z=反面|Y, θ(i))=1-π。)

3、M步:求極大。求使得Q(θ ,θ(i))極大化的θ,確定第i+1次叠代的參數估計值θ(i+1)

技術分享圖片

4、重復第2步和第3步,直到收斂而停止叠代。停止叠代的條件是,對於較小的正數ε1、ε2,滿足:

技術分享圖片

其中,函數Q(θ ,θ(i))是EM算法的核心,是完全數據的對數似然函數logP(Y, Z|θ)的期望,我們把求不完全數據的對數似然函數L(θ)=logP(Y, Z|θ)的極大似然估計的問題,轉化為求Q函數的極大化問題

三、EM算法的推導

(一)Jensen不等式

EM算法的推導需要用到Jensen不等式,一般以凸函數為例來介紹Jensen不等式。

設f(x)是一個定義域在實數集上的函數,如果在x∈R上滿足技術分享圖片,那麽稱f(x)為凸函數,進一步如果技術分享圖片對於所有的x都成立,那麽f(x)為嚴格凸函數。假設X是隨機變量,那麽凸函數的Jensen不等式定義為:

技術分享圖片

從下圖中可以非常直觀地理解這個不等式。

技術分享圖片

而凹函數的Jensen不等式的不等號方向相反。EM算法中的對數似然函數log(x)的二階導數為(-1/x2)< 0,底數取自然對數e,那麽不等號方向與上面凸函數的相反。EM算法中的Jensen不等式的公式和圖如下:

技術分享圖片

技術分享圖片

(二) EM算法的推導

EM算法是用Q函數的極大化,來近似實現對不完全數據Y的對數似然函數的極大似然估計,下面我們從不完全數據Y的對數似然函數的極大似然估計問題來導出EM算法。

1、原始目標:對於含有隱變量的概率模型,極大化不完全數據Y關於參數θ的對數似然函數,即極大化:

技術分享圖片

2、假設在第i次叠代後參數θ的估計值是θ(i),EM算法就是讓新的估計值θ使L(θ)增加,即L(θ)>L(θ(i)),並逐步逼近極大值。為此,計算二者的差:

技術分享圖片

3、用Jensen不等式得到差值的下界:

技術分享圖片

於是L(θ)的下界為:

技術分享圖片

4、選擇下一個參數θ(i+1),極大化L(θ)的下界B(θ, θ(i)):

技術分享圖片

省略掉對參數極大化而言是常數的項,就得到了極大化Q函數Q(θ, θ(i))的表達式:

技術分享圖片

於是我們得到了第i+1次叠代時的Q函數:

技術分享圖片

5、不斷求解下界的極大化或者說Q函數的極大化,來逼近對數似然函數L(θ)=logP(Y|θ)的極大化。

四、EM算法收斂性的證明

證明EM算法會收斂,其實就是證明不完全數據Y的對數似然函數L(θ)=logP(Y|θ)是單調遞增的,即L(θ(i+1)) ≥ L(θ(i)),而且有上界,那麽必然會收斂到一個值。而P(Y|θ)作為概率的乘積,必然小於1,有上界,所以EM算法的收斂性也就是證明Y的似然函數P(Y|θ)是單調遞增的,即P(Y|θ(i+1)) ≥ P(Y|θ(i))。於是有以下的證明。

1、定理:設L(θ)=logP(Y|θ)是觀測數據Y的對數似然函數,θ(i)(i=1,2,...,n)是EM算法得到的參數估計序列,L(θ(i))為對應的對數似然函數序列,則L(θ(i))=logP(Y|θ(i))必定會收斂到某一值L*

2、證明思路:只要證明log(x)是單調遞增函數(以e為底),且x有上界即可。在EM算法中,P(Y|θ)是有上界的,又log(x)單調遞增,因此只要證明P(Y|θ)是單調遞增的。

3、證明觀測數據Y的似然函數P(Y|θ)是單調遞增的,即P(Y|θ(i+1)) ≥ P(Y|θ(i)):

由於:

技術分享圖片

取對數得到:

技術分享圖片

已知Q函數為:

技術分享圖片

再構造一個H函數:

技術分享圖片

由:

技術分享圖片

於是對數似然函數可以寫成:

技術分享圖片

分別取θ為θ(i)、θ(i+1),讓對數似然函數相減,有:

技術分享圖片

對於等式右端的第一項,由於θ(i+1)是使Q(θ, θ(i+1))達到極大所得到的,所以有:

技術分享圖片

再看等式右端的第二項,同樣運用Jensen不等式:

技術分享圖片

於是得到:

技術分享圖片

參考資料:

1、李航:《統計學習方法》

2、CS229:《The EM algorithm

概率圖模型之EM算法