最大期望算法(Expectation-Maximization algorithm,EM)

最大期望算法(Expectation-Maximization algorithm,EM)

  最大期望算法,也被译作最大化算法(Minorize-Maxization,MM),是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。
  最大期望算法就是E-step和M-step交替进行计算,直至满足收敛条件。所以它是一种迭代算法。
  EM算法适用场景:当数据有缺失值时,即数据不完整时。还有很多机器学习模型的求解经常用到Em,比如GMM(高斯混合模型)、HMM(隐马尔科夫模型)等等。

一、EM算法的广义步骤

  E-step:利用可用的数据来估算(猜测)潜在变量的值;
  M-step:根据E步骤中生成的估计值,使用完整的数据更新参数。

二、先写出EM的公式

  这里以最大似然估计作为准则:

\[ {\hat \theta _{MLE}} = \arg \max \log P(X|\theta ) \]

  EM公式

\[{\theta ^{(t + 1)}} = \arg \mathop {\max }\limits_\theta \int_Z {\log } P(X,Z|\theta )P(Z|X,{\theta ^{(t)}})dZ \]

  \(\int_Z {\log } P(X,Z|\theta )P(Z|X,{\theta ^{(t)}})dZ\)也可以写作\({E_{Z|X,{\theta ^{(t)}}}}[\log P(X,Z|\theta )]\)或者\(\sum\limits_Z {\log P(X,Z|\theta )P(Z|X,{\theta ^{(t)}})}\)

三、其收敛性的证明

  此处的证明并不是非常严格的证明。要证明其收敛,就是要证明当\({\theta ^{(t)}} \to {\theta ^{(t + 1)}}\)\(P(X|{\theta ^{(t)}}) \to P(X|{\theta ^{(t + 1)}})\)\(P(X|{\theta ^{(t)}}) \le P(X|{\theta ^{(t + 1)}})\)。证明过程如下:

  证明:

\[\log P(X|\theta ) = \log P(X,Z|\theta ) - \log P(Z|X,\theta ) \]

  等式两边关于\({Z|X,{\theta ^{(t)}}}\)分布同时求期望:

  左边:

\[\begin{array}{l} {E_{Z|X,{\theta ^{(t)}}}}[\log P(X|\theta )]\\ = \int_Z {\log } P(X|\theta )P(Z|X,{\theta ^{(t)}})dZ\\ = \log P(X|\theta )\int_Z {P(Z|X,{\theta ^{(t)}})} dZ\\ = \log P(X|\theta ) \end{array} \]

  右边:

\[\begin{array}{l} {E_{Z|X,{\theta ^{(t)}}}}\left[ {\log P(X,Z|\theta ) - \log P(Z|X,\theta )} \right]\\ = \int_Z {\log P(X,Z|\theta )P(Z|X,{\theta ^{(t)}})dZ - } \int_Z {\log P(Z|X,\theta )P(Z|X,{\theta ^{(t)}})dZ} \end{array} \]

  令\(Q(\theta ,{\theta ^{(t)}}) = \int_Z {\log P(X,Z|\theta )P(Z|X,{\theta ^{(t)}})dZ}\)\(H(\theta ,{\theta ^{(t)}}) = \int_Z {\log P(Z|X,\theta )P(Z|X,{\theta ^{(t)}})dZ}\)

  则

