EM算法

數據點:{(x1,y1),(x2,y2),,(xN,yN)}
數據點中的向量(即數據點的特徵):x={x(1),x(2),...,x(n)}T
數據點的第j 個特徵:aj={a(1)j,a(2)j,,a(n)j}
樣本:樣本包含多個數據點
總體:總體包含多個樣本

簡介

EM算法,全稱Expectation Maximization Algorithm,譯作最大期望化算法或期望最大算法,它是一種迭代算法,用於含有隱變量(hidden variable)的概率參數模型的最大似然估計或極大後驗概率估計。

算法

  • 解釋一
    輸入:觀測變量數據Y ,隱變量數據Z ,聯合分佈P(YZ|θ) ,條件分佈P(Z|Y,θ)
    輸出:模型參數。
    (1)選擇參數的初值θ(0) ,開始迭代;
    (2)E步:利用概率模型參數的現有估計值,在第i 次迭代即固定θ(i) 計算Q 函數。
    Q(Z)=p(Z|Y,θ(i))

    (3) M步:利用E 步上求得的隱藏變量的期望,對參數模型進行最大似然估計

    J(Z,θ)=ZQi(Z)logp(Y,Z|θ)Qi(Z)=Zp(Z|Y,θ(i))logp(Y,Z|θ)p(Z|Y,θ(i))

    θ(i+1)=argmaxθJ(Z,θ)
    argmax 是一種函數,函數y=f(x)x0=argmax(f(x)) 的意思就是參數x0 滿足f(x0)f(x) 的最大值;

    (4)重複第(2)步和第(3)步,直到收斂。


- 解釋二
(1)選擇參數的初值θ(0) ,開始迭代;
(2)E步:記θ(i) 爲第i 次迭代參數的估計值,在第i+1 次迭代的E步,計算

Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=ZP(Z|Y,θ(i))logP(Y,Z|θ)

這裏,P(Z|Y,θ(i)) 是在給定觀測數據Y 和當前的參數估計θ(i) 下隱變量數據Z 的條件概率分佈;
(3) M步:求使Q(θ,θ(i)) 極大化的,確定第i+1 次迭代的參數的估計值θ(i)
θ(i+1)=argmaxθQ(θ,θ(i))

(4)重複第(2)步和第(3)步,直到收斂

EM算法收斂性

  • 定理1
    P(Y|θ) 爲觀測數據的似然函數,θ(i)i1,2, 爲EM算法得到的參數估計序列,P(Y|θ(i))i1,2, 爲對應的似然函數序列,則P(Y|θ(i)) 是單調遞增的,即
    p(Y|θ(i+1))p(Y|θ(i))
  • 定理2
    L(θ)logP(Y|θ) 爲觀測數據的對數似然函數,θ(i)(i1,2,) 爲EM算法得到的參數估計序列,L(θ(i))(i1,2,) 爲對應的對數似然函數序列。
    (1)如果P(Y|θ) 有上界,則L(θ(i))logP(Y|θ(i)) 收斂到某一值L
    (2)在函數Q(θ,θ(i))L(θ) 滿足一定條件下,由EM算法得到的參數估計序列θ(i) 的收斂值θL(θ) 的穩定點。

EM算法推導

上式中的觀測數據Y 在此處用樣本數據x 表示。

Jensen不等式

在完善EM算法之前,首先來了解下Jensen不等式,因爲在EM算法的推導過程中會用到。
- Jensen不等式描述如下:
如果f是凸函數,X 是隨機變量,則E[f(X)]f(E[X]) ,特別地,如果f是嚴格凸函數,E[f(X)]f(E[X]) ,那麼當且僅當p(x=E[X])=1 時(也就是說X 是常量),E[f(x)]=f(E[X])
如果f是凹函數,X 是隨機變量,則E[f(X)]f(E[X]) .當f 是(嚴格)凹函數當且僅當f 是(嚴格)凸函數。
- 通過下面這張圖,可以加深印象:

凹函數

EM推導

給定m 個訓練樣本x(1),,x(m) ,假設樣本間相互獨立,我們想要擬合模型p(x,z) 到數據的參數。根據分佈,我們可以得到如下這個似然函數:

