EM算法詳細推導(啓發性)

EM算法

期望最大化算法,是尋找具有潛在變量地概率模型地最大似然解的一種通用的方法。下面介紹一般形式的EM算法的推導過程。

我們把所有的觀測變量聯合起來記作X={x1,x2,...,xN}X=\{x_1, x_2, ..., x_N\},將所有的隱含變量記作Z={z1,z2,xN}Z=\{z_1, z_2, x_N\}。這裏只考慮ZZ的狀態是離散值的情況,我們假設每個樣本xnx_n點由對應的隱含變量znz_n決定。於是對於生成式模型,我們希望模型的參數集θ\theta能夠使得p(Xθ)p(X|\theta)的概率達到最大。因此很容易想到最大化模型的似然函數就能解出最優的參數集θ\theta

我們通過計算(X,Z)(X,Z)的聯合概率密度分佈計算XX的邊緣概率密度:
(1)p(Xθ)=Zp(X,Zθ) p(X|\theta) = \sum _Z p(X,Z|\theta) \tag{1}
對上式使用極大似然法求解參數θ\theta的最優解過程中,需要對左右同時取對數,觀察右邊部分lnZp(X,Zθ)ln \sum _Z p(X, Z|\theta),我們會發現對潛在變量的求和出現在了對數運算內部,這阻止了對數運算直接作用於聯合概率分佈,使得最大似然解的形式更加複雜。

問題的轉化

後面的介紹中,我們稱{X,Z}\{X, Z\}爲完整的數據集,並且我們稱實際觀測的數據集XX爲不完整的,完整數據集的對數似然函數爲ln p(X,Zθ)ln \ p(X,Z|\theta),我們假定這個完整數據集的對數似然函數進行最大化是很容易的。

下面介紹將最大化p(Xθ)p(X|\theta)的目標轉化成最優化p(X,Zθ)p(X,Z|\theta)的過程。我們引入一個定義在潛在變量上的分佈q(Z)q(Z),對於任意的q(Z)q(Z),下面的分解式成立:
(2)ln p(Xθ)=L(q,θ)+KL(qp) ln\ p(X|\theta)=\mathcal{L}(q,\theta)+KL(q||p)\tag{2}
其中,我們定義了
(3)L(q,θ)=Zq(Z)ln{p(X,Zθ)q(Z)}KL(qp)=Zq(Z)ln{p(ZX,θ)q(Z)} \mathcal{L}(q, \theta) = \sum _Z q(Z)ln\{\frac {p(X,Z|\theta)}{q(Z)}\} \\ KL(q||p) = - \sum _Z q(Z) ln \{\frac{p(Z|X,\theta)}{q(Z)}\} \tag{3}

證明公式(2)

利用概率的乘積規則p(X,Zθ)=p(ZX,θ) p(Xθ)p(X,Z|\theta)=p(Z|X,\theta) \ p(X|\theta),於是ln (X,Zθ)=ln p(ZX,θ)+ln p(Xθ)ln\ (X,Z|\theta) = ln \ p(Z|X,\theta) + ln\ p(X|\theta),然後代入L(q,θ)\mathcal{L}(q, \theta)的表達式。這得到了兩項,一項消去了KL(qp)KL(q||p),而另外一項給出了所需的對數似然函數ln p(Xθ)ln\ p(X|\theta),其中我們用到了歸一化的概率分佈q(Z)q(Z)的積分等於1的事實。

我們來觀察公式(2),右邊的兩項都是關於變量q(Z)q(Z)和模型參數集{θ}\{\theta\}的的函數,右邊的第二項表示的是KL散度KL(q,θ)KL(q, \theta)q(Z)q(Z)和後驗概率分佈p(X,Zθ)p(X,Z|\theta)之間的KullbackLeiblerKullback-Leibler散度。我們知道KullbackLeiblerKullback-Leibler散度滿足KL(q,θ)0KL(q, \theta) \ge 0,當且僅當q(Z)=p(ZX,θ)q(Z) = p(Z|X, \theta)時等號成立。因此從公式(2)中我們可以得到一個結論:L(q,θ)\mathcal{L} (q, \theta)ln p(Xθ)ln \ p(X|\theta)的一個下界。因此,既然ln p(Xθ)ln \ p(X|\theta)無法使用極大似然法得到一個解析解,那麼只要找到一種方法讓這個下界不斷接近ln p(Xθ)ln \ p(X|\theta),就能找到使得似然函數p(Xθ)p(X|\theta)最大化的參數集θ\theta。下面介紹這些方法中一個通用的方法:EM算法。

