EM算法淺析(二)-算法初探


EM算法淺析,我准備寫一個系列的文章:

一、EM算法簡介

EM算法之一--問題引出中我們介紹了硬幣的問題,給出了模型的目標函數,提到了這種含隱變量的極大似然估計要用EM算法解決,繼而羅列了EM算法的簡單過程,當然最后看到EM算法時內心是懵圈的,我們也簡要的分析了一下,希望你在看了前一篇文章后,能大概知道E步和M步的目的和作用。為了加深一下理解,我們回過頭來,重新看下EM算法的簡單介紹:

輸入:觀測變量數據Y,隱變量數據Z,聯合分布\(P(Y,Z\|\theta)\),條件分布\(P(Z\|Y,\theta)\)
輸出:模型參數\(\theta\)
(1)選擇參數初值\(\theta^{(0)}\),進行迭代;
(2)E步:記\(\theta^{(i)}\)為第i次迭代參數\(\theta\)的估計值,在i+1次迭代的E步,計算:

\[Q(\theta,\theta^{(i)}) =E_Z[logP(Y,Z | \theta)|\color{red}{Y,\theta^{(i)}}]\\ =\sum_Z{[logP(Y,Z|\theta)]\color{red}{[P(Z|Y,\theta^{(i)})]}} \tag{1} \]

(3)M步:求使得\(Q(\theta,\theta^{(i)})\)極大化的\(\theta\),確定i+1次迭代的參數估計值\(\theta^{(i+1)}\)

\[\theta^{(i+1)}=argmax_\theta Q(\theta,\theta^{(i)}) \tag{2} \]

(4)重復第(2)步和第(3)步,直到收斂

上述E步中的函數\(Q(\theta,\theta^{(i)})\)是EM算法的核心,稱之為Q函數(Q function)。
Q函數完全數據的對數似然函數\(logP(Y,Z | \theta)\)關於在給定觀測數據\(Y\)和當前參數\(\theta^{(i)}\)下,對未觀測數據Z的條件概率分布\(P(Z|Y,\theta^{(i)})\)的期望。
讓我們且慢下來看下Q函數,這里重點詞很多。首先,很顯然Q函數是個期望,這沒有問題;其次這個期望是某個函數(完全數據下的對數似然函數)關於某個概率分布(在xxx條件下,未觀測數據Z的條件概率分布)的期望。讀到這里的你可能對函數關於某個概率分布的期望不太明白。我就在這個插個小插曲介紹下,懂的可以略過:

知識點一:條件數學期望

上面牽扯到的函數關於某個概率分布的期望,在數學中叫條件數學期望
首先,條件概率我們已經熟悉,就是在事件$ {X=x_i}\(已經發生的條件下,事件\){Y=y_j}\(發生的概率,記作\)P { Y=y_j|X=x_i } $;
而條件期望是一個實數隨機變量的相對於一個條件概率分布的期望值。設X和Y是離散隨機變量,則X的條件期望在給定事件Y = y條件下是x的在Y的值域的函數:

       (3)

個人感覺可以理解為在各個條件概率分布下的加權平均值。

那么繼續理解Q函數,看E步中公式(1),函數\(logP(Y,Z\| \theta)\)是關於Z的,而在\(Y,\theta^{(i)}\)的條件下就是指隱含變量Z在此條件下,也就是在概率分布\(P(Z\|Y,\theta^{(i)})\)條件下,所以公式1中紅色部分的變形就很好理解了。對數似然函數\(logP(Y,Z\| \theta)\)就是完全數據的對數似然函數,里面有隱變量Z,所以想要求此函數中Z的條件數學期望就要加入對Z的條件概率分布。
E步獲得了隱含變量的條件數學期望后,我們要做的就是拿着個值取求模型參數\(\theta\)使得Q函數的值最大(極大似然估計求導)。所以,在M步中,對於\(Q(\theta,\theta^{(i)})\)求極大值,得到\(\theta^{(i+1)}\),完成一次迭代\(\theta^{(i)} \to \theta^{(i+1)}\),我們之后在證明每次迭代必定會使得Q函數值增大或者能達到局部最優(第二部分提供證明)。最后,停止的迭代條件一般是要求設置比較小的值\(\epsilon_1,\epsilon_2\),若滿足\(\|\|\theta^{(i+1)}-\theta^{(i)}\|\|<\epsilon_1\)或者\(\|\|Q(\theta^{(i+1)},\theta^{(i+1)})-Q(\theta^{(i)},\theta^{(i)})\|\|<\epsilon_2\)

