EM算法--原理

分類:IT技術 時間:2016-10-11

EM算法即期望最大化(Expection Maximization)算法,是一種最優化算法,在機器學習領域用來求解含有隱變量的模型的最大似然問題。最大似然是一種求解模型參數的方法,顧名思義,在給定一組數據時,將似然表示為參數的函數,然後對此似然函數最大化即可求出參數,此參數對應原問題的最大似然解。對於簡單的問題,我們通過將似然函數對參數求導並令導數等於零即可求出參數的解析解或隱式解。然而,有一類模型,他們的結構中包含隱變量(如混合高斯模型、混合伯努利模型、隱馬爾科夫模型等),無法通過對似然函數直接求導得到最大似然解,此時就要借助EM算法了。

要解釋EM算法,需要解釋兩個問題,1. 這裏的“期望”指什麽? 2. 為什麽最大化這個期望就可以最大化似然?

假設我們有一組$N$個已知數據$\left \{ x_1, x_2, \cdots, x_N \right \}$,簡記為$\textbf{X}$。與之對應的$N$個隱變量為$\left \{ z_1, z_2, \cdots, z_N \right \}$,簡記為$\textbf{Z}$。模型的所有參數記作$\theta$。我們的目標是要最大化如下似然函數

$$\begin{eqnarray} p(\textbf{X} \left | \theta \right)=\sum_{\textbf{Z}}{p(\textbf{X}, \textbf{Z}|\theta)} \label{eqlikelihood} \end{eqnarray}$$

這裏我們假設隱變量$\textbf{Z}$是離散的;如果隱變量是連續的,所有公式形式不變,只需將對$\textbf{Z}$求和改成求積分即可。

這裏我們引入一個$\textbf{Z}$的分布$q(\textbf{Z})$,則式($\ref{eqlikelihood}$)可以變換為

$$\begin{eqnarray} \ln{ p(\textbf{X} \left | \theta \right)}=L(q, \theta)+KL(q \left \| p \right) \label{eqloglikelihood} \end{eqnarray}$$

其中,$L(q, \theta)$和$KL(q \left \| p \right)$分別為

$$\begin{eqnarray}  \displaystyle L(q, \theta) & = & \sum_{\textbf{Z}}{q(\textbf{Z}) \ln{\left \{ \frac{p(\textbf{X}, \textbf{Z}|\theta)}{q(\textbf{Z})}\right \} }}\label{eqL} \\  \displaystyle KL(q \left \| p \right) & = & -\sum_{\textbf{Z}}{q(\textbf{Z}) \ln{\frac{p(\textbf{Z} \left | \textbf{X}  ,\theta \right)}{q(\textbf{Z})}}}  \label{eqKL} \end{eqnarray}$$

上述推導過程如下:

$$\begin{eqnarray*}  \displaystyle \ln{ p(\textbf{X})} & = & \ln{\frac{p(\textbf{X}, \textbf{Z} \left | \theta \right)}{p(\textbf{Z} \left | \textbf{X}, \theta \right)}} \\  \displaystyle  & = & \ln{\frac{p(\textbf{X}, \textbf{Z} \left | \theta \right)}{q(\textbf{Z})}} + \ln{\frac{q({\textbf{Z})}}{p(\textbf{Z} \left | \textbf{X}, \theta \right)}} \\ \displaystyle  & = & \sum_{\textbf{Z}}{q(\textbf{Z}) \left [ \ln{\frac{p(\textbf{X}, \textbf{Z} \left | \theta \right)}{q(\textbf{Z})}} + \ln{\frac{q({\textbf{Z})}}{p(\textbf{Z} \left | \textbf{X}, \theta \right)}} \right ]} \\ \displaystyle & = & L(q, \theta)+KL(q \left \| p \right) \end{eqnarray*}$$

 式($\ref{eqL}$)是一個泛函即函數的函數,因為$q$是一個函數。$KL(q \left \| p \right)$是兩個概率分布$q(\textbf{Z})$和$p(\textbf{Z} \left | \textbf{X}, \theta \right)$的KL散度,因此$KL(q \left \| p \right) \geqslant 0$,當且僅當$q=p$時取等號。所以,$L(q, \theta) \leqslant \ln{ p(\textbf{X} \left | \theta \right)}$,也就是說$L(q, \theta)$是$\ln{ p(\textbf{X} \left | \theta \right)}$的下界。

