1. 程式人生 > >EM 演算法簡介

EM 演算法簡介

EM 演算法的思想

用擬合的思想來求隨機變數的數字特徵。

例如:模型中有兩個未知引數 A A B B 需要估計,而 A

A B B 又存在相互依賴的關係,即知道 A A 才能推出 B
B
,知道了 B B 才能推出 A A

EM 的思路就是先固定其中一個,推測另一個,如此反覆。

EM 分別代表什麼

  • E 表示求期望;

求在觀測資料的前提下隱變數的期望;

  • M 表示最大化似然函式。

求經過隱變數改寫的似然函式的極大;

EM 演算法的用途

EM 演算法用於解決含有隱含變數的概率模型的引數估計問題。

  • 對概率模型進行引數估計是一種常見的問題分析的手段。
  • 當然概率模型僅存在觀測資料的時候,可以直接利用最大似然估計的方法,對似然函式取對數,令各個引數的偏導數為 0,求得的引數的值作為引數的估計。
  • 然而,如果概率模型中存在隱變數的時候,就不能這麼做了,EM 演算法就是用於解決含有隱含變數的概率模型的引數估計問題。

EM 演算法是通過迭代地求解隱含變數的充分統計量和最大化似然函式以達到引數估計的演算法。

EM 演算法和我們熟悉的 K-Means 演算法很像

應該這麼說,K-Means 是 EM 演算法的一個具體應用。

問題的定義

  • 輸入:觀測資料和類別的總數。
  • 輸出:觀測資料所服從的幾個分佈函式的引數。
    例如:
    輸入:7000 份成績,來自 4 個科目:語文、數學、英語、計算機。
    輸出:4 個科目分別服從的分佈的引數值,由於各科成績服從高斯分佈,因此輸出為每科成績的分佈引數 Y = { ( μ 1 , σ 1 ) , ( μ 2 , σ 2 ) , ( μ 3 , σ 3 ) ( μ 4 , σ 4 ) } Y=\{(\mu_1,\sigma_1),(\mu_2,\sigma_2),(\mu_3,\sigma_3)(\mu_4,\sigma_4)\} ,以及樣本服從各個分佈的概率 ϕ = { ϕ 1 , ϕ 2 , ϕ 3 , ϕ 4 } \phi = \{\phi_1,\phi_2,\phi_3,\phi_4\}

細節一:在使用 Jensen 不等式的時候,需要假設隱變數服從某種形式的概率分佈,才可以將推導過程的一部分看成是期望的表達形式從而應用 Jensen 不等式。然而這個分佈不是隨便指定的。我們令 Jensen 不等式取等號的時候,可以計算出這個分佈其實就是:已知觀測資料的隱變數的後驗概率分佈。由於求 Q 函式需要先求出隱變數的後驗概率的期望,因此,這就可以解釋為什麼EM演算法的“通俗”理解角度的E步驟是求隱變數的期望了。

細節二:Q 函式與完全資料的對數似然函式的關係。有時候在用 EM 演算法解決某個具體問題的時候,會發現 M 步驟極大化的居然是完全資料的對數似然函式。這是因為,Q 函式雖然是完全資料的對數似然函式的某種期望,但是求這個期望的過程有時其實就是將隱變數的後驗概率的期望代入就可以了。因此,本質上我們其實還是在求 Q 函式的極大

參考資料:

淺談 EM 演算法的兩個理解角度
https://blog.csdn.net/xmu_jupiter/article/details/50936177
說明:這篇文章沒有抄公式,把重要的思想部分提取出來。