EM

Blackteaxx發表於2024-05-08

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 年版-全集】

相關文章