EM算法的過程是一個叠代的過程。回到式($\ref{eqloglikelihood}$),假設先固定$\theta = \theta^{old}$,因此等式左邊是一個與$q$無關的常量值。因為$L(q, \theta)$是$\ln{ p(\textbf{X} \left | \theta \right)}$的下界,我們要最大化這個下界,也即最小化$KL(q \left \| p \right)$,因此最優解為$q(\textbf{Z}) = p(\textbf{Z} \left | \textbf{X}  ,\theta^{old} \right)$,此時的下界等於log似然。以上為EM算法的E步。

接下來,我們固定$q(\textbf{Z})$為上一步的最優解,以$\theta$為參數對下界$L(q, \theta)$最大化求得新的參數$\theta^{new}$。因為下界變大了(除非已經達到了最大值),所以$\ln{ p(\textbf{X} \left | \theta \right)}$必然也變大,而且因為此時$q(\textbf{Z})$(實際為$p(\textbf{Z} \left | \textbf{X}  ,\theta^{old} \right)$)與$p(\textbf{Z} \left | \textbf{X}  ,\theta^{new} \right)$不相等,$KL(q \left \| p \right) > 0$,所以,$\ln{ p(\textbf{X} \left | \theta \right)}$變大的量比下界變大的量還多(兩者又不相等了,從而為回到E步留下了“空間”)。以上為EM算法的M步EM算法就是通過E步和M步這樣不停叠代來最大化log似然直至收斂的。

如果我們將E步的解$q(\textbf{Z}) = p(\textbf{Z} \left | \textbf{X}  ,\theta^{old} \right)$帶入式($\ref{eqL}$)中可以看到,此時的下界

$$ \begin{eqnarray} L(q, \theta) & = & \sum_{\textbf{Z}}{p(\textbf{Z} \left | \textbf{X}, \theta^{old} \right) \ln{p(\textbf{X}, \textbf{Z} \left | \theta \right )}} - \sum_{\textbf{Z}}{p(\textbf{Z} \left | \textbf{X}, \theta^{old} \right) \ln{p(\textbf{Z} \left | \textbf{X}, \theta^{old} \right) }} \\ & = & Q(\theta, \theta^{old}) + const \end{eqnarray} $$

因此在M步我們要最大化的實際是上式的第一部分$Q(\theta, \theta^{old})$,即“全數據”(complete-data)的log似然在分布$p(\textbf{Z} \left | \textbf{X}, \theta^{old} \right)$下的期望,這裏的“全數據”即指已知數據加上其對應的隱變量,可以記作$\left \{ \textbf{X}, \textbf{Z} \right \}$,它是相對單獨的已知數據$\left \{ \textbf{X} \right \}$而言的。

如下兩個圖,左圖用於說明log似然始終可以分解為一個下界與一個KL散度的和。右圖用於說明,因為存在左圖所示的關系,當下界變大時(從底部變到虛線的位置),log似然始終會變得更大(從底部變到紅線的位置)。

最後,我們回答文章一開始的兩個問題。

1. 這裏的“期望”指什麽? 

A: 這裏的期望指全數據的log似然的期望。這也是EM算法名稱的由來。

2. 為什麽最大化這個期望就可以最大化似然?

A:上述E步和M步的論述已經闡明。這裏簡述如下:我們通過對隱變量引入一個假設分布將目標函數(log似然)分解為兩部分,一部分為它的下界,一部分為一個非負的KL散度。為了最大化目標函數,我們先在E步使KL散度為0從而使下界最大,此時下界等於log似然;接下來在M步我們以模型參數為自變量進一步最大化下界,因為下界更大了,所以目標函數也會變得更大。通過這兩步不停地叠代直至收斂就找到了原問題的最大似然解。(有興趣的同學可以通過公式推導證明,為什麽每經過一輪EM叠代,目標函數就會更大。)

在下一篇文章裏,會通過介紹混合高斯模型及其實例進一步闡述EM算法。

Q(\theta, \theta^{old})


Tags: 高斯 領域 模型

文章來源:


ads
ads

相關文章
ads

相關文章

ad