EM算法(Expectation Maximization Algorithm)詳解

EM算法(Expectation Maximization Algorithm)詳解

  • 主要內容
    • EM算法簡介
    • 預備知識
      • 極大似然估計
      • Jensen不等式
    • EM算法詳解
      • 問題描述
      • EM算法推導
      • EM算法流程
    • EM算法優缺點以及應用

1、EM算法簡介
  EM算法是一種迭代優化策略,由於它的計算方法中每一次迭代都分兩步,其中一個爲期望步(E步),另一個爲極大步(M步),所以算法被稱爲EM算法(Expectation Maximization Algorithm)。EM算法受到缺失思想影響,最初是爲了解決數據缺失情況下的參數估計問題,其算法基礎和收斂有效性等問題在Dempster,Laird和Rubin三人於1977年所做的文章Maximum likelihood from incomplete data via the EM algorithm中給出了詳細的闡述。其基本思想是:首先根據己經給出的觀測數據,估計出模型參數的值;然後再依據上一步估計出的參數值估計缺失數據的值,再根據估計出的缺失數據加上之前己經觀測到的數據重新再對參數值進行估計,然後反覆迭代,直至最後收斂,迭代結束。
  EM算法作爲一種數據添加算法,在近幾十年得到迅速的發展,主要源於當前科學研究以及各方面實際應用中數據量越來越大的情況下,經常存在數據缺失或者不可用的的問題,這時候直接處理數據比較困難,而數據添加辦法有很多種,常用的有神經網絡擬合、添補法、卡爾曼濾波法等等,但是EM算法之所以能迅速普及主要源於它算法簡單,穩定上升的步驟能非常可靠地找到“最優的收斂值”。隨着理論的發展,EM算法己經不單單用在處理缺失數據的問題,運用這種思想,它所能處理的問題更加廣泛。有時候缺失數據並非是真的缺少了,而是爲了簡化問題而採取的策略,這時EM算法被稱爲數據添加技術,所添加的數據通常被稱爲“潛在數據”,複雜的問題通過引入恰當的潛在數據,能夠有效地解決我們的問題。

2、預備知識
  介紹EM算法之前,我們需要介紹極大似然估計以及Jensen不等式。
2.1 極大似然估計
(1)舉例說明:經典問題——學生身高問題
  我們需要調查我們學校的男生和女生的身高分佈。 假設你在校園裏隨便找了100個男生和100個女生。他們共200個人。將他們按照性別劃分爲兩組,然後先統計抽樣得到的100個男生的身高。假設他們的身高是服從正態分佈的。但是這個分佈的均值μ 和方差σ2 我們不知道,這兩個參數就是我們要估計的。記作θ=[μ,σ]T
  問題:我們知道樣本所服從的概率分佈的模型和一些樣本,需要求解該模型的參數。如圖1

這裏寫圖片描述
圖1

  我們已知的有兩個:樣本服從的分佈模型、隨機抽取的樣本;我們未知的有一個:模型的參數。根據已知條件,通過極大似然估計,求出未知參數。總的來說:極大似然估計就是用來估計模型參數的統計學方法。
(2)如何估計
  問題數學化:設樣本集X=x1,x2,,xN ,其中N=100p(xi|θ) 爲概率密度函數,表示抽到男生xi (的身高)的概率。由於100個樣本之間獨立同分布,所以我同時抽到這100個男生的概率就是他們各自概率的乘積,也就是樣本集X 中各個樣本的聯合概率,用下式表示:
這裏寫圖片描述

  這個概率反映了,在概率密度函數的參數是θ 時,得到X 這組樣本的概率。 我們需要找到一個參數θ ,使得抽到X 這組樣本的概率最大,也就是說需要其對應的似然函數L(θ) 最大。滿足條件的θ 叫做θ 的最大似然估計量,記爲
θ^=argmaxL(θ)

(3)求最大似然函數估計值的一般步驟
  首先,寫出似然函數:
這裏寫圖片描述

  然後,對似然函數取對數:
這裏寫圖片描述

  接着,對上式求導,令導數爲0,得到似然方程;
  最後,求解似然方程,得到的參數θ 即爲所求。
2.2 Jensen不等式
  設f 是定義域爲實數的函數,如果對於所有的實數xf(x) 的二次導數大於等於0,那麼f 是凸函數。
  Jensen不等式表述如下:如果f 是凸函數,X 是隨機變量,那麼:E[f(X)]f(E[X]) 。當且僅當X 是常量時,上式取等號。其中,E[x] 表示x 的數學期望。
  例如,圖2中,實線f 是凸函數,X 是隨機變量,有0.5的概率是a ,有0.5的概率是bX 的期望值就是ab 的中值了,圖中可以看到E[f(X)]f(E[X]) 成立。
  注:
  1、Jensen不等式應用於凹函數時,不等號方向反向。當且僅當X 是常量時,Jensen不等式等號成立。
  2、關於凸函數,百度百科中是這樣解釋的——“對於實數集上的凸函數,一般的判別方法是求它的二階導數,如果其二階導數在區間上非負,就稱爲凸函數(向下凸)”。關於函數的凹凸性,百度百科中是這樣解釋的——“中國數學界關於函數凹凸性定義和國外很多定義是反的。國內教材中的凹凸,是指曲線,而不是指函數,圖像的凹凸與直觀感受一致,卻與函數的凹凸性相反。只要記住“函數的凹凸性與曲線的凹凸性相反”就不會把概念搞亂了”。關於凹凸性這裏,確實解釋不統一,博主暫時以函數的二階導數大於零定義凸函數,此處不會過多影響EM算法的理解,只要能夠確定何時E[f(X)]f(E[X]) 或者E[f(X)]f(E[X]) 就可以。
