EM演算法:從極大似然估計匯出EM演算法(還算通俗易懂)
之前看了《統計學習方法》,吳恩達老師的cs229講義,一起看感覺很昏(如果要看建議選擇其中一個,《統計學習方法》裡面基本很少會寫到 而都是用 只用了極大化沒有寫出我們熟悉的似然函式?!,cs229有視訊,但我喜歡看書),網上看了點部落格大部分好像也是來自cs229講義。這裡結合七月裡面一個博士講的與自己的理解來寫出從極大似然估計推出EM演算法好了。
1、隱變數與概率模型引數
EM演算法:概率模型有時既含有觀測變數,又含有隱變數。如果概率模型的變數都是觀測變數,那麼給定資料,就可以直接使用極大似然估計來求得引數或者貝葉斯估計模型引數。但是如果變數中有因變數,那麼這些方法就不行了,這個時候就可以使用EM演算法,EM演算法就是含有隱變數的概率模型引數的極大似然估計方法。
下面給出《統計學習方法》中的例子
觀測結果 我們用變數 表示,叫做顯變數,這裡取值是0或1
而擲的硬幣A的結果我們是不知道的,我們用變數 表示,叫做隱變數
2、EM演算法推導
而 則是模型引數,現在我們要求這三個引數。由於是改了模型,我們知道觀測結果來求引數,自然想到使用極大似然估計。根據極大似然估計定義,概率分佈 ,其中 為模型引數
先回顧下概率公式 (推導會用到):
全概率公式和貝葉斯公式
寫出極大似然函式
寫出對數形式
通常到這裡就要對引數求導 求導從而得到似然函式的極大值,但是這裡由於對數裡面存在求和,這種情況是難以求解的。這種情況下,通常的做法是使用迭代逐步去畢竟最優解,而EM演算法就是這樣一種迭代演算法,假設第 次迭代求出的引數為 ,我們希望下一次迭代得到的引數滿足
對