EM算法的實現過程

EM算法是一個兩階段的迭代優化算法,用於尋找ln p(Xθ)ln \ p(X|\theta)最大似然解θopt\theta ^{opt}。轉化公式(2)包含兩個參數{q(Z),θ}\{q(Z), \theta\},假設參數向量的當前值爲θ\theta ^{舊},EM算法分類兩個步驟:

  • E步驟:固定θ\theta ^{舊}q(Z)q(Z)分佈被設置爲當前參數值θ\theta ^{舊}下的後驗概率分佈p(ZX,θ)p(Z|X, \theta ^{舊}),(2)式中的第二項KL(qp)=Zq(Z)ln{p(ZX,θ)q(Z)}KL(q||p)= - \sum _Z q(Z) ln \{\frac{p(Z|X,\theta)}{q(Z)}\}的取值爲0。因此ln p(Xθ)=L(q,θ)ln \ p(X|\theta ^{舊}) = \mathcal{L}(q, \theta ^{舊}),這使得θ\theta ^{舊}固定的情況下,下界上移到對數似然函數值相同的位置。θ\theta ^{舊}在未達到最大似然解θopt\theta ^{opt}之前,ln p(Xθ)ln p(Xθopt)ln \ p(X|\theta ^{舊}) \le ln \ p(X|\theta ^{opt}),於是我們通過M步驟更新θ\theta ^{舊}θ\theta ^{新},使得θ\theta ^{新}不斷地逼近θopt\theta ^{opt}

在這裏插入圖片描述

  • M步驟:保持E步驟中計算得到的q(Z)=p(ZX,θ)q(Z)=p(Z|X, \theta ^{舊})固定,使下界L(q,θ)\mathcal {L}(q, \theta)關於θ\theta進行最大化,得到某個新值θ\theta ^{新}。這會使下界L\mathcal{L}增大(除非達到了極大值),這會使得對應的對數似然函數ln p(Xθ)ln \ p (X|\theta^{新})增大。原因是當前潛在變量的分佈q(Z)q(Z)由舊的參數值確定並且保持了固定,因此它不會等於新的後驗概率分佈p(ZX,θ)p(Z|X, \theta ^{新}),從而KL散度不爲0。於是對數似然函數的增加量大於下界的增加量(下界增加量+新的KL散度值)。

在這裏插入圖片描述

M步驟我們推導了通過對下界L(q,θ)\mathcal{L}(q, \theta)進行最大化,更新迭代得到的θ\theta ^{新}對應的對數似然函數ln p(XZ,θ)>ln p(XZ,θ)ln \ p(X|Z, \theta ^{新}) > ln \ p(X|Z, \theta ^{舊}),我們只要將E步驟中舊的參數θ\theta ^{舊}用M步驟的θ\theta ^{新}代替,如此持續迭代,就能使參數$\theta 不斷逼近最優解\theta ^{opt}$。

最大化下界L(q,θ)\mathcal{L}(q, \theta)

我們將注意力放在M步驟中L(q,θ)\mathcal{L}(q, \theta)的最大化上,使用q(Z)=p(ZX,θ)q(Z)=p(Z|X, \theta ^{舊})代入下界函數L(q,θ)\mathcal{L}(q, \theta)得到:
(4)L(q,θ)=Zp(ZX,θ)ln p(X,Zθ)Zp(ZX,θ)ln p(ZX,θ)=Q(θ,θ)+ \mathcal{L}(q, \theta) = \sum _Z p(Z|X, \theta ^{舊}) ln \ p(X, Z |\theta) - \sum _Z p(Z|X, \theta _{舊}) ln \ p(Z|X, \theta ^{舊}) \\ =\mathcal{Q}(\theta, \theta ^{舊})+常數 \tag{4}
其中,常數就是分佈qq的熵,與θ\theta無關。觀察公式(4)可知,M步驟後下界的增大值實際上等於完整數據似然函數的期望,我們記作Q(θ,θ)\mathcal{Q}(\theta, \theta _{舊})。最大化L(q,θ)\mathcal{L}(q, \theta)又轉化成了最大化Q(θ,θ)\mathcal{Q}(\theta, \theta ^{舊}),至此我們就將最大化p(Xθ)p(X|\theta)目標轉化成了關於p(X,Zθ)p(X, Z|\theta)的問題,這樣做的好處是使得我們要優化的θ\theta只出現在對數運算內部,如果聯合概率分佈p(X,Zθ)p(X,Z|\theta)由指數族分佈的成員組成,或者其乘積組成,那麼對數運算會抵消指數運算,大大簡化了運算的複雜度,解決了原來無法得到θ\theta解析解的問題。

