EM算法推导小记

  EM算法(Expectation-Maximization),即期望-最大化算法。目标是估计某个概率分布函数中的参数 θ \theta θ,使得在事件 x x x发生的期望值 E x ( log ⁡ P ( x ∣ θ ) ) E_{x}(\log P(x|\theta)) Ex(logP(xθ))最大化。通常该问题可以通过最大似然估计的方法求解,但在许多情况下,数据的分布十分复杂,我们必须要引入一个隐变量 z z z,假设 x x x是由 z z z产生的,而 z z z的分布是可以自己假设的,从而减少了分布模型的复杂度。下面来简单的推导一下EM算法的过程,以帮助自己理解和记忆。
  首先,我们有对数似然函数 L ( θ ) = log ⁡ P ( x ∣ θ ) L(\theta) = \log P(x|\theta) L(θ)=logP(xθ)引入隐变量 z z z,可得到 log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) − log ⁡ P ( z ∣ x , θ ) \log P(x|\theta)=\log P(x,z|\theta)-\log P(z|x,\theta) logP(xθ)=logP(x,zθ)logP(zx,θ)证明过程如下,根据贝叶斯公式 P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)可得 P ( x , z ∣ θ ) = P ( x , z , θ ) P ( θ ) ⇒ P ( θ ) = P ( x , z , θ ) P ( x , z ∣ θ ) ) P(x,z|\theta)=\frac{P(x,z,\theta)}{P(\theta)}\Rightarrow P(\theta)=\frac{P(x,z,\theta)}{P(x,z|\theta))} P(x,zθ)=P(θ)P(x,z,θ)P(θ)=P(x,zθ))P(x,z,θ) P ( z ∣ x , θ ) = P ( x , z , θ ) P ( x , θ ) ⇒ P ( x , θ ) = P ( x , z , θ ) P ( z ∣ x , θ ) ) P(z|x,\theta)=\frac{P(x,z,\theta)}{P(x, \theta)}\Rightarrow P(x, \theta)=\frac{P(x,z,\theta)}{P(z|x,\theta))} P(zx,θ)=P(x,θ)P(x,z,θ)P(x,θ)=P(zx,θ))P(x,z,θ) P ( x ∣ θ ) = P ( x , θ ) P ( θ ) = P ( x , z ∣ θ ) P ( z ∣ x , θ ) P(x|\theta)=\frac{P(x,\theta)}{P(\theta)}=\frac{P(x,z|\theta)}{P(z|x,\theta)} P(xθ)=P(θ)P(x,θ)=P(zx,θ)P(x,zθ)两边取对数可得 log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) P ( z ∣ x , θ ) = log ⁡ P ( x , z ∣ θ ) − log ⁡ P ( z ∣ x , θ ) \log P(x|\theta)=\log \frac{P(x,z|\theta)}{P(z|x,\theta)}=\log P(x,z|\theta)-\log P(z|x,\theta) logP(xθ)=logP(zx,θ)P(x,zθ)=logP(x,zθ)logP(zx,θ)做一个恒等变换 log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) − log ⁡ P ( z ) − [ log ⁡ P ( z ∣ x , θ ) − log ⁡ P ( z ) ] \log P(x|\theta)=\log P(x,z|\theta)-\log P(z)-[\log P(z|x,\theta)-\log P(z)] logP(xθ)=logP(x,zθ)logP(z)[logP(zx,θ)logP(z)] log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) P ( z ) − log ⁡ P ( z ∣ x , θ ) P ( z ) \log P(x|\theta)=\log \frac{P(x,z|\theta)}{P(z)}-\log \frac{P(z|x, \theta)}{P(z)} logP(xθ)=logP(z)P(x,zθ)logP(z)P(zx,θ)两边分别乘以 P ( z ) P(z) P(z)并对 z z z取积分可得 ∫ z P ( z ) log ⁡ P ( x ∣ θ ) d z = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z − ∫ z P ( z ) log ⁡ P ( z ∣ x , θ ) P ( z ) d z \int_zP(z)\log P(x|\theta)dz=\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz-\int_zP(z)\log \frac{P(z|x, \theta)}{P(z)}dz zP(z)logP(xθ)dz=zP(z)logP(z)P(x,zθ)dzzP(z)logP(z)P(zx,θ)dz由于 P ( x ∣ θ ) P(x|\theta) P(xθ)是与 z z z无关的函数,因此等号左边为 ∫ z P ( z ) log ⁡ P ( x ∣ θ ) d z = log ⁡ P ( x ∣ θ ) ∫ z P ( z ) d z = log ⁡ P ( x ∣ θ ) \int_zP(z)\log P(x|\theta)dz=\log P(x|\theta)\int_zP(z)dz=\log P(x|\theta) zP(z)logP(xθ)dz=logP(xθ)zP(z)dz=logP(xθ)等号右边化简可得 ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z − ∫ z P ( z ) log ⁡ P ( z ∣ x , θ ) P ( z ) d z                            = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z − [ ∫ z P ( z ) log ⁡ P ( z ∣ x , θ ) − P ( z ) log ⁡ P ( z ) d z ] = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z + [ ∫ z P ( z ) log ⁡ P ( z ) − P ( z ) log ⁡ P ( z ∣ x , θ ) d z ] = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z + ∫ z P ( z ) log ⁡ P ( z ) P ( z ∣ x , θ ) d z                                   = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z + D K L ( P ( z ) ∥ P ( z ∣ x , θ ) )                                       \int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz-\int_zP(z)\log \frac{P(z|x, \theta)}{P(z)}dz\: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \\ \\=\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz-[\int_zP(z)\log P(z|x,\theta)-P(z)\log P(z)dz]\\ \\=\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz+[\int_zP(z)\log P(z)-P(z)\log P(z|x,\theta)dz]\\ \\ =\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz+\int_zP(z)\log \frac{P(z)}{P(z|x, \theta)}dz\: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \\ \\ =\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz+D_{KL}(P(z)\|P(z|x,\theta))\: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: \: zP(z)logP(z)P(x,zθ)dzzP(z)logP(z)P(zx,θ)dz=zP(z)logP(z)P(x,zθ)dz[zP(z)logP(zx,θ)P(z)logP(z)dz]=zP(z)logP(z)P(x,zθ)dz+[zP(z)logP(z)P(z)logP(zx,θ)dz]=zP(z)logP(z)P(x,zθ)dz+zP(z)logP(zx,θ)P(z)dz=zP(z)logP(z)P(x,zθ)dz+DKL(P(z)P(zx,θ))其中 D K L ( P ( z ) ∥ P ( z ∣ x , θ ) ) ≥ 0 D_{KL}(P(z)\|P(z|x,\theta))\geq 0 DKL(P(z)P(zx,θ))0表示KL散度,因此可得 log ⁡ P ( x ∣ θ ) ≥ ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z \log P(x|\theta)\geq \int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz logP(xθ)zP(z)logP(z)P(x,zθ)dz我们称不等号的右侧式子为ELBO(evidence lower bound),当且仅当 D K L ( P ( z ) ∥ P ( z ∣ x , θ ) ) = 0 D_{KL}(P(z)\|P(z|x,\theta))= 0 DKL(P(z)P(zx,θ))=0时等号成立,即 P ( z ) = P ( z ∣ x , θ ) P(z)=P(z|x,\theta) P(z)=P(zx,θ) P ( z ∣ x , θ ) P(z|x,\theta) P(zx,θ)表示 z z z的后验概率,我们可以令第 i i i次迭代时, z z z的后验概率为 P ( z ) = P ( z ∣ x , θ ( i ) ) P(z)=P(z|x,\theta^{(i)}) P(z)=P(zx,θ(i)) E L B O = ∫ z P ( z ) log ⁡ P ( x , z ∣ θ ) P ( z ) d z                                = ∫ z P ( z ∣ x , θ ( i ) ) log ⁡ P ( x , z ∣ θ ) P ( z ∣ x , θ ( i ) ) d z ELBO=\int_zP(z)\log \frac{P(x,z|\theta)}{P(z)}dz\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \\=\int_zP(z|x,\theta^{(i)})\log \frac{P(x,z|\theta)}{P(z|x,\theta^{(i)})}dz ELBO=zP(z)logP(z)P(x,zθ)dz=zP(zx,θ(i))logP(zx,θ(i))P(x,zθ)dz计算在参数 θ ( i ) \theta^{(i)} θ(i)的条件下,期望值 E z ∣ x , θ ( i ) [ log ⁡ P ( x , z ∣ θ ) ] = E L B O E_{z|x,\theta^{(i)}}[\log P(x,z|\theta)]=ELBO Ezx,θ(i)[logP(x,zθ)]=ELBO的过程就是EM算法中的E步,核心在于计算 z z z的后验概率 P ( z ∣ x , θ ) P(z|x,\theta) P(zx,θ)。M步则是寻找更优的模型参数 θ \theta θ以最大化对数似然函数 log ⁡ P ( x ∣ θ ) \log P(x|\theta) logP(xθ),其等价于最大化ELBO,即 θ ( i + 1 ) = arg max ⁡ θ log ⁡ P ( x ∣ θ )                                                                                                           = arg max ⁡ θ E L B O                                                                                                     = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( i ) ) log ⁡ P ( x , z ∣ θ ) P ( z ∣ x , θ ( i ) ) d z                                                      = arg max ⁡ θ ∫ z [ P ( z ∣ x , θ ( i ) ) log ⁡ P ( x , z ∣ θ ) − P ( z ∣ x , θ ( i ) ) log ⁡ P ( z ∣ x , θ ( i ) ) ] d z = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( i ) ) log ⁡ P ( x , z ∣ θ ) d z                                                            \theta^{(i+1)}=\argmax_{\theta}\log P(x|\theta)\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \\ \\=\argmax_{\theta}ELBO\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \\ \\=\argmax_{\theta}\int_zP(z|x,\theta^{(i)})\log \frac{P(x,z|\theta)}{P(z|x,\theta^{(i)})}dz\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \:\: \: \:\: \: \\ \\=\argmax_{\theta}\int_z[P(z|x,\theta^{(i)})\log P(x,z|\theta)-P(z|x,\theta^{(i)})\log P(z|x,\theta^{(i)})]dz\\ \\=\argmax_{\theta}\int_zP(z|x,\theta^{(i)})\log P(x,z|\theta)dz\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \:\: \: \: \: \: \: \: \: \: \: \:\: \: \: \: \: \:\: \: \:\: \:\:\: \:\:\: \: θ(i+1)=θargmaxlogP(xθ)=θargmaxELBO=θargmaxzP(zx,θ(i))logP(zx,θ(i))P(x,zθ)dz=θargmaxz[P(zx,θ(i))logP(x,zθ)P(zx,θ(i))logP(zx,θ(i))]dz=θargmaxzP(zx,θ(i))logP(x,zθ)dz上式最后一步推导,是因为 P ( z ∣ x , θ ( i ) ) log ⁡ P ( z ∣ x , θ ( i ) ) P(z|x,\theta^{(i)})\log P(z|x,\theta^{(i)}) P(zx,θ(i))logP(zx,θ(i))是与 θ \theta θ无关的常数项,因此可以可以直接忽略。EM算法就是,通过先固定参数 θ \theta θ调整后验概率 P ( z ) P(z) P(z),然后再固定 P ( z ) P(z) P(z),调整 θ \theta θ使得期望达到最大。重复迭代E和M步,直至收敛。

你可能感兴趣的:(数学知识,算法,概率论,EM算法)