EM算法(二)-算法初探
一、EM算法簡介
在EM算法之一--問題引出中我們介紹了硬幣的問題,給出了模型的目標函數,提到了這種含隱變量的極大似然估計要用EM算法解決,繼而羅列了EM算法的簡單過程,當然最後看到EM算法時內心是懵圈的,我們也簡要的分析了一下,那回過頭來,重新看下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
讓我們且慢下來看下Q函數,這裏重點詞很多。首先,很顯然Q函數是個期望,這沒有問題;其次這個期望是某個函數(完全數據下的對數似然函數)關於某個概率分布(在xxx條件下,未觀測數據Z的條件概率分布)的期望。讀到這裏的你可能對函數關於某個概率分布的期望不太明白。我就在這個插個小插曲介紹下,懂的可以略過:
知識點一:條件數學期望
上面牽扯到的函數關於某個概率分布的期望,在數學中叫條件數學期望。
首先,條件概率我們已經熟悉,就是在事件$ {X=x_i}$已經發生的條件下,事件${Y=y_j}$發生的概率,記作$P{Y=y_j|X=x_i}$;
{:.center}
?????? (3)
{:.center}
個人感覺可以理解為在各個條件概率分布下的加權平均。
那麽繼續理解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{logP(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(詹森不等式)
//TODO
稍微了解完Jensen不等式,我們繼續來看公式(5),首先把公式(5)變形,前部分中分子分母同時乘以一個$\color{blue}{P(Y|Z,\theta^{(i)})}$,清晰起見,我們標上藍色和中括號,如下:
$$
\begin{align}
L(\theta)-L(\theta^{(i)}) &=log \left( \sum_Z \left[ {\color{blue}{P(Z|Y,\theta^{(i)})} \frac{P(Y|Z,\theta)P(Z|\theta)}{\color{blue}{P(Z|Y,\theta^{(i)})}}} \right] \right) -log\color{ForestGreen}{P(Y|\theta^{(i)})} \
&\ge \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)})}} \right) \right] -log\color{ForestGreen}{P(Y|\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)})}} \right) \right] - \underbrace{\color{blue}{\sum_Z{P(Z|Y,\theta^{(i)}})}}_{=1} log\color{ForestGreen}{P(Y|\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]
\end{align}
\tag{6}$$
這裏我們令
$$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)}$,省略常數化項:
$$
\begin{align}
\theta^{(i+1)} &= argmax_\theta \left( L(\theta^{(i)}) + \sum_Z \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) \
&= argmax_\theta \left( \sum_Z \color{blue}{P(Z|Y,\theta^{(i)})} log \left( P(Y|Z,\theta)P(Z|\theta) \right) \right) \
&= argmax_\theta \left( \sum_Z \color{blue}{P(Z|Y,\theta^{(i)})} log \left( P(Y|Z,\theta) \right) \right) \
&= argmax_\theta Q(\theta,\theta^{(i)})
\end{align}
\tag{10}
$$
公式(10)中等價於EM算法的一次叠代,即求Q函及其極大化。EM算法是通過不斷求解下界的極大化逼近求解對數似然函數極大化的算法。
三、EM算法應用
EM算法有很多應用,求分類、回歸、標註等任務。比較廣泛的就是GMM混合高斯模型、HMM隱馬爾可夫訓練問題等等。
EM算法(二)-算法初探