標籤:

機器學習 - EM演算法

一、思想

Expectation Maximization Algorithm

我們經常會從樣本觀察數據中,找出樣本的模型參數。 最常用的方法就是極大化模型分布的對數似然函數。(根據樣本,估計概率就是極大似然估計)

但是在一些情況下,我們得到的觀察數據有未觀察到的隱含數據,此時我們未知的有隱含數據和模型參數,因而無法直接用極大化對數似然函數得到模型分布的參數。

怎麼辦呢?這就是EM演算法可以派上用場的地方了。

EM演算法解決這個的思路是使用啟發式的迭代方法。

既然我們無法直接求出模型分布參數,那麼我們可以先猜想隱含數據(EM演算法的E步),接著基於觀察數據和猜測的隱含數據一起來極大化對數似然,求解我們的模型參數(EM演算法的M步)。

由於我們之前的隱藏數據是猜測的,所以此時得到的模型參數一般還不是我們想要的結果。不過沒關係,我們基於當前得到的模型參數,繼續猜測隱含數據(EM演算法的E步),然後繼續極大化對數似然,求解我們的模型參數(EM演算法的M步)。以此類推,不斷的迭代下去,直到模型分布參數基本無變化,演算法收斂,找到合適的模型參數。

二、演算法

最大期望演算法經過兩個步驟交替進行計算 :

1)計算期望(E),利用概率模型參數的現有估計值,計算隱藏變數的期望;

2)最大化(M),利用E 步上求得的隱藏變數的期望,對參數模型進行最大似然估計。

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

三、例子

四、公式推導

參考文獻:

EM Algorithm

EM演算法 實例講解 - CSDN博客

EM演算法原理總結


推薦閱讀:

推薦系統:經典方法
線性支持向量機(soft-margin SVM)
機器學習入門之邏輯回歸分類
lightgbm演算法優化實際案例分享
嘗試克服一下小夥伴對神經網路的恐懼No.26

TAG:機器學習 |