L(θ)=i=1mlogp(x|θ)=i=1mlogzp(x,z|θ)

注意: 第一步mi=1logp(x|θ)m 個樣本的似然函數之和,即整體的似然函數。
第二步zp(x,z|θ) 是對每個樣本實例的每個可能的類別z 求聯合分佈概率之和。如果z 是個已知的數,那麼使用極大似然估計來估算會很容易。在這種z 不確定的情形下,EM算法就派上用場了。

EM算法推導

對於每個實例i ,用Qi 表示樣本實例隱含變量z 的某種分佈,且Qi 滿足條件zQi=1,Qi0 ,如果Qi 是連續性的,則Qi 表示概率密度函數,需要將求和符號換成積分符號。則上述(1)式與(2)式做如下變換:

i=1mlogp(x(i)|θ)==i=1mlogzip(x(i),z(i)|θ)i=1mlogz(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))i=1mz(i)Qi(z(i))logp(x(i),z(i)|θ)Qi(z(i))

首先(4)中的log 函數看成爲一個整體,log 函數爲一個凹函數。根據Jensen不等式,E[f(X)]f(E[X]) 可得(5)式。(5)式的推導如下;
概率論中的隨機變量的期望計算方法,如下圖所示


因此,結合上面的知識點,我們可以把(4)式當中的Qi(z(i)) 看成相應的概率pi ,把p(x(i),z(i)|θ)Qi(z(i)) 看作是z(i) 的函數g(z) ,類似地,根據期望公式E(x)=xp(x) 可以得到:

z(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))

其實這就是p(x(i),z(i)|θ)Qi(z(i)) 的期望。再根據凹函數對應的Jensen不等式性質,E[f(X)]f(E[X])
logz(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))z(i)Qi(z(i))logp(x(i),z(i)|θ)Qi(z(i))

因此便得到了公式(5)。OK,現在我們知道上面的式(4)和式(5)兩個不等式可以寫成:似然函數L(θ)>=J(z,Q) 的形式(z 爲隱含變量),那麼我們可以通過不斷的最大化J 的下界,來使得L(θ) 不斷提高,最終達到它的最大值。使用下圖會比較形象:


首先我們固定θ ,調整Q(z) 使下界J(z,Q) 上升至與L(θ) 在此點θ 處相等(綠色曲線到藍色曲線),然後固定Q(z) ,調整θ 使下界J(z,Q) 達到最大值(θtθt+1 ),然後再固定θ ,調整Q(z) ……直到收斂到似然函數L(θ) 的最大值處的θ

Q函數推導

根據第一步,固定θ ,調整Q(z) 使下界J(z,Q) 上升至與L(θ) 在此點θ 處相等,此處求解當Q(z) 爲何值時,下界J(z,Q)L(θ) 在此點θ 處相等。求解過程如下:
在Jensen不等式中說到,當自變量X=E(X) 時,即爲常數的時候,等式成立。而在這裏,爲:

g(z)=p(x(i),z(i)|θ)Qi(z(i))=c

對該式做個變換,並對所有的z 求和,得到
z(i)p(x(i),z(i)|θ)=z(i)Qi(z(i))c

因爲前面提到z(i)Qi(z(i))=1 (概率之和爲1),所以可以推導出:
z(i)p(x(i),z(i)|θ)=c

根據(6)可得Qi(z(i))
Qi(z(i))=p(x(i),z(i)|θ)c

根據(8)式z(i)p(xi,z(i)|θ)=c 可得
Qi(z(i))=p(x(i),z(i)|θ)z(i)p(x(i),z(i)|θ)=p(x(i),z(i)|θ)p(x(i)|θ)=p(z(i)|x(i),θ)

由此可知當Qi(z(i))=p(z(i)|x(i),θ) 時,下界J(z,Q) 上升至與L(θ) 在此點θ 處相等。此步就是EM算法的E-step,目的是建立L(θ) 的下界。接下來的M-step,目的是在給定Q(z) 後,調整θ ,從而極大化L(θ) )的下界J(z,Q)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章