這裏寫圖片描述
圖2

3、EM算法詳解
3.1 問題描述
  我們目前有100個男生和100個女生的身高,共200個數據,但是我們不知道這200個數據中哪個是男生的身高,哪個是女生的身高。假設男生、女生的身高分別服從正態分佈,則每個樣本是從哪個分佈抽取的,我們目前是不知道的。這個時候,對於每一個樣本,就有兩個方面需要猜測或者估計: 這個身高數據是來自於男生還是來自於女生?男生、女生身高的正態分佈的參數分別是多少?EM算法要解決的問題正是這兩個問題。如圖3:

這裏寫圖片描述
圖3

3.2 EM算法推導
  樣本集X={x1,,xm} ,包含m 個獨立的樣本;每個樣本xi 對應的類別zi 是未知的(即上文中每個樣本屬於哪個分佈是未知的);我們需要估計概率模型p(x,z) 的參數θ ,即需要找到適合的θzL(θ) 最大。根據上文2.1 極大似然估計中的似然函數取對數所得logL(θ) ,可以得到如下式:
這裏寫圖片描述

其中,(1)式是根據xi 的邊緣概率計算得來,(2)式是由(1)式分子分母同乘一個數得到,(3)式是由(2)式根據Jensen不等式得到。
  這裏簡單介紹一下(2)式到(3)式的轉換過程:由於Qi(z(i))[p(x(i),z(i);θ)Qi(z(i))]p(x(i),z(i);θ)Qi(z(i)) 的期望,且log(x) 爲凹函數,根據Jensen不等式(當f 是凸函數時,E[f(X)]f(E[X]) 成立;當f 是凹函數時,E[f(X)]f(E[X]) 成立)可由(2)式得到(3)式。此處若想更加詳細瞭解,可以參考博客the EM algorithm
  上述過程可以看作是對logL(θ) (即L(θ) )求了下界。對於Qi(z(i)) 的選擇,有多種可能,那麼哪種更好呢?假設θ 已經給定,那麼logL(θ) 的值就取決於Qi(z(i))p(x(i),z(i))] 了。我們可以通過調整這兩個概率使下界不斷上升,以逼近logL(θ) 的真實值,那麼什麼時候算是調整好了呢?當不等式變成等式時,說明我們調整後的概率能夠等價於logL(θ) 了。按照這個思路,我們要找到等式成立的條件。根據Jensen不等式,要想讓等式成立,需要讓隨機變量變成常數值,這裏得到:
p(x(i),z(i);θ)Qi(z(i))=c
c 爲常數,不依賴於z(i) 。對此式做進一步推導:由於z(i)Qi(z(i))=1 ,則有z(i)p(x(i),z(i);θ)=c (多個等式分子分母相加不變,則認爲每個樣例的兩個概率比值都是c ),因此得到下式:
這裏寫圖片描述

  至此,我們推出了在固定其他參數θ 後,Qi(z(i)) 的計算公式就是後驗概率,解決了Qi(z(i)) 如何選擇的問題。這一步就是E步,建立logL(θ) 的下界。接下來的M步,就是在給定Qi(z(i)) 後,調整θ ,去極大化logL(θ) 的下界(在固定Qi(z(i)) 後,下界還可以調整的更大)。這裏讀者可以參考文章EM算法
3.3 EM算法流程
  初始化分佈參數θ ; 重複E、M步驟直到收斂:
  E步驟:根據參數θ 初始值或上一次迭代所得參數值來計算出隱性變量的後驗概率(即隱性變量的期望),作爲隱性變量的現估計值:
這裏寫圖片描述

  M步驟:將似然函數最大化以獲得新的參數值:
這裏寫圖片描述

4、EM算法優缺點以及應用
  優點:簡介中已有介紹,這裏不再贅述。
  缺點:對初始值敏感:EM算法需要初始化參數θ ,而參數θ 的選擇直接影響收斂效率以及能否得到全局最優解。
  EM算法的應用:k-means算法是EM算法思想的體現,E步驟爲聚類過程,M步驟爲更新類簇中心。GMM(高斯混合模型)也是EM算法的一個應用,感興趣的小夥伴可以查閱相關資料。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章