EM算法概述

jopen 10年前發布 | 16K 次閱讀 算法

EM算法概述

最大期望算法(Expectation Maximization Algorithm,又譯期望最大化算法),是一種迭代算法,用于含有隱變量(hidden variable)的概率參數模型的最大似然估計或極大后驗概率估計。

在統計計算中,最大期望(EM)算法是在概率(probabilistic)模型中尋找參數最大似然估計或者最大后驗估計的算法,其中概率模型依賴 于無法觀測的隱藏變量(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。
最大期望算法經過兩個步驟交替進行計算:

第一步是計算期望(E),利用對隱藏變量的現有估計值,計算其最大似然估計值;

第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。

M 步上找到的參數估計值被用于下一個 E 步計算中,這個過程不斷交替進行。

總體來說,EM的算法流程如下:

1.初始化分布參數

2.重復直到收斂:

E步驟:估計未知參數的期望值,給出當前的參數估計。

M步驟:重新估計分布參數,以使得數據的似然性最大,給出未知變量的期望估計。

EM算法簡述

迭代使用EM步驟,直至收斂。

可以有一些比較形象的比喻說法把這個算法講清楚。比如說食堂的大師傅炒了一份菜,要等分成兩份給兩個人吃,顯然沒有必要拿來天平一點一點的精確的去 稱分量,最簡單的辦法是先隨意的把菜分到兩個碗中,然后觀察是否一樣多,把比較多的那一份取出一點放到另一個碗中,這個過程一直迭代地執行下去,直到大家 看不出兩個碗所容納的菜有什么分量上的不同為止。EM算法就是這樣,假設我們估計知道A和B兩個參數,在開始狀態下二者都是未知的,并且知道了A的信息就 可以得到B的信息,反過來知道了B也就得到了A。可以考慮首先賦予A某種初值,以此得到B的估計值,然后從B的當前值出發,重新估計A的取值,這個過程一 直持續到收斂為止。

EM 算法是 Dempster,Laind,Rubin 于 1977 年提出的求參數極大似然估計的一種方法,它可以從非完整數據集中對參數進行 MLE 估計,是一種非常簡單實用的學習算法。這種方法可以廣泛地應用于處理缺損數據,截尾數據,帶有噪聲等所謂的不完全數據(incomplete data)。

假定集合Z = (X,Y)由觀測數據 X 和未觀測數據Y 組成,X 和Z = (X,Y)分別稱為不完整數據和完整數據。假設Z的聯合概率密度被參數化地定義為P(X,Y|Θ),其中Θ表示要被估計的參數。Θ的最大似然估計是求不完 整數據的對數似然函數L(X;Θ)的最大值而得到的:

L(Θ;X)= log p(X|Θ) = ∫log p(X,Y|Θ)dY ;

EM算法包括兩個步驟:由E步和M步組成,它是通過迭代地最大化完整數據的對數似然函數Lc(X;Θ)的期望來最大化不完整數據的對數似然函數,其中:

Lc(X;Θ) =log p(X,Y |Θ) ;

假設在算法第t次迭代后Θ獲得的估計記為Θ(t) ,則在(t+1)次迭代時,

E-步:計算完整數據的對數似然函數的期望,記為:

Q(Θ|Θ (t)) = E{Lc(Θ;Z)|X;Θ(t)};

M-步:通過最大化Q(Θ|Θ(t) ) 來獲得新的Θ 。

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

EM算法的主要目的是提供一個簡單的迭代算法計算后驗密度函數,它的最大優點是簡單和穩定,但容易陷入局部最優。

End.



EM算法概述

來自36大數據(36dsj.com)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!