EM算法 學習筆記


     轉載請注明出處: http://www.cnblogs.com/gufeiyang

    

    首先考慮這么一個問題。操場東邊有100個男生,他們的身高符合高斯分布。操場西邊有100個女生,她們的身高也符合高斯分布。 如果告訴了男生的身高,我們很容易用極大似然估計求出正態分布的參數。 同理,給出了女生的身高,我們也很容易得到高斯分布的參數。 接下來事情發生了, 男生跑入女生隊伍中, 然后統計了200個人的身高,但是卻不知道每個身高是男的還是女生的。 這樣的話就很糾結了。 如果我們要是知道了每個人的性別改多好啊, 知道了性別就可以用極大似然得到兩個高斯分布的參數了。 如果我們知道了高斯分布的參數,那么我就可以估計出來每個身高屬於男女的概率。 忽然間我們發現這是一個“先有雞還是先有蛋” 的問題。

    EM算法基本思想:假設我們想估計的參數為A,B。 開始的時候A和B都未知, 但是如果我們知道了A,就能得到B。 我們得到了B就可以得到A。 EM會給A一個初始值,然后得到B,再由B得到A, 再得到B,一直迭代到收斂為止。

    說完了EM算法的基本思想, 下面我講詳細介紹EM算法的公式推導。

    現在有樣本集 X1,X2......Xm, 一共m個樣本, 每個樣本都有一個隱變量Zi,但是這個變量卻不知道(隱變量嘛)。 我們需要估計的概率模型為P(X|Z)的參數θ。針對上一個例子,X為身高,Z給男女,θ為高斯分布的參數。

                                                     

     由於函數 f(x)=log(x)是一個凹函數,所有(2)式到(3)式可以利用jeson不等式。 其實l(θ)使我們的目標函數(如果Zi確定的話).我們這個時間找到了l(θ)的下界。 我們可以調整θ,然后再極大化下界,再調整θ......一直迭代到收斂為止。

     這個時候我們不禁會想兩個問題。 (a)上邊 的推導中用了不等號,什么時間可以取等號呢?  (b)真的一定會收斂嗎? 

     我們先討論第一個問題,由於 ,( Q(Zi)是Zi的概率密度函數),當為常數時, 不等式就變成了等式。我們令這個常數為,那么

                                                           

我們在給定了參數θ后,使下界拉升的Q(Zi)就能計算了。 給定了Q(Zi)后,又能調整θ,接着極大化新θ的下界......

     因此EM算法的步驟為:

           E步驟:根據參數初始值或上一次迭代的模型參數計算隱變量的后驗概率:

                                                            

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

                                                             

          一直重復這兩個步驟。

       接着討論第二個問題:這樣的迭代會收斂嗎?

                                                            

從上邊的推到來看,EM算法是收斂的。具體推導參看 Andrew Ng《The EM algorithm》。

至此EM算法就介紹完了。 需要指出EM算法不能保證全局最優。不同的初始值, 得到最后的結果可能不一樣。

 


參考資料:

《統計學習方法》   李航著 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM