EM算法原理詳解與高斯混合模型

藉助於machine learning cs229和文章【1】中的內容把EM算法的過程順一遍,加深一下印象。
關於EM公式的推導,一般會有兩個證明,一個是利用Jesen不等式,另一個是將其分解成KL距離和L函數,本質是類似的。

下面介紹Jensen EM的整個推導過程。

  1. Jensen不等式

    回顧優化理論中的一些概念。設f是定義域爲實數的函數,如果對於所有的實數x,f′′(x)0 ,那麼f是凸函數。當x是向量時,如果其hessian矩陣H是半正定的(H0 ),那麼f是凸函數。如果f′′(x)>0 或者H>0 ,那麼稱f是嚴格凸函數。

    Jensen不等式表述如下:

    如果f是凸函數,X是隨機變量,那麼

    E[f(x)]f(E[x])

    這裏寫圖片描述

    特別地,如果f是嚴格凸函數,那麼

    E[f(x)]>f(E[x])
    當且僅當p(X=E(X))=1 ,也就是說X是常量。

    這裏我們將f(E[X]) 簡寫爲f(EX)

    如果用圖表示會很清晰:

    圖中,實線f 是凸函數,X 是隨機變量,有0.5 的概率是a ,有0.5 的概率是b 。(就像擲硬幣一樣)。X 的期望值就是ab 的中值了,圖中可以看到

    E[f(x)]f(E[x])
    成立。

    f 是(嚴格)凹函數當且僅當f 是(嚴格)凸函數。

    Jensen不等式應用於凹函數時,不等號方向反向,也就是E[f(x)]f(E[x])


  1. EM算法

    給定的訓練樣本是{x(1),...,x(m)} ,樣例間獨立,我們想找到每個樣例隱含的類別z,能使得p(x,z)最大。p(x,z)的最大似然估計如下:

l(θ)=i=1mlog p(x(i);θ)=i=1mlogzp(x(i),z(i);θ)

第一步是對極大似然取對數,第二步是對每個樣例的每個可能類別z求聯合分佈概率和。但是直接求θ 一般比較困難,因爲有隱藏變量z存在,但是一般確定了z後,求解就容易了。
EM是一種解決存在隱含變量優化問題的有效方法。既然不能直接最大化l(θ) ,我們可以不斷地建立l(θ) 的下界(E步),然後優化下界(M步)。這句話比較抽象,看下面的。
對於每一個樣例i,讓Qi 表示該樣例隱含變量z的某種分佈,Qi 滿足的條件是zQi(z)=1,Qi(z)1 。(如果z是連續性的,那麼clip_image032[2]是概率密度函數,需要將求和符號換做積分符號)。比如要將班上學生聚類,假設隱藏變量z是身高,那麼就是連續的高斯分佈。如果按照隱藏變量是男女,那麼就是伯努利分佈了。

可以由前面闡述的內容得到下面的公式:

i=1mlogp(x;θ)=i=1mlogz(i)p(x(i),z(i);θ)=i=1mlogzQi(z(i))p(x(i),z(i);θ)Qi(z(i))i=1mzQi(z(i))logp(x(i),z(i);θ)Qi(z(i))(1)(2)(3)

(1)到(2)比較直接,就是分子分母同乘以一個相等的函數。(2)到(3)利用了Jensen不等式,考慮到logx 是凹函數(二階導數小於0),而且
zQi(z(i))p(x(i),z(i);θ)Qi(z(i))

就是p(x(i),z(i);θ)Qi(z(i)) 的期望(回想期望公式中的Lazy Statistician規則)
設Y是隨機變量X的函數y=g(x) (g是連續函數),那麼
(1) X是離散型隨機變量,它的分佈律爲P(X=xk)=pk,k=1,2,... .若k=1g(xk)pk 絕對收斂,則有
E(Y)=E[g(X)]=k=1g(xk)pk
(2) X是連續型隨機變量,它的概率密度爲f(x) ,若g(x)f(x)dx 絕對收斂,則有
E(Y)=E[g(X)]=g(x)f(x)dx
對應於上述問題,Y是p(x(i),z(i);θ)Qi(z(i)) ,X是z(i)Qi(z(i))pk ,g是z(i)p(x(i),z(i);θ)Qi(z(i)) 的映射。這樣解釋了式子(2)中的期望,再根據凹函數時的Jensen不等式:
f(Ez(i)Qi[p(x(i),z(i);θ)Qi(z(i))])Ez(i)Qi[f(p(x(i),z(i);θ)Qi(z(i)))]

可以得到(3)。
這個過程可以看作是對l(θ) 求了下界。對於Qi 的選擇,有多種可能,那種更好的?假設θ 已經給定,那麼l(θ) 的值就決定於Qi(z(i))p(x(i),z(i)) 了。我們可以通過調整這兩個概率使下界不斷上升,以逼近l(θ) 的真實值,那麼什麼時候算是調整好了呢?當不等式變成等式時,說明我們調整後的概率能夠等價於l(θ) 了。按照這個思路,我們要找到等式成立的條件。根據Jensen不等式,要想讓等式成立,需要讓隨機變量變成常數值,這裏得到:
p(x(i),z(i);θ)Qi(z(i))=c

c爲常數,不依賴於z(i) 。對此式子做進一步推導,我們知道zQi(z(i))=1 ,那麼也就有zp(x(i),z(i);θ)=c ,(多個等式分子分母相加不變,這個認爲每個樣例的兩個概率比值都是c),那麼有下式:
Qi(z(i))=p(x(i),z(i);θ)zp(x(i),z(i);θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i);x(i)θ)

至此,我們推出了在固定其他參數θ 後,Qi(z(i)) 的計算公式就是後驗概率,解決了Qi(z(i)) 如何選擇的問題。這一步就是E步,建立l(θ) 的下界。接下來的M步,就是在給定Qi(z(i)) 後,調整l(θ) ,去極大化l(θ) 的下界(在固定Qi(z(i)) 後,下界還可以調整的更大)。那麼一般的EM算法的步驟如下:
循環重複直到收斂 {
(E步)對於每一個i,計算
Qi(z(i))=p(z(i);x(i)θ)

(M步)計算
θ=argmaxθi=1mzQi(z(i))logp(x(i),z(i);θ)Qi(z(i))

那麼究竟怎麼確保EM收斂?假定θtθt+1 是EM第t次和t+1次迭代後的結果。如果我們證明了l(θt)l(θt+1) ,也就是說極大似然估計單調增加,那麼最終我們會到達最大似然估計的最大值。下面來證明,選定θ(t) 後,我們得到E步
Qi(z(i))=p(z(i);x(i)θ)
這一步保證了在給定θ(t) 時,Jensen不等式中的等式成立,也就是
l(θ(t))=i=1mzQi(z(i))logp(x(i),z(i);θ)Qi(z(i))

然後進行M步,固定Qi(z(i)) ,並將θ(t) 視作變量,由EM的操作可以推導出以下式子成立:
l(θ(t+1))i=1mzQi(z(i))logp(x(i),z(i);θ(t+1))Qi(z(i))i=1mzQi(z(i))logp(x(i),z(i);θ(t))Qi(z(i))=l(θ)(4)(5)(6)

等式(4)成立是由於琴生不等式,等式(5)成立是由於我們在M步取得是max操作。
如果我們定義
J(Q,θ)=i=1mz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))

從前面的推導中我們知道l(θ)J(Q,θ) ,EM可以看作是J的座標上升法,E步固定θ ,優化Q ,M步固定Q 優化θ
  1. 重新審視混合高斯模型

    我們已經知道了EM的精髓和推導過程,再次審視一下混合高斯模型。之前提到的混合高斯模型的參數Φμ ,爲了簡單,這裏在M步只給出Φμ 的推導方法。

E步很簡單,按照一般EM公式得到:

w(i)j=Qi(z(i)=j)=P(z(i)=j|x(i);ϕ,μ,Σ)=ϕjp(x(i)|z(i)=j;ϕ,μ,Σ)Σj=1kϕjp(x(i)|z(i)=j;ϕ,μ,Σ)

簡單解釋就是每個樣例i的隱含類別z(i) 爲j的概率可以通過後驗概率計算得到。ϕ 是每個類的概率。
在M步中,我們需要在固定Qi(z(i)) 後最大化最大似然估計,也就是
==i=1mz(i)Qi(z(i))logp(x(i),z(i);ϕ,μ,Σ)Qi(z(i))i=1mj=1kQi(z(i)=j)logp(x(i)|z(i)=j;ϕ,μ,Σ)p(z(i)=j;ϕ)Qi(z(i))i=1mj=1kw(i)jlog1(2π)n/2|Σj|1/2exp(12(x(i)μj)TΣ1j(x(i)μj)).ϕjw(i)j

這是將z(i) 的k種情況展開後的樣子,未知參數ϕj ,μjΣj
固定ϕj ,和Σj ,對μj 求導得
===μji=1mz(i)Qi(z(i))logp(x(i),z(i);ϕ,μ,Σ)Qi(z(i))μji=1mj=1kw(i)j12(x(i)μj)TΣ1j(x(i)μj))12i=1mw(i)jμj(2μTjΣ1jx(i)μTjΣ1μj)i=1mw(i)j(Σ1jx(i)Σ1μj)

等於0時,得到
μj=mi=1w(i)jx(i)Σmi=1w(i)j
這就是我們之前模型中的μ 的更新公式。
然後推導ϕ 的更新公式。看之前得到的
i=1mj=1kw(i)jlog1(2π)n/2|Σj|1/2exp(12(x(i)μj)TΣ1j(x(i)μj)).ϕjw(i)j

分子和分母上與ϕ 無關的常數都可以通過log提取出來,,實際上需要優化的公式是:
i=1mj=1kw(i)jlogϕj

需要知道的是,ϕj 還需要滿足一定的約束條件就是Σkj=1ϕj=1
這個優化問題我們很熟悉了,直接構造拉格朗日乘子。
L(ϕ)=i=1mj=1kw(i)jlogϕj+β(j=1kϕj1)

還有一點就是ϕj>0 ,但這一點會在得到的公式裏自動滿足。
求導得,
ϕjL(ϕ)=mi=1w(i)jϕj+β
等於0,得到
ϕj=mi=1w(i)jβ
也就是說ϕjmi=1w(i)j 再次使用kj=1ϕj=1 ,得到
β=mi=1kj=1w(i)j=Σmi=11=m
這樣就神奇地得到了β
那麼就順勢得到M步中ϕj 的更新公式:
ϕj=1mmi=1w(i)j
Σ 的推導也類似,不過稍微複雜一些,畢竟是矩陣。結果在之前的混合高斯模型中已經給出。
Σ=mi=1w(i)j(x(i)μj)(x(i)μj)Tmi=1w(i)j

關於EM證明的補充,一般情況下可以通過Jensen不等式得到mi=1logp(x;θ) 的下界來求解,但是將該公式展開似乎更直觀一些。
首先是將p(x;θ) 拆分開來,我們注意到p(x,z;θ)=p(x;θ)p(z|x;θ) 這裏有聯合概率,x的生成概率,z的後驗概率,取log 然後做一下變換

lnp(x;θ)=lnp(x,z;θ)lnp(z|x;θ=lnp(x,z;θ)lnq(z)[lnp(z|x;θ)lnq(z)]=lnp(x,z;θ)q(z)lnlnp(z|x;θ)q(z)

同時乘以q(z) 並對q(z) 求和得到
Σzq(z)lnp(x;θ)=Σz[q(z)(lnp(x,z;θ)q(z)lnlnp(z|x;θ)q(z))]

由於z與p(x;θ) 獨立,並且σz(q)=1 ,所以又
lnp(x;θ)=Σzq(z)np(x,z;θ)q(z)Σzq(z)lnlnp(z|x;θ)q(z)

寫作
lnp(x;θ)=L(q;θ)+KL(q||p)

看到這裏應該很明白了,在NG的推導中放縮掉的是這裏的KL距離,最後得到的是這裏的L(q;θ) ,當q(z)p(z;x,θ) 相等時KL距離爲0,前面的推導的等式成立。
這裏寫圖片描述
E-step
假設當前的參數爲θold ,則Estep可以被描述爲:固定θold 找一個分佈q(z) ,使得L(q,θold) 最大
由於lnp(x;θold 與z無關則使L(q,θold) 最大姐使KL(q||p)最小(=0),也就是說q(z)=p(z;x,θold)
這裏寫圖片描述
回想高斯混合分佈,用p(z;x,μ,σ,π) 去求E[z] ,這個時候KLq||p=0
M-step:固定q(z) 找一組參數θnew ,使得L(q,θnew) 最大,
lnp(x;θ) 的增大可能來自兩部分L(q,θnew)KL(q||p) (因爲此時p(z;x,θnew) )而q(z;x,θold),pq
這裏寫圖片描述

這裏寫圖片描述
這裏可以看到,L的下屆提高了,ln(p(x;θ) 的下屆也提高了。

參考:
【1】
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html#2831962
【2】http://wenku.baidu.com/view/d5e6973a87c24028915fc361.html
【3】http://cs229.stanford.edu/materials.html
【4】http://freemind.pluskid.org/machine-learning/regularized-gaussian-covariance-estimation/

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