EM 期望最大化演算法

2021-07-06 10:25:50 字數 1981 閱讀 8801

em演算法編輯

最大期望演算法(expectation maximization algorithm,又譯期望最大化演算法),是一種迭代演算法,用於含有隱變數(hidden variable)的概率引數模型的最大似然估計或極大後驗概率估計。

中文名 em演算法 外文名 expectation maximization algorithm 別 名 期望最大化演算法 用 於 含有隱變數的概率引數模型

目錄 1 em演算法

2 em演算法簡述

em演算法 編輯

在統計計算中,最大期望(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;

m-步:通過最大化q(θ|θ(t) ) 來獲得新的θ 。

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

em演算法的主要目的是提供乙個簡單的迭代演算法計算後驗密度函式,它的最大優點是簡單和穩定,但容易陷入區域性最優。

EM 期望最大化演算法

馬爾可夫分支 1.馬爾可夫網 判別式,無項有環圖 1 gibbs 玻爾茲曼機 2 crf條件隨機場 3 馬爾可夫隨機場 2.1 動態貝葉斯 生成式,有向無環圖 1 卡爾曼濾波 2 hmm 隱馬爾可夫 2.2 靜態貝葉斯 先驗估計 data label 後驗估計 data label 似然估計 lab...

期望最大 EM 演算法

在概率模型中尋找引數最大似然估計的演算法。em演算法 是一種迭代演算法,用於含有隱變數的引數模型的最大似然估計。應用於資料聚類領域。最大似然估計 1 寫出似然函式 2 對似然函式取對數,並整理 3 求導數 4 解似然方程 期望最大 演算法經過兩個步驟交替進行計算,第一步是計算期望 e 也就是將隱藏變...

視窗最大化

1 jframe 視窗最大化,在建構函式中 新增如下 this.setextendedstate jframe.maximized both 2 jinternalframe視窗最大化,需要在新增到jframe的desktoppane之後設定,如下 bookframe.setmaximum true...