數據點:{(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(Y,Z|θ) ,條件分佈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)(i=1,2,…) 爲EM算法得到的參數估計序列,P(Y|θ(i))(i=1,2,…) 爲對應的似然函數序列,則P(Y|θ(i)) 是單調遞增的,即p(Y|θ(i+1))⩾p(Y|θ(i))
- 定理2
設L(θ)=logP(Y|θ) 爲觀測數據的對數似然函數,θ(i)(i=1,2,…) 爲EM算法得到的參數估計序列,L(θ(i))(i=1,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=1mlog∑zp(x,z|θ)
注意: 第一步
∑mi=1logp(x|θ) 爲
m 個樣本的似然函數之和,即整體的似然函數。
第二步
∑zp(x,z|θ) 是對每個樣本實例的每個可能的類別
z 求聯合分佈概率之和。如果
z 是個已知的數,那麼使用極大似然估計來估算會很容易。在這種
z 不確定的情形下,EM算法就派上用場了。
EM算法推導
對於每個實例i ,用Qi 表示樣本實例隱含變量z 的某種分佈,且Qi 滿足條件(∑zQi=1,Qi⩾0) ,如果Qi 是連續性的,則Qi 表示概率密度函數,需要將求和符號換成積分符號。則上述(1)式與(2)式做如下變換:
∑i=1mlogp(x(i)|θ)==⩾∑i=1mlog∑zip(x(i),z(i)|θ)∑i=1mlog∑z(i)Qi(z(i))p(x(i),z(i)|θ)Qi(z(i))∑i=1m∑z(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)=∑x∗p(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]) 。
log∑z(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)