十大機器學習算法之最大期望算法(EM,Expectation-Maximization算法)

一、算法簡介

最大期望算法(Expectation Maximization Algorithm,又譯期望最大化算法),是一種迭代算法,用於含有隱變量(latent variable)的概率參數模型的最大似然估計或極大後驗概率估計。
極大似然估計只是一種概率論在統計學的應用,它是參數估計的方法之一。說的是已知某個隨機樣本滿足某種概率分佈,但是其中具體的參數不是很清楚,參數估計就是通過若干次的實驗,觀察每一次的結果,利用得到的結果去分析、推測出參數的大概的值。最大似然估計就是建立在這樣的思想上:已知某個參數能使這個樣本出現的概率最大,我們當然不會再去選擇其他小概率的樣本,所以就乾脆直接把換個參數當作估計到的真實值。
求最大似然估計值的一般步驟
①寫出似然函數
②對似然函數取對數,整理函數形式
③對變量進行求導,使倒數等於0,得到似然方程
④求解似然方程,得到的參數即爲所求。

二、算法詳解

假設我們想要知道A和B兩個參數,在一開始的情況下,A、B兩者都是不知道的,但是假設我們在知道了A的信息之後,就可以直接求得B的信息,反過來也是一樣的,知道B也可以直接求得A。那麼此時,我們就可以考慮首先對兩者中的任何一個賦予某種初值,從而可以得到另一個的估計值,然後由得到的估計值再去計算另外一個的值,然後對兩個值的錯誤率設置一個閾值或者停止條件,直到收斂停止這個過程,得到我們所要求得的兩個值A和B。
算法流程
①初始化分佈參數θ
重複以下步驟:
E步:根據參數初始值或上一次迭代的模型參數來計算出隱性變量的後驗概率,其實就是隱性變量的期望。作爲隱性變量的現估計值:
這裏寫圖片描述
M步:將似然函數最大化以獲得新的參數值:
這裏寫圖片描述
EM的另外一種直觀的理解:
這裏寫圖片描述
途中的直線式迭代優化的路徑,可以從圖中看到,每一步都會想着最優值前進一步,而且前進路線是平行於座標軸的,因爲每一步都是固定一個變量去優化另外一個變量。這猶如在x-y座標系中找一個曲線的極值,然而曲線函數不能直接求導,因此什麼梯度下降方法就不適用了。但固定一個變量後,另外一個可以通過求導得到,因此可以使用座標上升法,一次固定一個變量,對另外的求極值,最後逐步逼近極值。對應到EM上,E步:固定θ,優化Q;M步:固定Q,優化θ;交替將極值推向最大。

三、幾個概念

不得不吐槽一下CSDN的公式編輯真是一大難題,這個只能放上我的手寫體了~~~醜了點,但是,應該能看的懂吧~吧~(沒自信+1)
這裏寫圖片描述
設f是定義域爲實數的函數,如果對於所有的實數x。如果對於所有的實數x,f(x)的二次導數大於等於0,那麼f是凸函數。當x是向量時,如果其hessian矩陣H是半正定的,那麼f是凸函數。如果只大於0,不等於0,那麼稱f是嚴格凸函數。

Jensen不等式
Jensen不等式表述如下:
如果f是凸函數,X是隨機變量,那麼:E[f(X)]>=f(E[X])
特別地,如果f是嚴格凸函數,當且僅當X是常量時,上式取等號。
如果用圖表示會很清晰:
這裏寫圖片描述
圖中,實線f是凸函數,X是隨機變量,有0.5的概率是a,有0.5的概率是b。(就像擲硬幣一樣)。X的期望值就是a和b的中值了,圖中可以看到E[f(X)]>=f(E[X])成立。 當f是(嚴格)凹函數當且僅當-f是(嚴格)凸函數。Jensen不等式應用於凹函數時,不等號方向反向。

四、關鍵問題及證明收斂

還是懶!!!圖片爲證~
這裏寫圖片描述

五、總結

EM算法說簡單也簡單,思想十分的簡單,就兩步,一步假設,一步計算,重複做就好了,說難呢也難,有些東西理解起來確實比較麻煩,所以這個說起來好多可能說不明白,大家有什麼不懂的可以參考一下大神的博客http://blog.csdn.net/zouxy09/article/details/8537620 。但是感覺也沒有描述出來是個啥,反正就是大家先理解思想,然後再去想怎麼搞明白其他。有問題隨時歡迎留言。

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