引理
凸函數:一個定義在某個向量空間的凸子集C (區間)上的實值函數f ,而且對於凸子集C中任意兩個向量 x1,x2 ,成立不等式
f(px1+(1−p)x2)⩽pf(x1)+(1−p)f(x2)
則
f(x) 稱爲凸函數。
下圖就是一個凸函數
Jensen 不等式:
f 是凸函數,則
f(E[x])⩽E[f(x)]
證明:
f(x) 有泰勒展式,對任意的
u ,存在
c ,使得
f(x)=f(u)+f′(u)(x−u)+f′′(c)(x−u)2
由於
f 是凸函數,
f′′(x)>0 ,則有
f(x)⩾f(u)+f′(u)(x−u)
另
u=E[x] ,x的概率分佈爲
g(x) ,
則
E[f(x)]=∫f(x)g(x)dx⩾∫f(E[x])g(x)dx+∫f′(E[x])(x−E[x])dx=f(E[x])
EM算法
設觀測的變量爲Y ,隱變量(未觀測的變量)爲Z ,模型的參數爲θ ,欲對θ 做極大似然估計
L(θ)=logP(Y,Z|θ)
由於
P(Y,Z|θ) 與隱變量
Z 有關,導致上式無法求解,此時可通過對
Z 計算期望,來最大化已觀測數據的對數”邊際似然”(marginal likehood)
L(θ|Y)=logP(Y|θ)=log∑ZP(Y,Z|θ)
EM(expectation-maximization)算法是常用的估計參數隱變量的迭代算法,基本思想是:若
θ 已知,則根據訓練數據推斷最優隱變量
Z 的值(E步);若
Z 的值已知,則對
θ 做極大似然估計.
具體算法:
輸入:觀測數據
Y ,隱變量數據
Z ,聯合分佈
P(Y,Z|θ) ,條件分佈
P(Z|Y,θ)
輸出:模型參數
θ
過程:
- 選擇參數的初值θ(0) ,開始迭代
- E步:記θ(i) 爲第i 次迭代參數的估計值,在第i+1 次迭代的E步,計算
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i)]
- 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|θ)=log∑ZP(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(θ) 的穩定點.
應用