EM Algorithm
1. GMM 引入
若資料服從一個高斯分佈,可以用 MLE + 偏導為 0 的方法求解引數,其中框架如下
\[\theta = \{ \mu, \Sigma \} = \arg \max_{\theta} \sum_{i=1}^N \log p(x_i | \theta)
\]
而由於單個高斯分佈機率密度函式為 convex,因此整體的似然函式也是 convex 的,梯度為 0 點即為最優解。
然而,若資料服從多個高斯分佈,density function 為
\[p(x) = \sum_{k=1}^K \alpha_k \mathcal{N}(x | \mu_k, \Sigma_k) \\
\quad s.t. \sum_{k=1}^K \alpha_k = 1
\]
若使用 MLE 方法,log likelihood 為
\[LL = \sum_{i=1}^N \log p(x_i) = \sum_{i=1}^N \log \sum_{k=1}^K \alpha_k \mathcal{N}(x_i | \mu_k, \Sigma_k)
\]
由於 density function 不再是凸函式,同時等式直接計算複雜,因此無法直接求解最優解,此時可以引入 EM 演算法,為一個迭代演算法。
2. EM 演算法收斂性
EM 演算法的迭代過程如下
\[\begin{align}
\theta^{(t+1)} = \arg \max_{\theta} \text{E}_{p(z|x;\theta^{(t)})}[\text{log} p(x,z;\theta)] = \arg \max_{\theta} \int_z p(Z | X, \theta^{(t)}) \log p(X, Z | \theta)
\end{align}
\]
迭代演算法欲證明收斂性,只需要證明每次迭代後的 log likelihood 均不減少即可,即:
\[LL(\theta^{(t+1)}) \geq LL(\theta^{(t)}) \\
p(X|\theta^{(t+1)}) \geq p(X|\theta^{(t)}) \\
\text{log} p(X|\theta^{(t+1)}) \geq \text{log} p(X|\theta^{(t)})
\]
\(proof\):
\[\text{log} p(X|\theta) = \text{log} p(X,Z|\theta) - \text{log} p(Z|X,\theta) \\
\]
對兩邊求期望,有
\[\text{E}_{p(Z|X,\theta^{(t)})}[\text{log} p(X|\theta)] = \text{E}_{p(Z|X,\theta^{(t)})}[\text{log} p(X,Z|\theta)] - \text{E}_{p(Z|X,\theta^{(t)})}[\text{log} p(Z|X,\theta)]
\]
由於左邊與\(Z\)無關,因此有
\[\text{log} p(X|\theta) = \text{E}_{p(Z|X,\theta^{(t)})}[\text{log} p(X,Z|\theta)] - \text{E}_{p(Z|X,\theta^{(t)})}[\text{log} p(Z|X,\theta)]
\]
右邊展開為積分形式,有
\[\text{log} p(X|\theta) = \underbrace{\int p(Z|X,\theta^{(t)}) \text{log} p(X,Z|\theta) dz}_{Q(\theta,\theta^{(t)})} - \underbrace{\int p(Z|X,\theta^{(t)}) \text{log} p(Z|X,\theta) dz}_{H(\theta,\theta^{(t)})}
\]
由於 EM 演算法的形式,可知最大化 \(Q\)項,因此有
\[Q(\theta^{t+1},\theta^{(t)}) \geq Q(\theta,\theta^{(t)})
\]
即有
\[Q(\theta^{(t+1)},\theta^{(t)}) \geq Q(\theta^{(t)},\theta^{(t)})
\]
那麼若要證明 EM 演算法的收斂性,只需要證明 \(H\) 項的減少即可。
\[H(\theta^{(t+1)},\theta^{(t)}) \leq H(\theta^{(t)},\theta^{(t)})
\]
即證
\[H(\theta,\theta^{(t)}) \leq H(\theta^{(t)},\theta^{(t)}) \\
H(\theta^{(t)},\theta^{(t)}) - H(\theta,\theta^{(t)}) \geq 0
\]
展開即有
\[\int p(Z|X,\theta^{(t)}) \text{log} \frac{p(Z|X,\theta^{(t)})}{p(Z|X,\theta)} dz = KL(p(Z|X,\theta^{(t)})\| p(Z|X,\theta)) \geq 0
\]
收斂性得證,但無法證明收斂到全域性最優解。
3. EM 演算法公式匯出
對於 n 個資料\((x_1, \dots,x_N)\),MLE 如下:
\[\theta = \arg \max_{\theta}\sum_N \log p(x_i|\theta)
\]
若帶有隱變數\(z=(z_1,\dots,z_k)\),則有
\[\theta = \arg \max_{\theta}\sum_N \log p(x_i|\theta) = \arg \max_{\theta}\sum_N \log \sum_z p(x_i,z_j|\theta)
\]
由於直接求解困難,因此使用\(z\)的分佈放縮:
\[\sum_N \log \sum_z p(x_i,z|\theta) = \sum_N \log \sum_z q_i(z_j) \frac{p(x_i,z_j|\theta)}{q_i(z_j)} \geq \sum_N \sum_z q_i(z_j) \log \frac{p(x_i,z_j|\theta)}{q_i(z_j)}
\]
其中每一個樣本\(x_i\)都有一個對應的\(q_i(z)\)分佈
上述過程描述了\(LL(\theta)\)的下界,而我們希望\(\arg \max LL(\theta)\),因此我們希望下界能取到等號,即我們希望等式成立,根據 Jensen 不等式,等式成立當且僅當\(\frac{p(x_i,z_j|\theta)}{q(z_j)} = c\),\(c\)為常數,且\(\sum q_i(z_j) = 1\),因此有
\[q_i(z_j) = \frac{p(x_i,z_i,\theta)}{\sum p(x_i,z_i,\theta)} = p(z_j|x_i,\theta)
\]
- 因此在 E 步,我們需要求解\(q_i(z_j)\)的分佈,儘可能使得\(LL(\theta)\)的下界取到最大值,
- 而在 M 步,我們獲取了\(q_i(z_j)\)的分佈之後,可以對\(LL(\theta)\)求導,得到最優解\(\theta\),即為 EM 演算法。
參考
EM 演算法詳解
徐亦達機器學習:Expectation Maximization EM 演算法 【2015 年版-全集】