機器學習 - 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:機器學習 |