EM算法
期望最大化算法,是尋找具有潛在變量地概率模型地最大似然解的一種通用的方法。下面介紹一般形式的EM算法的推導過程。
我們把所有的觀測變量聯合起來記作X={x1,x2,...,xN},將所有的隱含變量記作Z={z1,z2,xN}。這裏只考慮Z的狀態是離散值的情況,我們假設每個樣本xn點由對應的隱含變量zn決定。於是對於生成式模型,我們希望模型的參數集θ能夠使得p(X∣θ)的概率達到最大。因此很容易想到最大化模型的似然函數就能解出最優的參數集θ。
我們通過計算(X,Z)的聯合概率密度分佈計算X的邊緣概率密度:
p(X∣θ)=Z∑p(X,Z∣θ)(1)
對上式使用極大似然法求解參數θ的最優解過程中,需要對左右同時取對數,觀察右邊部分ln∑Zp(X,Z∣θ),我們會發現對潛在變量的求和出現在了對數運算內部,這阻止了對數運算直接作用於聯合概率分佈,使得最大似然解的形式更加複雜。
問題的轉化
後面的介紹中,我們稱{X,Z}爲完整的數據集,並且我們稱實際觀測的數據集X爲不完整的,完整數據集的對數似然函數爲ln p(X,Z∣θ),我們假定這個完整數據集的對數似然函數進行最大化是很容易的。
下面介紹將最大化p(X∣θ)的目標轉化成最優化p(X,Z∣θ)的過程。我們引入一個定義在潛在變量上的分佈q(Z),對於任意的q(Z),下面的分解式成立:
ln p(X∣θ)=L(q,θ)+KL(q∣∣p)(2)
其中,我們定義了
L(q,θ)=Z∑q(Z)ln{q(Z)p(X,Z∣θ)}KL(q∣∣p)=−Z∑q(Z)ln{q(Z)p(Z∣X,θ)}(3)
證明公式(2)
利用概率的乘積規則p(X,Z∣θ)=p(Z∣X,θ) p(X∣θ),於是ln (X,Z∣θ)=ln p(Z∣X,θ)+ln p(X∣θ),然後代入L(q,θ)的表達式。這得到了兩項,一項消去了KL(q∣∣p),而另外一項給出了所需的對數似然函數ln p(X∣θ),其中我們用到了歸一化的概率分佈q(Z)的積分等於1的事實。
我們來觀察公式(2),右邊的兩項都是關於變量q(Z)和模型參數集{θ}的的函數,右邊的第二項表示的是KL散度KL(q,θ)是q(Z)和後驗概率分佈p(X,Z∣θ)之間的Kullback−Leibler散度。我們知道Kullback−Leibler散度滿足KL(q,θ)≥0,當且僅當q(Z)=p(Z∣X,θ)時等號成立。因此從公式(2)中我們可以得到一個結論:L(q,θ)是ln p(X∣θ)的一個下界。因此,既然ln p(X∣θ)無法使用極大似然法得到一個解析解,那麼只要找到一種方法讓這個下界不斷接近ln p(X∣θ),就能找到使得似然函數p(X∣θ)最大化的參數集θ。下面介紹這些方法中一個通用的方法:EM算法。
EM算法的實現過程
EM算法是一個兩階段的迭代優化算法,用於尋找ln p(X∣θ)最大似然解θopt。轉化公式(2)包含兩個參數{q(Z),θ},假設參數向量的當前值爲θ舊,EM算法分類兩個步驟:
- E步驟:固定θ舊,q(Z)分佈被設置爲當前參數值θ舊下的後驗概率分佈p(Z∣X,θ舊),(2)式中的第二項KL(q∣∣p)=−∑Zq(Z)ln{q(Z)p(Z∣X,θ)}的取值爲0。因此ln p(X∣θ舊)=L(q,θ舊),這使得θ舊固定的情況下,下界上移到對數似然函數值相同的位置。θ舊在未達到最大似然解θopt之前,ln p(X∣θ舊)≤ln p(X∣θopt),於是我們通過M步驟更新θ舊爲θ新,使得θ新不斷地逼近θopt。
- M步驟:保持E步驟中計算得到的q(Z)=p(Z∣X,θ舊)固定,使下界L(q,θ)關於θ進行最大化,得到某個新值θ新。這會使下界L增大(除非達到了極大值),這會使得對應的對數似然函數ln p(X∣θ新)增大。原因是當前潛在變量的分佈q(Z)由舊的參數值確定並且保持了固定,因此它不會等於新的後驗概率分佈p(Z∣X,θ新),從而KL散度不爲0。於是對數似然函數的增加量大於下界的增加量(下界增加量+新的KL散度值)。
M步驟我們推導了通過對下界L(q,θ)進行最大化,更新迭代得到的θ新對應的對數似然函數ln p(X∣Z,θ新)>ln p(X∣Z,θ舊),我們只要將E步驟中舊的參數θ舊用M步驟的θ新代替,如此持續迭代,就能使參數$\theta 不斷逼近最優解\theta ^{opt}$。
最大化下界L(q,θ)
我們將注意力放在M步驟中L(q,θ)的最大化上,使用q(Z)=p(Z∣X,θ舊)代入下界函數L(q,θ)得到:
L(q,θ)=Z∑p(Z∣X,θ舊)ln p(X,Z∣θ)−Z∑p(Z∣X,θ舊)ln p(Z∣X,θ舊)=Q(θ,θ舊)+常數(4)
其中,常數就是分佈q的熵,與θ無關。觀察公式(4)可知,M步驟後下界的增大值實際上等於完整數據似然函數的期望,我們記作Q(θ,θ舊)。最大化L(q,θ)又轉化成了最大化Q(θ,θ舊),至此我們就將最大化p(X∣θ)目標轉化成了關於p(X,Z∣θ)的問題,這樣做的好處是使得我們要優化的θ只出現在對數運算內部,如果聯合概率分佈p(X,Z∣θ)由指數族分佈的成員組成,或者其乘積組成,那麼對數運算會抵消指數運算,大大簡化了運算的複雜度,解決了原來無法得到θ解析解的問題。
Q(θ,θ舊)的最大化
經過上文的推導,我們對問題進行了兩次轉化,第一次在M步驟中將最優化ln p(X∣θ)的目標轉化成最優化下界L(q,θ)的問題,第二次轉化是將最優化下界L(q,θ)的目標轉化成最優化Q(θ,θ舊)的目標。
我們來討論獨立同分布數據集的情況,X由N個數據點{xn}組成,而Z由對應的N個潛在變量{zn}組成,其中n={1,2,...,N}。根據獨立性假設,我們有p(X,Z)=∏np(xn,zn),並通過關於{zn}邊緣概率分布,我們有P(X)=∏np(xn),使用加和規則和乘積規則,我們看到E步驟計算的後驗概率分佈的形式爲:
p(Z∣X,θ)=∑Zp(X,Z∣θ)P(X,Z∣θ)=∑Z∏n=1Np(xn,zn∣θ)∏n=1Np(xn,zn∣θ)=n=1∏Np(zn∣xn,θ)(5)
因此後驗概率分佈也可以關於n進行分解。在高斯混合模型中,這個結果意味着混合分佈的每個分量對於一個特定的數據點xn的”責任“只與xn的值和混合分量的參數θ有關,而與其他數據點無關。
從參數空間角度理解EM算法
如上圖所示,紅色曲線表示(不完整數據)的對數似然函數,它的最大值是我們想要的。我們首先選擇某一個初始的參數θ舊,然後第一個E步驟中,我們計算潛在變量上的後驗概率分佈p(Z∣X,θ舊),我們使用p(Z∣X,θ舊)代替q(Z)代入進而得到了一個較小的下界函數L(q,θold),用藍色曲線表示,下界和對數似然函數在θold處相切。並且這個下界函數L(q,θold)是一個凹函數,對於指數族分佈的混合分佈來說,有唯一的最大值,注意前面證明過下界函數L(q,θold)的最大值始終小於似然函數的最大值。因此在M步驟中,下界函數L(q,θ)被最大化,得到了新的參數θnew,這個參數給出了比θold處更大的似然函數值。接下來的E步驟構建一個新的下界,它在θnew處和似然函數相切,用綠色曲線表示。重複上面的步驟直到下界函數的最大值的增加率小於某個閾值。