1. 程式人生 > >【機器學習】EM的算法

【機器學習】EM的算法

log mea www 優化 問題 get href ive 路線

EM的算法流程:

初始化分布參數θ;

重復以下步驟直到收斂

E步驟:根據參數初始值或上一次叠代的模型參數來計算出隱性變量的後驗概率,其實就是隱性變量的期望。作為隱藏變量的現估計值:

技術分享

M步驟:將似然函數最大化以獲得新的參數值:

技術分享

這個不斷的叠代,就可以得到使似然函數L(θ)最大化的參數θ了。那就得回答剛才的第二個問題了,它會收斂嗎?

感性的說,因為下界不斷提高,所以極大似然估計單調增加,那麽最終我們會到達最大似然估計的最大值。理性分析的話,就會得到下面的東西:

技術分享

具體如何證明的,看推導過程參考:Andrew Ng《The EM algorithm》

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

EM算法另一種理解

坐標上升法(Coordinate ascent):

技術分享

圖中的直線式叠代優化的路徑,可以看到每一步都會向最優值前進一步,而且前進路線是平行於坐標軸的,因為每一步只優化一個變量。

這猶如在x-y坐標系中找一個曲線的極值,然而曲線函數不能直接求導,因此什麽梯度下降方法就不適用了。但固定一個變量後,另外一個可以通過求導得到,因此可以使用坐標上升法,一次固定一個變量,對另外的求極值,最後逐步逼近極值。對應到EM上,E步:

固定θ,優化Q;M步:固定Q,優化θ;交替將極值推向最大。

EM的應用

EM算法有很多的應用,最廣泛的就是GMM混合高斯模型、聚類、HMM等等。具體可以參考JerryLead的cnblog中的Machine Learning專欄:

  (EM算法)The EM Algorithm

  混合高斯模型(Mixtures of Gaussians)和EM算法

  K-means聚類算法

http://blog.csdn.net/zouxy09/article/details/8537620

【機器學習】EM的算法