Q(θ,θ)\mathcal{Q}(\theta, \theta ^{舊})的最大化

經過上文的推導,我們對問題進行了兩次轉化,第一次在M步驟中將最優化ln p(Xθ)ln \ p(X|\theta)的目標轉化成最優化下界L(q,θ)\mathcal{L}(q, \theta)的問題,第二次轉化是將最優化下界L(q,θ)\mathcal{L}(q, \theta)的目標轉化成最優化Q(θ,θ)\mathcal{Q}(\theta, \theta _{舊})的目標。

我們來討論獨立同分布數據集的情況,XXNN個數據點{xn}\{x_n\}組成,而ZZ由對應的N個潛在變量{zn}\{z_n\}組成,其中n={1,2,...,N}n=\{1,2,...,N\}。根據獨立性假設,我們有p(X,Z)=np(xn,zn)p(X, Z)= \prod _ n p(x_n, z_n),並通過關於{zn}\{z_n\}邊緣概率分佈,我們有P(X)=np(xn)P(X)=\prod _n p(x_n),使用加和規則和乘積規則,我們看到E步驟計算的後驗概率分佈的形式爲:
(5)p(ZX,θ)=P(X,Zθ)Zp(X,Zθ)=n=1Np(xn,znθ)Zn=1Np(xn,znθ)=n=1Np(znxn,θ) p(Z|X,\theta)=\frac {P(X, Z |\theta)}{\sum _Z p(X, Z|\theta)} =\frac{\prod _{n=1} ^{N} p(x_n, z_n|\theta)}{\sum _Z \prod _{n=1} ^{N} p(x_n, z_n|\theta)} =\prod _{n=1}^{N}p(z_n|x_n, \theta) \tag{5}
因此後驗概率分佈也可以關於nn進行分解。在高斯混合模型中,這個結果意味着混合分佈的每個分量對於一個特定的數據點xnx_n的”責任“只與xnx_n的值和混合分量的參數θ\theta有關,而與其他數據點無關。

從參數空間角度理解EM算法

在這裏插入圖片描述

如上圖所示,紅色曲線表示(不完整數據)的對數似然函數,它的最大值是我們想要的。我們首先選擇某一個初始的參數θ\theta ^{舊},然後第一個E步驟中,我們計算潛在變量上的後驗概率分佈p(ZX,θ)p(Z|X, \theta ^{舊}),我們使用p(ZX,θ)p(Z|X, \theta ^{舊})代替q(Z)q(Z)代入進而得到了一個較小的下界函數L(q,θold)\mathcal{L}(q, \theta ^{old}),用藍色曲線表示,下界和對數似然函數在θold\theta ^{old}處相切。並且這個下界函數L(q,θold)\mathcal{L}(q, \theta ^{old})是一個凹函數,對於指數族分佈的混合分佈來說,有唯一的最大值,注意前面證明過下界函數L(q,θold)\mathcal{L}(q, \theta ^{old})的最大值始終小於似然函數的最大值。因此在M步驟中,下界函數L(q,θ)\mathcal{L}(q, \theta)被最大化,得到了新的參數θnew\theta ^{new},這個參數給出了比θold\theta ^{old}處更大的似然函數值。接下來的E步驟構建一個新的下界,它在θnew\theta ^{new}處和似然函數相切,用綠色曲線表示。重複上面的步驟直到下界函數的最大值的增加率小於某個閾值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章