EM算法

引理

凸函數:一個定義在某個向量空間的凸子集C (區間)上的實值函數f ,而且對於凸子集C中任意兩個向量 x1,x2 ,成立不等式

f(px1+(1p)x2)pf(x1)+(1p)f(x2)

f(x) 稱爲凸函數。
下圖就是一個凸函數
這裏寫圖片描述
Jensen 不等式f 是凸函數,則f(E[x])E[f(x)]
證明:f(x) 有泰勒展式,對任意的u ,存在c ,使得
f(x)=f(u)+f(u)(xu)+f′′(c)(xu)2

由於f 是凸函數,f′′(x)>0 ,則有
f(x)f(u)+f(u)(xu)

u=E[x] ,x的概率分佈爲g(x) ,

E[f(x)]=f(x)g(x)dxf(E[x])g(x)dx+f(E[x])(xE[x])dx=f(E[x])

EM算法

設觀測的變量爲Y ,隱變量(未觀測的變量)爲Z ,模型的參數爲θ ,欲對θ 做極大似然估計

L(θ)=logP(YZ|θ)

由於P(Y,Z|θ) 與隱變量Z 有關,導致上式無法求解,此時可通過對Z 計算期望,來最大化已觀測數據的對數”邊際似然”(marginal likehood)
L(θ|Y)=logP(Y|θ)=logZP(Y,Z|θ)
EM(expectation-maximization)算法是常用的估計參數隱變量的迭代算法,基本思想是:若θ 已知,則根據訓練數據推斷最優隱變量Z 的值(E步);若Z 的值已知,則對θ 做極大似然估計.
具體算法:
輸入:觀測數據Y ,隱變量數據Z ,聯合分佈P(Y,Z|θ) ,條件分佈P(Z|Y,θ)
輸出:模型參數θ
過程:
  1. 選擇參數的初值θ(0) ,開始迭代
  2. E步:記θ(i) 爲第i 次迭代參數的估計值,在第i+1 次迭代的E步,計算
    Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=ZlogP(Y,Z|θ)P(Z|Y,θ(i)]
  3. M步:求使Q(θ,θ(i)) 極大化的θ ,確定第i+1 次迭代的參數估計值θ(i+1) ,
    θ(i+1)=argmaxθQ(θ,θ(i))

注意:

原理

定義(Q函數) :完全數據的對數似然函數logP(Y,Z|θ) 關於在給定觀測數據Y 和當前參數θ(i) 下對未觀測數據Z 的條件概率分佈P(Z|Y,θ(i)) 的期望稱爲Q函數,即

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

我們希望最大化
L(θ)=logP(Y|θ)=logZP(Y,Z|θ)=log(ZP(Y|Z,θ)P(Z|θ))

EM算法是通過逐步迭代近似極大化L(θ) 的。假設在第i 次迭代後θ 的估計值是θ(i) ,則我們希望新估計值θ 能使L(θ) 增加,即L(θ)>L(θ(i)) ,並逐步達到最大值。
考慮兩者的差:
L(θ)L(θ(i))=log(ZP(Y|Z,θ)P(Z|θ))logP(Y|θ(i))

利用Jensen不等式(Jensen inequality)得到下界:
L(θ)L(θ(i))=log(ZP(Z|Y,θ(i))P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i)))logP(Y|θ(i))ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i)))logP(Y|θ(i))=ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i)))

B(θ,θ(i))L(θ(i))+ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i)))
L(θ)B(θ,θ(i))
即函數B(θ,θ(i))L(θ) 的一個下界,而且L(θ(i))=B(θ(i),θ(i)) .
因此任何可以使B(θ,θ(i)) 增大的θ ,也可以使L(θ) 增大,爲了使L(θ) 有儘可能的增長,選擇θ(i+1) 使B(θ,θ(i)) 達到最大,即
θ(i+1)=argmaxθB(θ,θ(i))=argmaxθ(L(θ(i))+ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))))=argmaxθ(ZP(Z|Y,θ(i))log(P(Y|Z,θ)P(Z|θ)))=argmaxθ(ZP(Z|Y,θ(i))logP(Y,Z|θ))=argmaxθQ(θ,θ(i))

定理:P(Y|θ) 爲觀測數據的似然函數,θ(i)(i=1,2,) 爲EM算法得到的參數估計序列,P(Y|θ(i)) 爲對應的似然函數序列,則P(Y|θ(i)) 是單調遞增的,即
P(Y|θ(i+1))P(Y|θ(i))

證明:由於
P(Y|θ)=P(Y,Z|θ)P(Z|Y,θ)

兩邊取對數有
logP(Y|θ)=logP(Y,Z|θ)logP(Z|Y,θ)


Q(θ,θ(i))=ZlogP(Y,Z|θ)P(Z|Y,θ(i))

H(θ,θ(i))=ZlogP(Z|Y,θ)P(Z|Y,θ(i))

於是上述似然函數可寫爲:
logP(Y|θ)=Q(θ,θ(i))H(θ,θ(i))

分別取θθ(i+1)θ(i) 並相減,有
logP(Y|θ(i+1))logP(Y|θ(i))=[Q(θ(i+1),θ(i))Q(θ(i),θ(i))][H(θ(i+1),θ(i))H(θ(i),θ(i))]

由於θ(i+1) 使得Q(θ,θ(i)) 達到最大,所以有
Q(θ(i+1),θ(i))Q(θ(i),θ(i))0

第二項

H(θ(i+1),θ(i))H(θ(i),θ(i))=Z(logP(Z|Y,θ(i+1))P(Z|Y,θ(i)))P(Z|Y,θ(i))log(ZP(Z|Y,θ(i+1))P(Z|Y,θ(i))P(Z|Y,θ(i)))=logP(Z|Y,θ(i+1))=0

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

應用

發佈了20 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章