\[{E_{Z|X,{\theta ^{(t)}}}}\left[ {\log P(X,Z|\theta ) - \log P(Z|X,\theta )} \right] = Q(\theta ,{\theta ^{(t)}}) - H(\theta ,{\theta ^{(t)}}) \]

  由EM的算法公式可得:(因为就是要求满足要求的最大\(\theta\)作为\(\theta ^{(t+1)}\)

\[Q({\theta ^{(t + 1)}},{\theta ^{(t)}}) \ge Q(\theta ,{\theta ^{(t)}}) \]

  也即:(\(\theta\)\(\theta ^{(t)}\)时)

\[Q({\theta ^{(t + 1)}},{\theta ^{(t)}}) \ge Q({\theta ^{(t)}},{\theta ^{(t)}}) \]

  对于\(H(\theta ,{\theta ^{(t)}})\)

\[\begin{array}{l} H({\theta ^{(t + 1)}},{\theta ^{(t)}}) - H({\theta ^{(t)}},{\theta ^{(t)}})\\ = \int_Z {\log P(Z|X,{\theta ^{(t + 1)}})} P(Z|X,{\theta ^{(t)}})dZ - \int_Z {\log P(Z|X,{\theta ^t})} P(Z|X,{\theta ^{(t)}})dZ\\ = \int_Z {P(Z|X,{\theta ^{(t)}})} \log \frac{{P(Z|X,{\theta ^{(t + 1)}})}}{{P(Z|X,{\theta ^t})}}dZ\\ = - KL(P(Z|X,{\theta ^{(t)}})||P(Z|X,{\theta ^{(t + 1)}}))\\ \le 0 \end{array} \]

  也即\(H({\theta ^{(t + 1)}},{\theta ^{(t)}}) \le H({\theta ^{(t)}},{\theta ^{(t)}})\)
  综上,\(P(X|{\theta ^{(t)}}) \le P(X|{\theta ^{(t + 1)}})\),证毕。

四、公式推导方法1

说明下数据:
  X: observed data   \(X = \{ {x_1},{x_2}, \cdots {x_N}\}\)
  Z: unovserved data(latent data)    \(Z = \{ {z_i}\} _{i = 1}^K\)
  (X,Z): complete data
  \(\theta\): parameter

4.1 E-M步骤公式

  E-step:

\[P(Z|X,{\theta ^{(t)}}) \to {E_{Z|X,{\theta ^{(t)}}}}[\log P(X,Z|\theta )] \]

  M-step:

\[{\theta ^{(t + 1)}} = \arg \mathop {\max }\limits_\theta {E_{Z|X,{\theta ^{(t)}}}}[\log P(X,Z|\theta )] \]

4.2 推导过程

\[\log P(X|\theta ) = \log (X,Z|\theta ) - \log (Z|X,\theta ) \]

  等价代换,引入分布\(q(Z)\):

\[\log P(X|\theta ) = \log \frac{{P(X,Z|\theta )}}{{q(z)}} - \log \frac{{P(Z|X,\theta )}}{{q(z)}} , q(Z) \ne 0 \]

  两边同时关于分布\(q(Z)\)求期望

  对于左边:

\[\begin{array}{l} {E_{q(Z)}}[\log P(X|\theta )] = \int_Z {\log } P(X|\theta )P(Z|X,{\theta ^{(t)}})dZ\\ = \log P(X|\theta )\int_Z {P(Z|X,{\theta ^{(t)}})} dZ\\ = \log P(X|\theta ) \end{array} \]

  对于右边:

\[\begin{array}{l} {E_{Z|X,{\theta ^{(t)}}}}\left[ {\log \frac{{P(X,Z|\theta )}}{{q(z)}} - \log \frac{{P(Z|X,\theta )}}{{q(z)}}} \right]\\ = \int_Z {\log \frac{{P(X,Z|\theta )}}{{q(z)}}} q(z)dZ - \int_Z {\log \frac{{P(Z|X,\theta )}}{{q(z)}}} q(z)dZ\\ = ELBO + KL\left( {q(Z)||P(Z|X,\theta )} \right) \end{array} \]

  其中\({P(Z|X,\theta )}\)为后验概率。ELBO为evidence lower bound

\[\begin{array}{l} \therefore \log P(X|\theta ) = ELBO + KL\left( {q||P} \right)\\ \because KL\left( {q||P} \right) \ge 0\\ \therefore \log P(X|\theta ) \ge ELBO \end{array} \]

  则取最大值,就等价于ELBO取最大值,此时:

\[{{\hat \theta }^{(t + 1)}} = \arg \mathop {\max }\limits_\theta ELBO = \arg \mathop {\max }\limits_\theta \int_Z {\log \frac{{P(X,Z|\theta )}}{{q(z)}}} q(z)dZ \]

  \(\because\)\(q=P\)时,\(KL=0\),即\(\log P(X|\theta ) = ELBO\)的等号成立。

  则取\(q(z) = P(Z|X,{\theta ^{(t)}})\),即上一时刻的后验。
  \(\therefore\)

\[\begin{array}{l} {{\hat \theta }^{(t + 1)}} = \arg \mathop {\max }\limits_\theta \int_Z {\log \frac{{P(X,Z|\theta )}}{{P(Z|X,{\theta ^{(t)}})}}} P(Z|X,{\theta ^{(t)}})dZ\\ = \arg \mathop {\max }\limits_\theta \int_Z {\left[ {\log P(X,Z|\theta ) - \log P(Z|X,{\theta ^{(t)}})} \right]} P(Z|X,{\theta ^{(t)}})dZ \end{array} \]

  此时\(\theta ^{(t)}\)为上一时刻的参数,故在此可视作常数,则减号后面的参数都视作常数,与目标\(\theta\)无关,在求解是无用,故可以省去。

  则此时:

\[{{\hat \theta }^{(t + 1)}} = \arg \mathop {\max }\limits_\theta \int_Z {\log P(X,Z|\theta )} P(Z|X,{\theta ^{(t)}})dZ \]

  证毕

五、公式推导方法2(涉及Jensen不等式)

5.1 Jensen不等式

  对于concave function(凹函数),设\(t \in [0,1]\),则有\(f\left( {t \cdot a + (1 - t) \cdot b} \right) \ge tf\left( a \right) + (1 - t)f\left( b \right)\)。特别的,当\(a = b = \frac{1}{2}\)时,\(f\left( {\frac{{a + b}}{2}} \right) \ge \frac{{f\left( a \right) + f\left( b \right)}}{2}\)。从期望的角度来看就是\(f\left( E \right) \ge E\left( f \right)\),先期望后函数大于等于先函数后期望。

5.2 关于E-M算法的理解

  对于E-step\(\theta ^{(t)}\)是上一次求出的参数,在这一步就是常数,然后对于后验分布\(Z|X,{\theta ^{(t)}}\)求关于最大似然函数\({\log P(X,Z|\theta )}\)的期望,即写出一个关于\(\theta\)的函数。
  对于M-step: 针对E-step写出的期望函数,求使参数\(\theta\)满足其取最大值的参数作为当前时刻的参数目标\(\theta ^{(t+1)}\).

5.3 推导过程

\[\log P(X|\theta ) = \log \int_Z {P(X,Z|\theta )} dZ \]

联合分布的边缘积分=边缘概率分布

  引入分布\(q(Z)\):

\[\begin{array}{l}原式= \log \int_Z {\frac{{P(X,Z|\theta )}}{{q(Z)}}} \cdot q(Z)dZ\\ = \log \left[ {{E_{Z|X,{\theta ^{(t)}}}}\left( {\frac{{P(X,Z|\theta )}}{{q(Z)}}} \right)} \right] \end{array} \]

  由Jensen不等式:

\[原式\ge {E_{Z|X,{\theta ^{(t)}}}}\left[ {\log \left( {\frac{{P(X,Z|\theta )}}{{q(Z)}}} \right)} \right] = ELBO \]

  当\({\frac{{P(X,Z|\theta )}}{{q(Z)}}} = c\),\(c\)为常数时,等号成立。

  则\(q(Z) = \frac{1}{c}P(X,Z|\theta )\),两边同时对\(Z\)求积分:

\[\begin{array}{c} \int_Z {q(Z)dZ = \int_Z {\frac{1}{c}P(X,Z|\theta )dZ} } \\ \\ 1 = \frac{1}{c}P(X|\theta ) \end{array} \]

  \(\therefore\)\(q(Z) = P(X|\theta ) \cdot P(X,Z|\theta ) = P(Z|X,\theta )\)

  后续步骤同方法一。

六、广义EM算法

  ①狭义EM算法是广义EM算法的一种特例;
  ②生成模型中如果\(Z\)的复杂度太高,则后验概率\(P(Z|X,\theta)\)很难求出(intractable)。但是像GMM和HNN的\(Z\)是结构化的,相对简单,所以可以用狭义EM算法进行优化。

\[\begin{array}{l} \log P(X|\theta ) = ELBO + KL(q||P)\\ = {E_{q(Z)}}\left[ {\log \frac{{P(X,Z|\theta )}}{{q(Z)}}} \right] - {E_{q(Z)}}\left[ {\log \frac{{P(Z|X,\theta )}}{{q(Z)}}} \right] \end{array} \]

广义EM步骤:

  \( \left\{ \begin{array}{l} 1.固定\theta :\hat q = \arg \mathop {\min }\limits_q KL(q||P) = \arg \mathop {\max }\limits_q ELBO(\hat q,\theta)\\ 2.固定\hat q:\theta = \arg \mathop {\max }\limits_\theta ELBO(\hat q,\theta) \end{array} \right. \)

  对应的:

  \( \left\{ \begin{array}{l} E-step:{q^{(t + 1)}} = \arg \mathop {\max }\limits_q ELBO(q,{\theta ^{(t)}})\\ M-step:{\theta ^{(t + 1)}} = \arg \mathop {\max }\limits_\theta ELBO({q^{(t + 1)}},{\theta ^{(t)}}) \end{array} \right. \)


\[ELBO(q,\theta ) = {E_{q(Z)}} \log P(X,Z|\theta ) - {E_{q(Z)}}\log q(Z) \]

  其中\(- {E_{q(Z)}}\log q(Z)\)是熵\(H[q(z)]\),则

\[ELBO(q,\theta ) = {E_{q(Z)}} \log P(X,Z|\theta ) + H[q(z)] \]

  广义EM是先固定一个参数在计算另一个参数,故可以从坐标上升法的角度去看。

七、EM算法的改进

①变分贝叶斯EM算法,VBEM/VIEM/VEM,三个简称叫法不同,但内容基本一致;
②蒙特卡洛EM算法,MCEM。

以上内容是在B站上up主的白板推导系列和几何周志华的西瓜书总结的内容,强烈推荐该系列课程,通俗易懂,还有一定的实时性,附上链接机器学习白板推导系列
本人第一次发博,不周之处还请多多批评,欢迎交流。

posted @ 2021-05-19 17:12  八九十度  阅读(1000)  评论(0编辑  收藏  举报