二、EM算法導出

為什么EM算法能近似實現觀測數據的極大似然估計呢?我們面對一個含有隱變量的概率模型,目標是極大化觀測數據(不完全數據)Y關於參數\(\theta\)的對數似然函數,即最大化:

\[L(\theta) =logP(Y|\theta) =log\sum_Z{P(Y,Z|\theta)} =log(\sum_Z{P(Y|Z,\theta)P(Z|\theta)}) \tag{4} \]

這個式子的困難就是公式(4)中含有未觀測數據,而且含有和(或者積分)的對數。
而EM算法是通過迭代逐步近似極大化\(L(\theta)\)的。這里假設第i此迭代后\(\theta\)的估計值是\(\theta^{(i)}\),那么我們計算下新的估計值\(\theta\)能否使得\(L(\theta)\)增加,即\(L(\theta)>L(\theta^{(i)})\),並逐步到達最大值?於是我們考慮兩者的差值:

\[L(\theta)-L(\theta^{(i)})=log \left( \sum_Z{P(Y|Z,\theta)P(Z|\theta)} \right)-logP(Y|\theta^{(i)}) \tag{5} \]

對於公式(5)我們需要一個變形,但是變形需要知道Jensen inequality。

知識點二:Jensen inequality(詹森不等式)

\[log\sum_{j}{\lambda_{j}y_j} \ge \sum_j{\lambda_j logy_j}$$,其中$\lambda_j \ge 0, \sum_j{\lambda_j = 1}$ \]

稍微了解完Jensen不等式,我們繼續來看公式(5),首先把公式(5)變形,前部分中分子分母同時乘以一個\(\color{blue}{P(Y\|Z,\theta^{(i)})}\),清晰起見,我們標上藍色和中括號,如下:

這里我們令

\[B(\theta,\theta^{(i)}) = L(\theta^{(i)}) + \sum_Z \left[ \color{blue}{P(Z|Y,\theta^{(i)})} log \left( \frac{P(Y|Z,\theta)P(Z|\theta)}{\color{blue}{P(Z|Y,\theta^{(i)})}\color{ForestGreen}{P(Y|\theta^{(i)})}} \right) \right] \tag{7} \]

則可以得到:

\[L(\theta) \ge B(\theta,\theta^{(i)}) \tag{8} \]

可以知道\(B(\theta,\theta^{(i)})\)函數是\(L(\theta)\)的一個下界,且由公式(7)可知:

\[L(\theta^{(i)}) = B(\theta^{(i)},\theta^{(i)}) \]

因此,任何可以使得\(B(\theta,\theta^{(i)})\)增大的\(\theta\),也可以使\(L(\theta)\)增大。為了使得\(L(\theta)\)有盡可能的大的增長,選擇\(\theta^{(i+1)}\)使\(B(\theta,\theta^{(i)})\)達到極大,即:

\[\theta^{(i+1)}=argmax_\theta B(\theta,\theta^{(i)}) \tag{9} \]

現在求\(\theta^{(i+1)}\),省略常數化項:

公式(10)中等價於EM算法的一次迭代,即求Q函及其極大化。所以,我們看到EM算法是通過不斷求解下界的極大化逼近求解對數似然函數極大化的算法。就是一種局部的下限的不斷構造,然后進一步求解。

三、EM算法應用

EM算法有很多應用,求分類、回歸、標注等任務。比較廣泛的就是GMM混合高斯模型、HMM隱馬爾可夫訓練問題等等。


免責聲明!

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



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