EM算法(Expectation Maximization)


1 極大似然估計

    假設有如圖1的X所示的抽取的n個學生某門課程的成績,又知學生的成績符合高斯分布f(x|μ,σ2),求學生的成績最符合哪種高斯分布,即μ和σ2最優值是什么?

image 圖1 學生成績的分布

    欲求在抽樣X時,最優的μ和σ2參數估計,雖然模型的原型已知,但不同的參數對應着不同的學生成績分布,其中一種最簡單有效的參數估計方法就是估計的參數在目前抽樣的數據上表現最好,即使得f(X|μ,σ2)的聯合概率最大,這就是極大似然估計,常用L(μ,σ2|X)表示,滿足公式(1)所示的關系。在實際計算中,對數函數是一個嚴格遞增的函數,對似然函數取代數后,計算要簡單很多,而且直接的似然函數計算中涉及大量浮點概率的乘法,容易導致計算機浮點計算精不夠而出現機器0值,從而常用公式(2)的l(μ,σ2|X)來求極大似然估計,更普遍的如公式(3)所示。image     余下的問題,就是求l(μ,σ2|X)的極大值的過程,即參數的一階偏導為0的極值點,在此不詳述了,可參看下圖。image

     非常慶幸,對於正態分布來說,μ和σ2都能解析地直接求解,從而得到學生成績滿足何種正態分布。但實際情況是,許多應用模型中求解μ和σ2都十分困難。

2 隱含狀態的極大似然估計

    如第1節中所述,學生的單科成績滿足高斯分布f(x|μ,σ2),假設抽取的X是學生的語文和數學成績,顯然這樣的成績應該符合分布g(x|λ12121222),如公式(3)所示,兩個混合的高斯分布,λ12分別表示f(x|μ112)和f(x|μ222)的在模型中的比率。

image    對於公式(5)所示的極大似然估計求解中,偏導的方程組,由於和的對數的存在,方程組的求解已經是神鬼難助了。

    如果知道Xm={x1,x2,…,xm}屬於語文成績,Xelse={x1+m,x2+m,…,xn}屬於數學成績,g(x|θ)將變得極其簡單,完全可以由第1節方法求解;如果知道μ121222,求Xm和Xelse也很容易——雞蛋困境?

    接下來詳述的EM(Expectation Maximization, EM)算法解決的就是這個雞蛋困境,不管是先有雞還是先有蛋,最終命運都會被享用。

3 EM算法

    在此先將問題抽象,已知模型為p(x|θ),X=(x1,x2,…,xn),求θ。引入隱含變量Z=(z1,z2,…,zn),使得模型滿足公式(6)或公式(7)的關系。由第1節的極大似然估計有,l(θ)滿足公式(8)。

image    和很多求極值的算法一樣(NN的BP算法),EM算法也是通過迭代計算l(θ) 的極值的。假設第n輪迭代計算出的

θ為θn,在新的迭代中,最簡單的想法就是新的θ要優於θn即可,有l(θ)-l(θn)如下所示。如公式(9)描述,計算的的難度主要在於log函數中的求和,為解決這個問題和找到l(θ)-l(θn)的下界值,引入Jensen不等式。

image

函數的凹凸性與Jensen不等式:    

    如果f(x)為凸函數,f(x)滿足公式(10)的關系,具體證明不述,緊述的函數圖就明了地描繪了這種關系。更一般地說,f(x)滿足公式(11)中的關系,證明可由公式(10)導出,稱為Jensen不等式。

image  image     至於什么是凸函數,f(x)的二階偏導恆大於(或等於)0,如果x為高維向量,hessian矩陣必須(半)正定,凹函數屬性相對。

     而f(x)=log(x), f’’=-1/x2<0 就為一個典型的凹函數,滿足關系(11)。

image

    公式(9)中的l(θ)-l(θn)滿足如下關系:  image

    進而有:

image

image  圖2 l(θ)和φ(θn,θ)關系圖

     可見l(θ)的下界為φ(θn,θ),φ(θn,θ)值越大, l(θ)的下界也將越大(其中的θn為已知變量),具體l(θ)和φ(θn,θ)的關系可從圖2可看出:φ(θn,θ)增長的方向也是l(θ)增長的方向,也就是任意增長φ(θn,θ)值的θ,都將使l(θ)下界增大,從而迭代使l(θ)逼近理想值。當然,在此最好的φ(θn,θ)值的θ便是,max(φ(θn,θ))處的θ,計算如下:

image        這樣,迭代求θ的方法就顯而易見了:

隨機初始化θ0

1、求條件期望F(θ,θn),如上公共所示;

2、求F(θ,θn)的極值處θn+1

3、反復迭代1,2計算,直到θn收斂,即|θn+1n|<α(收斂條件)。

     這樣,EM算法就完全解決了雞和蛋的問題了,至於初始化條件可以是雞(θ0),也可以是蛋(z0)。

     PS:EM算法的斂散性,由計算中的下界迭代,可很清晰的看到,EM算法收斂,但可能收斂於局部最優解,證明不述。  

     精髓:再回過頭來看EM算法,可見EM算法只是在輔助求極大似然參數估計,因對數參數和的存在,使偏導計算難解,EM則利用Jensen不等式,找到似然函數的下界,且使對數參數和變成了最喜見的對數參數積。

4 缺失數據問題

    可以說EM算法天生就是用來解決缺失數據的問題的,將第3節的隱變量z看成是數據中缺失的數據即可。

    在完全數據X(無缺失數據)下,知模型為f(x|θ),求數據滿足何種模型?這可以由第1節的極大似然估計求解;如果采樣數據存在部分未知Z,預測這些含未知的數據的數據符何什么模型?這就可借用第3節的EM算法了,先隨機假設θ0,迭代求解,最后求知f(x|θ),當然也就可出了z。

5 GMM

    很多常見的模型,其解的過程都屬於EM算法,最簡單的Kmeans,稍復雜的有混合高斯模型(GMM),PLSA,HMM的學習問題……在此主要講述GMM,其它模型將在其它篇章介紹。

    如第2節所述,GMM模型為第2節案例的擴展,由K個高斯分布模型構成:

image1、隱變量:    image2、E步有隱變量期望:

image

3、M步求參數估計:

image 具體計算請參看李航的《統計學習方法》。

PS:Kmeans為只考慮正球體時的GMM情況。

 

參考資料:

1、Sean Borman. The Expectation Maximization Algorithm;

2、李航. 統計學習方法;

3、虞台文. EM Algorithm.

對於同仁們的布道授業,一並感謝。

----


免責聲明!

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



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