EM演算法簡單總結

最近在學習概率圖模型,經常能碰到EM演算法,在這裡對它做一個總結,加深一下印象。

EM演算法也被稱為上帝的演算法,它常用於含有隱變數的概率模型中的極大似然估計。EM演算法稱為期望最大化演算法(Expectation Maximization Algorithm),由名字就可以看出,它的演算法思想很簡單,基本來說由兩步組成

  1. E步:求期望(Expectation)
  2. M步:求極大(Maximization)

下面簡單地總結一下EM演算法。

EM演算法的由來

在含有隱變數的概率模型中,通常目標是極大化似然函數

begin{align}n&L(theta)=logP(Y|theta)=logsum_ZP(Y,Z|theta)n&=log(sum_ZP(Y|Z,theta)P(Z|theta))nend{align}

因為似然函數含有未知變數並且有積分項,直接優化L(theta)比較困難,因而我們採用一種迭代的方法求解,正是這種轉變產生了EM演算法。假設當前的參數估計值為theta_i,我們希望找到新的估計值theta使得L(theta)變大,並逐步接近最大值。因而我們的優化目標可以轉化為最大化L(theta)-L(theta_i),因此

begin{align}n&L(theta)-L(theta_i)n&=log{sum_ZP(Y|Z,theta)P(Z|theta)}-logP(Y|theta_i)n&=log{sum_ZP(Z|Y, theta_i)frac{P(Y|Z,theta)P(Z|theta)}{P(Z|Y, theta_i)}}-logP(Y|theta_i)n&geq sum_ZP(Z|Y, theta_i)log{frac{P(Y|Z,theta)P(Z|theta)}{P(Z|Y, theta_i)}}-logP(Y|theta_i)n&=sum_ZP(Z|Y, theta_i)log{frac{P(Y|Z,theta)P(Z|theta)}{P(Z|Y, theta_i)P(Y|theta_i)}}nend{align}

其中第(3)步計算利用了Jensen不等式。

Q函數的由來

對於上式,令

B(theta,theta_i)=L(theta_i)+sum_ZP(Z|Y, theta_i)log{frac{P(Y|Z,theta)P(Z|theta)}{P(Z|Y, theta_i)P(Y|theta_i)}}

那麼L(theta)geq B(theta,theta_i),並且由上式可以得出L(theta_i)=B(theta_i,theta_i),因此B(theta,theta_i)L(theta)的下界。由下圖可以了解各函數之間的關係,其實由圖也可以看出,如果目標函數不是凸函數,EM演算法不能保證找到全局最優解。

這樣,我們就可以通過最大化B(theta,theta_i)來間接地優化L(theta),即theta_{i+1}=argmax_{theta}B(theta,theta_i),則

begin{align}n&theta_{i+1}=argmax_{theta}B(theta,theta_i)n&=argmax_{theta}(L(theta_i)+sum_ZP(Z|Y, theta_i)log{frac{P(Y|Z,theta)P(Z|theta)}{P(Z|Y, theta_i)P(Y|theta_i)}})n&=argmax_{theta}(sum_ZP(Z|Y, theta_i)log{P(Y|Z,theta)P(Z|theta)})n&=argmax_{theta}(sum_ZP(Z|Y, theta_i)logP(Y,Z|theta))n&=argmax_{theta}Q(theta,theta_i)nend{align}

則EM演算法可以轉化為極大化Q(theta,theta_i),它是EM演算法的核心。其實,Q(theta,theta_i)稱為Q函數,定義為

Q(theta,theta_i)=E_Z[logP(Y,Z|theta)|Y,theta_i]

它是完全數據(觀測變數,隱變數)的對數似然函數logP(Y,Z|theta)關於在給定觀測數據Y和當前參數theta_i下對未觀測數據Z的條件概率分布P(Z|Y,theta_i)的期望。

EM演算法的步驟

至此,可以給出EM演算法的步驟:

  1. 選擇合適的初始參數theta_0,開始迭代(EM演算法是初值敏感的)

  2. E步:記theta_i為第i次參數的估計值,計算第i+1次的Q函數的值begin{align}n&Q(theta,theta_i)=E_Z[logP(Y,Z|theta)|Y,theta_i]n&=sum_ZlogP(Y,Z|theta)P(Z|Y, theta_i)nend{align}
  3. M步:求使Q(theta,theta_i)極大化的參數theta,確定新的參數估計值theta_{i+1}=argmax_{theta}Q(theta,theta_i)

  4. 重複(2),(3)直到收斂,收斂條件一般為||theta_{i+1}-theta_i||leqepsilon_1或者||Q(theta_{i+1},theta_i)-Q(theta_{i},theta_{i})||leqepsilon_2

參考

  • 《統計學習方法》李航

推薦閱讀:

HMM MEMM CRF
FCN(6)——從CRF到RNN
FCN(3)——DenseCRF

TAG:ExpectationMaximization | 机器学习 | 概率图模型 |