EM算法公式推導
EM 算法是一種用來進行含有隱變量的概率生成模型參數估計的迭代算法。
EM算法步驟
EM 算法通過迭代求 L(θ)=log?P(X∣θ)L(\theta)=\log P(X|\theta)L(θ)=logP(X∣θ) 的極大似然估計,每次迭代包含兩部:E步,求期望;M步,求極大化。
算法流程:
-
輸入:觀測變量數據 XXX,隱變量數據 ZZZ,聯合分布 P(X,Z∣θ)P(X,Z|\theta)P(X,Z∣θ) ,條件分布:P(Z∣X,θ)P(Z|X,\theta)P(Z∣X,θ) ;
-
輸出:模型參數 θ\thetaθ ;
-
步驟
-
選擇參數的初值 θ0\theta^{0}θ0 ,開始迭代;
-
E 步:記 θt\theta^{t}θt 為第 ttt 次迭代參數 θ\thetaθ 的估計值,在第 i+1i+1i+1 次迭代的 E 步,計算:
Q(θ,θt)=EZ[log?P(X,Z∣θ)∣X,θ(t)]=∑Zlog?P(X,Z∣θ)P(Z∣X,θ(t))\begin{align} Q(\theta,\theta^{t})&=\mathbb{E}_Z[\log P(X,Z|\theta)|X,\theta^{(t)}]\\ &=\sum_{Z}\log P(X,Z|\theta)P(Z|X,\theta^{(t)}) \end{align} Q(θ,θt)?=EZ?[logP(X,Z∣θ)∣X,θ(t)]=Z∑?logP(X,Z∣θ)P(Z∣X,θ(t))??
這里 P(Z∣X,θ(t))P(Z|X,\theta^{(t)})P(Z∣X,θ(t)) 為給定觀測數據 XXX 和當前參數估計 θ(t)\theta^{(t)}θ(t) 下隱變量數據 ZZZ 的條件概率分布; -
M 步:求使 Q(θ,θ(t))Q(\theta,\theta^{(t)})Q(θ,θ(t)) 極大化的 θ\thetaθ ,確定第 t+1t+1t+1 次迭代的參數估計值 θt+1\theta^{t+1}θt+1 :
θ(t+1)=arg?max?θQ(θ,θt)\theta^{(t+1)}=\arg\max_{\theta}Q(\theta,\theta^{t}) θ(t+1)=argθmax?Q(θ,θt) -
重復 2、3 兩步,直到收斂。
-
函數 Q(θ,θ(t))Q(\theta,\theta^{(t)})Q(θ,θ(t)) 是 EM 算法的核心,稱為 QQQ 函數。
EM算法收斂性證明
EM 迭代算法終歸要求的是 log?P(X∣θ)\log P(X|\theta)logP(X∣θ) 的極大似然估計,因此,要證明它的收斂性,即要證明:
log?P(X∣θ(t+1))≥log?P(X∣θ(t))\log P(X|\theta^{(t+1)})\ge \log P(X|\theta^{(t)}) logP(X∣θ(t+1))≥logP(X∣θ(t))
下面開始證明:
log?P(X∣θ)=log?P(X,Z∣θ)P(Z∣X,θ)=log?P(X,Z∣θ)?P(Z∣X,θ)\log P(X|\theta)=\log \frac{P(X,Z|\theta)}{P(Z|X,\theta)}=\log P(X,Z|\theta)-P(Z|X,\theta) logP(X∣θ)=logP(Z∣X,θ)P(X,Z∣θ)?=logP(X,Z∣θ)?P(Z∣X,θ)
接下來我們同時對等式兩邊乘 P(Z∣X,θ(t))P(Z|X,\theta^{(t)})P(Z∣X,θ(t)) 在對 ZZZ 求積分:
左邊=∫ZP(Z∣X,θ(t))log?P(X,Z∣θ)dZ=log?P(X,Z∣θ)∫ZP(Z∣X,θ(t))dZ=log?P(X,Z∣θ)左邊=\int_Z P(Z|X,\theta^{(t)})\log P(X,Z|\theta)dZ=\log P(X,Z|\theta)\int_Z P(Z|X,\theta^{(t)})dZ=\log P(X,Z|\theta) 左邊=∫Z?P(Z∣X,θ(t))logP(X,Z∣θ)dZ=logP(X,Z∣θ)∫Z?P(Z∣X,θ(t))dZ=logP(X,Z∣θ)
即,左邊相當于沒變。
右邊=∫ZP(Z∣X,θ(t))log?P(X,Z∣θ)?∫ZP(Z∣X,θ(t))log?P(Z∣X,θ)=Q(θ,θ(t))?H(θ,θ(t))右邊=\int_ZP(Z|X,\theta^{(t)})\log P(X,Z|\theta)-\int_ZP(Z|X,\theta^{(t)})\log P(Z|X,\theta)=Q(\theta,\theta^{(t)})-H(\theta,\theta^{(t)}) 右邊=∫Z?P(Z∣X,θ(t))logP(X,Z∣θ)?∫Z?P(Z∣X,θ(t))logP(Z∣X,θ)=Q(θ,θ(t))?H(θ,θ(t))
分別將上式兩項記為 Q(θ,θ(t))Q(\theta,\theta^{(t)})Q(θ,θ(t)) 和 H(θ,θ(t))H(\theta,\theta^{(t)})H(θ,θ(t)) 。我們要證的是 log?P(X∣θ(t+1))≥log?P(X∣θ(t))\log P(X|\theta^{(t+1)})\ge \log P(X|\theta^{(t)})logP(X∣θ(t+1))≥logP(X∣θ(t)) ,這里可以通過證明
log?P(X∣θ(t+1))?log?P(X∣θ(t))=Q(θ(t+1),θ(t))?Q(θ(t),θ(t))+H(θ(t),θ(t))?H(θ(t+1),θ(t))≥0\log P(X|\theta^{(t+1)})-\log P(X|\theta^{(t)})=Q(\theta^{(t+1)},\theta^{(t)})-Q(\theta^{(t)},\theta^{(t)})+H(\theta^{(t)},\theta^{(t)})-H(\theta^{(t+1)},\theta^{(t)})\ge0 logP(X∣θ(t+1))?logP(X∣θ(t))=Q(θ(t+1),θ(t))?Q(θ(t),θ(t))+H(θ(t),θ(t))?H(θ(t+1),θ(t))≥0
來得到。對于 Q(θ,θ(t))Q(\theta,\theta^{(t)})Q(θ,θ(t)) ,明顯是通過迭代過程的 arg?max?\arg\maxargmax 可以保證。因此,我們只需證明 H(θ(t),θ(t))?H(θ(t+1),θ(t))≥0H(\theta^{(t)},\theta^{(t)})-H(\theta^{(t+1)},\theta^{(t)})\ge0H(θ(t),θ(t))?H(θ(t+1),θ(t))≥0 :
H(θ(t),θ(t))?H(θ(t+1),θ(t))=∫ZP(Z∣X,θ(t))log?P(Z∣X,θ(t))?∫ZP(Z∣X,θ(t))log?P(Z∣X,θ(t+1))=∫ZP(Z∣X,θ(t))log?P(Z∣X,θ(t))P(Z∣X,θ(t+1))=KL(P(Z∣X,θ(t))∣∣P(Z∣X,θ(t+1)))≥0\begin{align} H(\theta^{(t)},\theta^{(t)})-H(\theta^{(t+1)},\theta^{(t)})&=\int_ZP(Z|X,\theta^{(t)})\log P(Z|X,\theta^{(t)})-\int_ZP(Z|X,\theta^{(t)})\log P(Z|X,\theta^{(t+1)})\\ &=\int_ZP(Z|X,\theta^{(t)})\log \frac{P(Z|X,\theta^{(t)})}{P(Z|X,\theta^{(t+1)})}\\ &=KL(P(Z|X,\theta^{(t)})||P(Z|X,\theta^{(t+1)}))\ge0 \end{align} H(θ(t),θ(t))?H(θ(t+1),θ(t))?=∫Z?P(Z∣X,θ(t))logP(Z∣X,θ(t))?∫Z?P(Z∣X,θ(t))logP(Z∣X,θ(t+1))=∫Z?P(Z∣X,θ(t))logP(Z∣X,θ(t+1))P(Z∣X,θ(t))?=KL(P(Z∣X,θ(t))∣∣P(Z∣X,θ(t+1)))≥0??
發現最后的形式是 P(Z∣X,θ)(t)P(Z|X,\theta)^{(t)}P(Z∣X,θ)(t) 和 P(Z∣X,θ(t+1))P(Z|X,\theta^{(t+1)})P(Z∣X,θ(t+1)) 的 KL 散度,故可以直接得到上式大于等于零,收斂性得證。這里也可以由詹森不等式證得。
上面我們是給出最終的公式,然后證明它的收斂性,即 log?P(X∣θ(t+1))≥log?P(X∣θ(t))\log P(X|\theta^{(t+1)})\ge \log P(X|\theta^{(t)})logP(X∣θ(t+1))≥logP(X∣θ(t)) ,這樣來說明 EM 算法確實可以以迭代的形式來最大化 P(X∣θ)P(X|\theta)P(X∣θ) 。但是這個公式是怎么得到的呢?下面兩小節我們分別從 KL 散度的角度和 Jensen 不等式的角度來推導 EM 算法的導出。
EM算法的導出——KL散度
我們再回顧一下整個算法的設定:
-
觀測數據:XXX
-
隱變量:ZZZ
-
完整數據:(X,Z)(X,Z)(X,Z)
-
參數:θ\thetaθ
-
MLE:θ^MLE=log?P(X∣θ)\hat{\theta}_{MLE}=\log P(X|\theta)θ^MLE?=logP(X∣θ)
-
EM 公式
θ(t+1)=arg?max?θ∫log?P(X,Z∣θ)P(Z∣X,θ(t))dZE步:P(Z∣X,θ(t))→EZ∣X,θ(t)[log?P(X,Z∣θ)]M步:θ(t+1)=arg?max?θEZ∣X,θ(t)[log?P(X,Z∣θ)]\theta^{(t+1)}=\arg\max_{\theta}\int\log P(X,Z|\theta)P(Z|X,\theta^{(t)})dZ\\ E步:P(Z|X,\theta^{(t)})\rightarrow \mathbb{E}_{Z|X,\theta^{(t)}}[\log P(X,Z|\theta)]\\ M步:\theta^{(t+1)}=\arg\max_{\theta}\mathbb{E}_{Z|X,\theta^{(t)}}[\log P(X,Z|\theta)] θ(t+1)=argθmax?∫logP(X,Z∣θ)P(Z∣X,θ(t))dZE步:P(Z∣X,θ(t))→EZ∣X,θ(t)?[logP(X,Z∣θ)]M步:θ(t+1)=argθmax?EZ∣X,θ(t)?[logP(X,Z∣θ)]
E 步求對數條件聯合概率 log?P(X,Z∣θ)\log P(X,Z|\theta)logP(X,Z∣θ) 關于后驗 Z∣X,θ(t)Z|X,\theta^{(t)}Z∣X,θ(t) 的期望,M 步選擇一個新的 θ(t+1)\theta^{(t+1)}θ(t+1) 使得上述期望達到最大。從而迭代地使得 log?P(X∣θ)\log P(X|\theta)logP(X∣θ) 達到最大。上面已經證明了這個算法的收斂性。
下面開始推導公式的導出。我們還是從對數似然 log?P(X∣θ)\log P(X|\theta)logP(X∣θ) 出發:
log?P(X∣θ)=log?P(X,Z∣θ)P(Z∣X,θ)=log?P(X,Z∣θ)?log?P(Z∣X,θ)=log?P(X,Z∣θ)q(Z)?log?P(Z∣X,θ)q(Z)\begin{align} \log P(X|\theta)&=\log \frac{P(X,Z|\theta)}{P(Z|X,\theta)}\\ &=\log P(X,Z|\theta)-\log P(Z|X,\theta)\\ &=\log \frac{P(X,Z|\theta)}{q(Z)}-\frac{\log P(Z|X,\theta)}{q(Z)} \end{align} logP(X∣θ)?=logP(Z∣X,θ)P(X,Z∣θ)?=logP(X,Z∣θ)?logP(Z∣X,θ)=logq(Z)P(X,Z∣θ)??q(Z)logP(Z∣X,θ)???
-
第一步先從似然,引入隱變量 ZZZ ,根據聯合概率分布的公式進行改寫;
-
然后通過對數的性質寫開;
-
引入關于 ZZZ 的概率分布 q(Z)q(Z)q(Z) ,兩個對數里面同時除 q(Z)q(Z)q(Z)
-
然后兩邊同時求關于 q(Z)q(Z)q(Z) 的期望
左邊=∫Zq(Z)log?P(X∣θ)dZ=log?P(X∣θ)∫Zq(Z)dZ=log?P(X∣θ)×1左邊=\int_Zq(Z)\log P(X|\theta)dZ=\log P(X|\theta)\int_Zq(Z)dZ=\log P(X|\theta)\times1 左邊=∫Z?q(Z)logP(X∣θ)dZ=logP(X∣θ)∫Z?q(Z)dZ=logP(X∣θ)×1
- 左邊原來就與 ZZZ 無關,相當于對常數求期望,不變
右邊=∫Zq(Z)log?P(X,Z∣θ)q(Z)dZ?∫Zq(Z)log?P(Z∣X,θ)q(Z)dZ=ELBO+KL(q(Z)∣∣P(Z∣X,θ))\begin{align} 右邊&=\int_Zq(Z)\log \frac{P(X,Z|\theta)}{q(Z)}dZ-\int_Zq(Z)\log\frac{ P(Z|X,\theta)}{q(Z)}dZ\\ &=ELBO+KL(q(Z)||P(Z|X,\theta))\\ \end{align} 右邊?=∫Z?q(Z)logq(Z)P(X,Z∣θ)?dZ?∫Z?q(Z)logq(Z)P(Z∣X,θ)?dZ=ELBO+KL(q(Z)∣∣P(Z∣X,θ))??
-
右邊也求期望后,后一項是 q(Z)q(Z)q(Z) 對 P(Z∣X,θ)P(Z|X,\theta)P(Z∣X,θ) 的相對熵,也就是 KL 散度。而前一項我們通常稱為 ELBO (Evidence Lower BOund)證據下界。很明顯的, KL 散度是恒正的,因此前一項 ELBO 是 log?P(X∣θ)\log P(X|\theta)logP(X∣θ) 的一個下界。當且僅當后一項相對熵為零,即兩個分布完全相同 q(Z)=P(Z∣X,θ(t))q(Z)=P(Z|X,\theta^{(t)})q(Z)=P(Z∣X,θ(t)) 時取到等號。
EM 算法的思想就是通過使得 ELBO 取得最大,從而使得對數似然 log?P(X∣θ)\log P(X|\theta)logP(X∣θ) 也達到最大。即:
θ^=arg?max?θELBO=arg?max?θ∫Zq(Z)log?P(X,Z∣θ)q(Z)dZ=arg?max?θ∫ZP(X,Z∣θ(t))log?P(X,Z∣θ)P(X,Z∣θ(t)))dZ=arg?max?θ∫ZP(X,Z∣θ(t))[log?P(X,Z∣θ)?log?P(X,Z∣θ(t)))]dZ=arg?max?θ∫ZP(X,Z∣θ(t))log?P(X,Z∣θ)dZ\begin{align} \hat{\theta}&=\arg\max_{\theta}ELBO\\ &=\arg\max_{\theta}\int_Zq(Z)\log \frac{P(X,Z|\theta)}{q(Z)}dZ\\ &=\arg\max_{\theta}\int_ZP(X,Z|\theta^{(t)})\log \frac{P(X,Z|\theta)}{P(X,Z|\theta^{(t)}))}dZ\\ &=\arg\max_{\theta}\int_ZP(X,Z|\theta^{(t)})[\log P(X,Z|\theta)-\log P(X,Z|\theta^{(t)}))]dZ\\ &=\arg\max_{\theta}\int_ZP(X,Z|\theta^{(t)})\log P(X,Z|\theta)dZ\\ \end{align} θ^?=argθmax?ELBO=argθmax?∫Z?q(Z)logq(Z)P(X,Z∣θ)?dZ=argθmax?∫Z?P(X,Z∣θ(t))logP(X,Z∣θ(t)))P(X,Z∣θ)?dZ=argθmax?∫Z?P(X,Z∣θ(t))[logP(X,Z∣θ)?logP(X,Z∣θ(t)))]dZ=argθmax?∫Z?P(X,Z∣θ(t))logP(X,Z∣θ)dZ??
- 當 q(Z)=P(Z∣X,θ(t))q(Z)=P(Z|X,\theta^{(t)})q(Z)=P(Z∣X,θ(t)) 時取到等號,代入進去
- 在經過一次變換后,我們發現中括號中后面一項與 θ\thetaθ 無關,因此丟掉。注意,在迭代算法中 θ(t),θ(t+1)\theta^{(t)},\theta^{(t+1)}θ(t),θ(t+1) 都是常數,θ\thetaθ 才是變量
- 最終得到了 EM 的公式
EM算法的導出——Jensen不等式
下面我們再從 Jensen 不等式的角度來進行推導。
先來介紹一下 Jensen 不等式,這里只介紹 EM 算法推導需要用到的程度:
設 c=ta+(1?t)bc=ta+(1-t)bc=ta+(1?t)b,對于一個凸函數 f(x)f(x)f(x) 來說,有 f(c)=f(ta+(1?t)b)≥tf(a)+(1?t)f(b)f(c)=f(ta+(1-t)b)\ge tf(a)+(1-t)f(b)f(c)=f(ta+(1?t)b)≥tf(a)+(1?t)f(b) 。
我們如果取 t=12t=\frac{1}{2}t=21? ,則有 f(12a+12b)≥12f(a)+12f(b)f(\frac{1}{2}a+\frac{1}{2}b)\ge\frac{1}{2}f(a)+\frac{1}{2}f(b)f(21?a+21?b)≥21?f(a)+21?f(b) 。即對凸函數來說,均值的函數值大于等于函數值的均值。而在概率論中,均值就是期望,即有 f(E)≥Ef()f(\mathbb{E})\ge\mathbb{E}f()f(E)≥Ef()
下面開始推導:
log?P(X∣θ)=log?∫ZP(X,Z∣θ)dZ=log?∫ZP(X,Z∣θ)q(X)q(Z)dZ=log?Eq(z)[P(X,Z∣θ)q(Z)]≥Eq(z)log?[P(X,Z∣θ)q(Z)]\begin{align} \log P(X|\theta)&=\log\int_ZP(X,Z|\theta)dZ\\ &=\log\int_Z\frac{P(X,Z|\theta)}{q(X)}q(Z)dZ\\ &=\log\mathbb{E}_{q(z)}[\frac{P(X,Z|\theta)}{q(Z)}]\\ &\ge \mathbb{E}_{q(z)}\log[\frac{P(X,Z|\theta)}{q(Z)}]\\ \end{align} logP(X∣θ)?=log∫Z?P(X,Z∣θ)dZ=log∫Z?q(X)P(X,Z∣θ)?q(Z)dZ=logEq(z)?[q(Z)P(X,Z∣θ)?]≥Eq(z)?log[q(Z)P(X,Z∣θ)?]??
- 同樣是引入隱變量 ZZZ, 這次轉換為對聯合概率分布積分的形式;
- 變形,上下同乘 q(X)q(X)q(X);
- 我們通常講積分寫成期望的形式;
- log 函數是凸函數,這里使用 Jensen 不等式,其實這里得到的期望就是 ELBO
這里的等號當且僅當 P(X,Z∣θ)q(Z)\frac{P(X,Z|\theta)}{q(Z)}q(Z)P(X,Z∣θ)? 是常數時取到,即:
P(X,Z∣θ)q(Z)=Cq(Z)=1CP(X,Z∣θ)∫Zq(Z)dZ=∫Z1CP(X,Z∣θ)dZ1=1C∫ZP(X,Z∣θ)dZ=1CP(X∣θ)\frac{P(X,Z|\theta)}{q(Z)}=C\\ q(Z)=\frac{1}{C}P(X,Z|\theta)\\ \int_Zq(Z)dZ=\int_Z\frac{1}{C}P(X,Z|\theta)dZ\\ 1=\frac{1}{C}\int_ZP(X,Z|\theta)dZ=\frac{1}{C}P(X|\theta) q(Z)P(X,Z∣θ)?=Cq(Z)=C1?P(X,Z∣θ)∫Z?q(Z)dZ=∫Z?C1?P(X,Z∣θ)dZ1=C1?∫Z?P(X,Z∣θ)dZ=C1?P(X∣θ)
- 做一個變形;
- 等式兩邊同時對 ZZZ 求積分;
- 左邊就是 1,右邊把 ZZZ 積掉;
- 得到 C=P(X∣θ)C=P(X|\theta)C=P(X∣θ),代回到原式中:
P(X,Z∣θ)q(Z)=P(X∣θ)q(Z)=P(X,Z∣θ)P(X∣θ)=P(Z∣X,θ)\frac{P(X,Z|\theta)}{q(Z)}=P(X|\theta)\\ q(Z)=\frac{P(X,Z|\theta)}{P(X|\theta)}=P(Z|X,\theta) q(Z)P(X,Z∣θ)?=P(X∣θ)q(Z)=P(X∣θ)P(X,Z∣θ)?=P(Z∣X,θ)
可以看到 q(Z)q(Z)q(Z) 就是后驗 P(Z∣X,θ(t))P(Z|X,\theta^{(t)})P(Z∣X,θ(t)) ,這與我們在上一小節的結論是一致的,再后面就與上一小節一樣了,不在贅述。
Ref
- 統計學習方法——李航
- 機器學習白板推導