10 最大期望(EM)

Expectation Maximization (EM) 算法,中文名字叫做“期望最大”算法,是用来解决具有隐变量的混合模型的参数估计(即其极大似然估计)。在比较简单的情况中,我们可以直接得出我们想要求得的参数的解析解,比如:MLE: p ( X ∣ θ ) p(X|\theta) p(Xθ)。我们想要求解的结果就是: θ M L E = a r g m a x θ log ⁡ p ( X ∣ θ ) \theta_{MLE}=\mathop{argmax}\limits_\theta\log p(X|\theta) θMLE=θargmaxlogp(Xθ)其中, l o g p ( X ∣ θ ) log p(X|\theta) logp(Xθ) 也被我们称为对数似然函数。一旦问题变得复杂起来以后,就不是这么简单了,特别是引入了隐变量之后。

最大似然MLE和最大后验MAP的关系?
θ \theta θ 和隐变量 Z 的关系? θ \theta θ 是否可以看作隐变量?

1 EM 算法简述以及收敛性证明

1.1 EM 算法简述

实际上,EM 算法的描述也并不是很难,我们知道,通常我们想求的似然函数为 p ( X ∣ θ ) p(X|\theta) p(Xθ)引入隐变量之后,原式就变成了: p ( X ∣ θ ) = ∫ p ( X , Z ∣ θ ) p ( Z ∣ X , θ ( t ) ) d Z p(X | \theta)=\int p(X, Z | \theta) p\left(Z | X, \theta^{(t)}\right) d Z p(Xθ)=p(X,Zθ)p(ZX,θ(t))dZEM 算法是一种迭代的算法,我们的目标是求
θ t + 1 = a r g m a x θ ∫ Z log ⁡ [ p ( X , Z ∣ θ ) ] p ( Z ∣ X , θ t ) d Z = E Z ∣ X , θ t [ log ⁡ p ( X , Z ∣ θ ) ] \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_Z\log[p(X,Z|\theta)]p(Z|X,\theta^t)dZ=\mathbb{E}_{Z|X,\theta^t}[\log p(X,Z|\theta)] θt+1=θargmaxZlog[p(X,Zθ)]p(ZX,θt)dZ=EZX,θt[logp(X,Zθ)]也就是找到一个更新的参数 θ \theta θ,使得 p ( X , Z ∣ θ ) p(X, Z | \theta) p(X,Zθ) 出现的概率更大。

1.2 EM 算法的收敛性

我们想要证明的是当 θ ( t ) ⟶ θ ( t + 1 ) \theta^{(t)} \longrightarrow \theta^{(t+1)} θ(t)θ(t+1) 时,有 log ⁡ p ( X ∣ θ ( t ) ) ≤ log ⁡ p ( X ∣ θ ( t + 1 ) ) \log p\left(X | \theta^{(t)}\right) \leq \log p\left(X | \theta^{(t+1)}\right) logp(Xθ(t))logp(Xθ(t+1))这样才能说明我们的每次迭代都是有效的,也就是每次迭代都要使 X X X 发生的概率增加
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;θ)下一步,则是同时对两边求关于 p ( X , Z ∣ θ ( t ) ) p(X,Z|\theta^{(t)}) p(X,Zθ(t))的期望。
左边:
E Z ∼ p ( Z ∣ X , θ ( t ) ) [ log ⁡ p ( X ∣ θ ) ] = ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( X ∣ θ ) d Z . = log ⁡ p ( X ∣ θ ) ∫ Z p ( Z ∣ X , θ ( t ) ) d Z = log ⁡ p ( X ∣ θ ) ⋅ 1 = log ⁡ p ( X ∣ θ ) \begin{aligned} \mathbb{E}_{Z \sim p\left(Z | X, \theta^{(t)}\right)}[\log p(X | \theta)] &=\int_{Z} p\left(Z|X, \theta^{(t)}\right) \log p(X | \theta) d Z.\\ &=\log p(X | \theta) \int_{Z} p\left(Z | X, \theta^{(t)}\right) d Z \\ &=\log p(X | \theta) \cdot 1=\log p(X | \theta) \end{aligned} EZp(ZX,θ(t))[logp(Xθ)]=Zp(ZX,θ(t))logp(Xθ)dZ.=logp(Xθ)Zp(ZX,θ(t))dZ=logp(Xθ)1=logp(Xθ)
右边:
∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( X , Z ∣ θ ) d Z ⏟ Q ( θ , θ ( t ) ) − ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( Z ∣ X , θ ) d Z ⏟ H ( θ , θ ( t ) ) \underbrace{\int_{Z} p\left(Z | X, \theta^{(t)}\right) \log p(X, Z | \theta) d Z}_{Q\left(\theta, \theta^{(t)}\right)}-\underbrace{\int_{Z} p\left(Z | X, \theta^{(t)}\right) \log p(Z | X, \theta) d Z}_{H\left(\theta, \theta^{(t)}\right)} Q(θ,θ(t)) Zp(ZX,θ(t))logp(X,Zθ)dZH(θ,θ(t)) Zp(ZX,θ(t))logp(ZX,θ)dZ

所以:
log ⁡ p ( X ∣ θ ) = Q ( θ , θ t ) − H ( θ , θ t ) \log p(X|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t) logp(Xθ)=Q(θ,θt)H(θ,θt)
由于 Q ( θ , θ t ) = ∫ Z p ( Z ∣ X , θ t ) log ⁡ p ( X , Z ∣ θ ) d Z Q(\theta,\theta^t)=\int_Zp(Z|X,\theta^t)\log p(X,Z|\theta)dZ Q(θ,θt)=Zp(ZX,θt)logp(X,Zθ)dZ,而 θ t + 1 = a r g m a x θ ∫ Z log ⁡ [ p ( X , Z ∣ θ ) ] p ( Z ∣ X , θ t ) d Z \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_Z\log [p(X,Z|\theta)]p(Z|X,\theta^t)dZ θt+1=θargmaxZlog[p(X,Zθ)]p(ZX,θt)dZ,所以 Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t) Q(θt+1,θt)Q(θt,θt)

要证 log ⁡ p ( x ∣ θ t ) ≤ l o g p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1),还需证: H ( θ t , θ t ) ≥ H ( θ t + 1 , θ t ) H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t) H(θt,θt)H(θt+1,θt)
H ( θ ( t + 1 ) , θ ( t ) ) − H ( θ ( t ) , θ ( t ) ) = ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( Z ∣ X , θ ( t + 1 ) ) d Z − ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( Z ∣ X , θ ( t ) ) d Z = ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( Z ∣ X , θ ( t + 1 ) ) p ( Z ∣ X , θ ( t ) ) d Z = − K L ( p ( Z ∣ X , θ ( t ) ) ∥ p ( Z ∣ X , θ ( t + 1 ) ) ) ≤ 0 \begin{aligned} H\left(\theta^{(t+1)}, \theta^{(t)}\right)-H\left(\theta^{(t)}, \theta^{(t)}\right) &=\int_{Z} p\left(Z | X, \theta^{(t)}\right) \log p\left(Z | X, \theta^{(t+1)}\right) d Z-\int_{Z} p\left(Z | X, \theta^{(t)}\right) \log p\left(Z | X, \theta^{(t)}\right) d Z \\ &=\int_{Z} p\left(Z | X, \theta^{(t)}\right) \log \frac{p\left(Z | X, \theta^{(t+1)}\right)}{p\left(Z | X, \theta^{(t)}\right)} d Z \\ &=-K L\left(p\left(Z | X, \theta^{(t)}\right) \| p\left(Z | X, \theta^{(t+1)}\right)\right) \leq 0 \end{aligned} H(θ(t+1),θ(t))H(θ(t),θ(t))=Zp(ZX,θ(t))logp(ZX,θ(t+1))dZZp(ZX,θ(t))logp(ZX,θ(t))dZ=Zp(ZX,θ(t))logp(ZX,θ(t))p(ZX,θ(t+1))dZ=KL(p(ZX,θ(t))p(ZX,θ(t+1)))0

为什么Q不用KL?答:关于Q的比较,属于定义部分,本节第二个公式。

或者,我们也可以使用Jensen inequality。很显然,log 函数是一个concave 函数(凸函数),那么有 E [ l o g X ] ≤ l o g [ E [ X ] ] E[logX] \le log[E[X]] E[logX]log[E[X]],那么:
∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( Z ∣ X , ∣ θ ( t + 1 ) ) p ( Z ∣ X , θ ( t ) ) d Z = E Z ∼ p ( Z ∣ X , θ ( t ) ) [ log ⁡ p ( Z ∣ X , θ ( t + 1 ) ) p ( Z ∣ X , θ ( t ) ) ] ≤ log ⁡ [ E Z ∼ p ( Z ∣ X , θ ( t ) ) [ p ( Z ∣ X , θ ( t + 1 ) ) p ( Z ∣ X , θ ( t ) ) ] ] = log ⁡ [ ∫ Z p ( Z ∣ X , θ ( t ) ) [ p ( Z ∣ X , θ ( t + 1 ) ) p ( Z ∣ X , θ ( t ) ) ] d Z ] = log ⁡ ∫ Z p ( Z ∣ X , θ ( t + 1 ) ) d Z = 0 \begin{aligned} \int_{Z} p\left(Z | X, \theta^{(t)}\right) \log \frac{p\left(Z|X,| \theta^{(t+1)}\right)}{p\left(Z | X, \theta^{(t)}\right)} d Z &=\mathbb{E}_{Z \sim p\left(Z | X, \theta^{(t)}\right)}\left[\log \frac{p\left(Z | X, \theta^{(t+1)}\right)}{p\left(Z | X, \theta^{(t)}\right)}\right] \\ & \leq \log \left[\mathbb{E}_{Z \sim p\left(Z | X, \theta^{(t)}\right)}\left[\frac{p\left(Z | X, \theta^{(t+1)}\right)}{p\left(Z | X, \theta^{(t)}\right)}\right]\right] \\ &=\log \left[\int_{Z} p\left(Z | X, \theta^{(t)}\right)\left[\frac{p\left(Z | X, \theta^{(t+1)}\right)}{p\left(Z | X, \theta^{(t)}\right)}\right] d Z\right] \\ &=\log \int_{Z} p\left(Z | X, \theta^{(t+1)}\right) d Z \\ &=0 \end{aligned} Zp(ZX,θ(t))logp(ZX,θ(t))p(ZX,θ(t+1))dZ=EZp(ZX,θ(t))[logp(ZX,θ(t))p(ZX,θ(t+1))]log[EZp(ZX,θ(t))[p(ZX,θ(t))p(ZX,θ(t+1))]]=log[Zp(ZX,θ(t))[p(ZX,θ(t))p(ZX,θ(t+1))]dZ]=logZp(ZX,θ(t+1))dZ=0
综合上面的结果:
p ( X ∣ θ t ) ≤ log ⁡ p ( X ∣ θ t + 1 ) p(X|\theta^t)\le\log p(X|\theta^{t+1}) p(Xθt)logp(Xθt+1)那么,经过每次的迭代,似然函数在不断的增大。这就证明了我们的更新是有效的,也证明了算法是收敛的。

在这里插入图片描述

2 导出公式

机器学习中,所谓的模型实际上就可以看成是一堆的参数。根据极大似然估计的思想,我们要求解的对象是: θ M L E = l o g P ( X ∣ θ ) \theta_{MLE}=logP(X|\theta) θMLE=logP(Xθ)其中, X X X 为observed data; Z Z Z 为latent data; ( X ; Z ) (X;Z) (X;Z) 为complete data; θ \theta θ 为parameter。
那么,EM 公式就被我们描述为: θ t + 1 = a r g m a x θ ∫ Z log ⁡ [ p ( X , Z ∣ θ ) ] p ( Z ∣ X , θ t ) d Z \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_Z\log[p(X,Z|\theta)]p(Z|X,\theta^t)dZ θt+1=θargmaxZlog[p(X,Zθ)]p(ZX,θt)dZEM 算法可以被我们分解成 E-step 和 M-step 两个部分。

  • E-step: P ( Z ∣ X , θ ( t ) ) ⟶ E Z ∼ P ( Z ∣ X , θ ( t ) ) [ log ⁡ P ( X , Z ∣ θ ) ] P\left(Z | X, \theta^{(t)}\right) \longrightarrow \mathbb{E}_{Z \sim P\left(Z | X, \theta^{(t)}\right)}[\log P(X, Z | \theta)] P(ZX,θ(t))EZP(ZX,θ(t))[logP(X,Zθ)]

  • M-step: θ ( t + 1 ) = arg ⁡ max ⁡ θ E Z ∼ P ( Z ∣ X , θ ( t ) ) [ log ⁡ P ( X , Z ∣ θ ) ] \theta^{(t+1)}=\arg \max _{\theta} \mathbb{E}_{Z \sim P\left(Z | X, \theta^{(t)}\right)}[\log P(X, Z | \theta)] θ(t+1)=argmaxθEZP(ZX,θ(t))[logP(X,Zθ)]

前面我们已经证明了EM 算法的收敛性了,也就是:
log ⁡ p ( X ∣ θ t ) ≤ log ⁡ p ( X ∣ θ t + 1 ) \log p(X|\theta^t)\le\log p(X|\theta^{t+1}) logp(Xθt)logp(Xθt+1)收敛性告诉了我们算法确实是有效的,我们可以放心的去使用它。而大家会不会觉得这个公式的得来有点懵逼?懵逼就对了,那么下一步,我们的目标就是要推导出EM 算法究竟是怎么来的,给出一个理论的证明

2.1 从KL Divergence 进行分析

这是个什么东西呢?中文名字叫做“证据下界”。这个名字读起来似乎有一点点奇怪。我们首先看看它是怎么来的。

首先,我们定义一个有关于表示层 Z Z Z 的表示层变量 q ( Z ) q(Z) q(Z) q ( Z ) q(Z) q(Z) 可以表示任何一个变量
log ⁡ P ( X ∣ θ ) = log ⁡ P ( X , Z ∣ θ ) − log ⁡ P ( Z ∣ X , θ ) = log ⁡ P ( X , Z ∣ θ ) Q ( Z ) − log ⁡ P ( Z ∣ X , θ ) Q ( Z ) \begin{aligned} \log P(X | \theta) &=\log P(X, Z | \theta)-\log P(Z | X, \theta) \\ &=\log \frac{P(X, Z | \theta)}{Q(Z)}-\log \frac{P(Z | X, \theta)}{Q(Z)} \end{aligned} logP(Xθ)=logP(X,Zθ)logP(ZX,θ)=logQ(Z)P(X,Zθ)logQ(Z)P(ZX,θ)两边同时对于 Q ( Z ) Q(Z) Q(Z) 求期望,我们可以得到:
左边:
∫ Z Q ( Z ) log ⁡ P ( X ∣ θ ) d Z = log ⁡ P ( X ∣ θ ) ∫ Z Q ( Z ) d Z = log ⁡ P ( X ∣ θ ) ⋅ 1 = log ⁡ P ( X ∣ θ ) \begin{aligned} \int_{Z} Q(Z) \log P(X | \theta) d Z &=\log P(X | \theta) \int_{Z} Q(Z) d Z \\ &=\log P(X | \theta) \cdot 1 \\ &=\log P(X | \theta) \end{aligned} ZQ(Z)logP(Xθ)dZ=logP(Xθ)ZQ(Z)dZ=logP(Xθ)1=logP(Xθ)
右边:
∫ Z Q ( Z ) log ⁡ P ( X , Z ∣ θ ) Q ( Z ) d Z ⏟ E L B O − ∫ Z Q ( Z ) log ⁡ P ( Z ∣ X , θ ) Q ( Z ) d Z ⏟ K L \underbrace{\int_{Z} Q(Z) \log \frac{P(X, Z | \theta)}{Q(Z)} d Z}_{E L B O}-\underbrace{\int_{Z} Q(Z) \log \frac{P(Z | X, \theta)}{Q(Z)} d Z}_{K L} ELBO ZQ(Z)logQ(Z)P(X,Zθ)dZKL ZQ(Z)logQ(Z)P(ZX,θ)dZEvidence Lower Bound(ELBO),是一个下界,所以, log ⁡ P ( X ∣ θ ) = E L B O + K L ( Q ∣ ∣ P ) \log P(X | \theta)=ELBO+KL(Q||P) logP(Xθ)=ELBO+KL(QP)。其中, P ( Z ∣ X , θ ) P(Z|X,\theta) P(ZX,θ)为后验分布(Posterior)。并
且,KL 散度的值一定是大于零的。所以, E L B O ≤ l o g P ( X , θ ) ELBO \leq log P(X,\theta) ELBOlogP(X,θ),当且仅当 P ( Z ∣ X , θ ) = Q ( Z ) P(Z|X,\theta)= Q(Z) P(ZX,θ)=Q(Z) 时等号成立。
EM 算法的一个想法就是想让 ELBO 不断的增加,从而使 l o g P ( X ∣ θ ) log P(X|\theta) logP(Xθ)不断的变大的一种攀爬的迭代方法

l o g P ( X ∣ θ ) log P(X | \theta) logP(Xθ) 是固定的吗?为什么只是让ELBO增大?

那么,我们对下界进行优化,使下界尽可能的变大,就可以使目标函数不断的上升,那么我们可以得到: θ ^ = arg ⁡ max ⁡ θ E L B O = arg ⁡ max ⁡ θ ∫ Q ( Z ) log ⁡ P ( X , Z ∣ θ ) Q ( Z ) d Z \hat{\theta}=\arg \max _{\theta} E L B O=\arg \max _{\theta} \int Q(Z) \log \frac{P(X, Z | \theta)}{Q(Z)} d Z θ^=argθmaxELBO=argθmaxQ(Z)logQ(Z)P(X,Zθ)dZ因此,实际上也就是用ELBO去逼近 l o g P ( X , θ ) log P(X,\theta) logP(X,θ),寻找最合适的Q,如果要使得 E L B O = l o g P ( X , θ t ) ELBO= log P(X,\theta^t) ELBO=logP(X,θt),则需要 P ( Z ∣ X , θ t ) = Q ( Z ) P(Z|X,\theta^t)= Q(Z) P(ZX,θt)=Q(Z)如何求 Q ( Z ) Q(Z) Q(Z) 见变分推断
下面使用图来帮助理解EM 算法的一个核心:
在这里插入图片描述
在这里插入图片描述

在某一时刻 θ t \theta^t θt ,我们可以的得到一个关于 θ \theta θ 的函数:
log ⁡ P ( X ∣ θ ( t ) ) = ∫ Z Q ( Z ) log ⁡ P ( X , Z ∣ θ ) Q ( Z ) d Z − ∫ Z Q ( Z ) log ⁡ P ( Z ∣ X , θ ( t ) ) Q ( Z ) d Z \log P\left(X | \theta^{(t)}\right)=\int_{Z} Q(Z) \log \frac{P(X, Z | \theta)}{Q(Z)} d Z-\int_{Z} Q(Z) \log \frac{P\left(Z | X, \theta^{(t)}\right)}{Q(Z)} d Z logP(Xθ(t))=ZQ(Z)logQ(Z)P(X,Zθ)dZZQ(Z)logQ(Z)P(ZX,θ(t))dZ由于想让 ELBO 更大,此时 l o g P ( X ∣ θ t ) logP(X|\theta^t) logP(Xθt) 是一个定值,那么也就是想让 KL 散度的值越小。所以,我们想让 KL 散度的值为零,也就是让 Q ( Z ) = P ( X ∣ Z , θ t ) Q(Z) = P(X|Z,\theta^t) Q(Z)=P(XZ,θt)。这一步实际上就是 Q ( Z ) Q(Z) Q(Z) 的过程,在图上表示就是上面两幅图,使得 ELBO 与 l o g P ( X ∣ θ ) logP(X|\theta) logP(Xθ) 相交。这样我们在固定了 θ t \theta^t θt 之后就得到了一个 ELBO 关于 θ \theta θ 的函数。然后我们找到这个函数令值最大的 θ t + 1 \theta^{t+1} θt+1 后开始进行下一步迭代。
在这里插入图片描述
实际上我们的目的就是在不断的优化 ELBO,使 ELBO 不断的变大,那么我们想要的结果自然也就变大了,这是一个间接优化的方法。整个迭代算法的流程如下图:
在这里插入图片描述
那么
θ ^ = arg ⁡ max ⁡ θ ∫ Q ( Z ) log ⁡ P ( X , Z ∣ θ ) Q ( Z ) d Z = arg ⁡ max ⁡ θ ∫ P ( Z ∣ X , θ ( t ) ) log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) d Z = arg ⁡ max ⁡ θ ∫ P ( Z ∣ X , θ ( t ) ) [ log ⁡ P ( X , Z ∣ θ ) − log ⁡ P ( Z ∣ X , θ ( t ) ) ] d Z \begin{aligned} \hat{\theta} &=\arg \max _{\theta} \int Q(Z) \log \frac{P(X, Z | \theta)}{Q(Z)} d Z \\ &=\arg \max _{\theta} \int P\left(Z|X , \theta^{(t)}\right) \log \frac{P(X, Z | \theta)}{P\left( Z|X , \theta^{(t)}\right)} d Z \\ &=\arg \max _{\theta} \int P\left(Z|X , \theta^{(t)}\right) [\log P(X, Z | \theta)-\log P\left(Z|X , \theta^{(t)}\right)] d Z \end{aligned} θ^=argθmaxQ(Z)logQ(Z)P(X,Zθ)dZ=argθmaxP(ZX,θ(t))logP(ZX,θ(t))P(X,Zθ)dZ=argθmaxP(ZX,θ(t))[logP(X,Zθ)logP(ZX,θ(t))]dZ
由于 P ( Z ∣ X , θ ( t ) ) P\left( Z|X , \theta^{(t)}\right) P(ZX,θ(t)) θ \theta θ 的求解无关( θ ( t ) \theta^{(t)} θ(t) θ \theta θ无关)。所以我们可以直接省略掉。那么下一步的 θ t + 1 \theta^{t+1} θt+1 的表达自然也就是:
θ ( t + 1 ) = arg ⁡ max ⁡ θ ∫ Z P ( Z ∣ X , θ ( t ) ) log ⁡ P ( X , Z ∣ θ ) d Z = arg ⁡ max ⁡ θ E Z ∼ P ( Z ∣ X , θ ( t ) ) [ log ⁡ P ( X , Z ∣ θ ) ] \begin{aligned} \theta^{(t+1)} &=\arg \max _{\theta} \int_{Z} P\left( Z|X , \theta^{(t)}\right) \log P(X, Z | \theta) d Z \\ &=\arg \max _{\theta} \mathbb{E}_{Z \sim P\left(Z | X, \theta^{(t)}\right)}[\log P(X, Z | \theta)] \end{aligned} θ(t+1)=argθmaxZP(ZX,θ(t))logP(X,Zθ)dZ=argθmaxEZP(ZX,θ(t))[logP(X,Zθ)]

整个EM算法流程
在这里插入图片描述

2.2 从Jensen Inequality 的角度进行分析

首先,我们介绍一下什么是Jensen Inequality。实际上,进行过一些机器学习理论研究的同学,都应该听说过这个概念。在这里我们做一个简述。首先我们需要保证函数是一个凸函数,下面我们来画一个凸函数:
在这里插入图片描述
那么对于一个 t ∈ [ 0 , 1 ] , c = t a + ( 1 − t ) b t \in [0,1],c = ta + (1-t)b t[0,1]c=ta+(1t)b,我们都可以得到:
f ( c ) = f [ t a + ( 1 − t ) b ] ≥ t f ( a ) + ( 1 − t ) f ( b ) f(c) = f[ta + (1 - t)b] \geq tf (a) + (1- t)f(b) f(c)=f[ta+(1t)b]tf(a)+(1t)f(b)当 t = 1/2 时,我们可以得到: f ( ( a + b ) 2 ) ≥ 1 2 [ f ( a ) + f ( b ) ] f [ E ] ≥ E [ f ] f\left(\frac{(a+b)}{2}\right) \geq \frac{1}{2}[f(a)+f(b)] \quad f[E] \geq E[f] f(2(a+b))21[f(a)+f(b)]f[E]E[f]也就是均值的函数大于函数值的均值

所以,我们可以利用Jensen Inequality 进行推导:
log ⁡ P ( X ∣ θ ) = log ⁡ ∫ z P ( X , Z ∣ θ ) d Z = log ⁡ ∫ z Q ( Z ) P ( X , Z ∣ θ ) Q ( Z ) d Z = log ⁡ E Z ∼ Q ( Z ) [ P ( X , Z ∣ θ ) Q ( Z ) ] ≥ E Z ∼ Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) Q ( Z ) ] \begin{aligned} \log P(X | \theta) &=\log \int_{z} P(X, Z | \theta) d Z \\ &=\log \int_{z} Q(Z) \frac{P(X, Z | \theta)}{Q(Z)} d Z \\ &=\log \mathbb{E}_{Z \sim Q(Z)}\left[\frac{P(X, Z | \theta)}{Q(Z)}\right] \\ & \geq \mathbb{E}_{Z \sim Q(Z)}\left[\log \frac{P(X, Z | \theta)}{Q(Z)}\right] \end{aligned} logP(Xθ)=logzP(X,Zθ)dZ=logzQ(Z)Q(Z)P(X,Zθ)dZ=logEZQ(Z)[Q(Z)P(X,Zθ)]EZQ(Z)[logQ(Z)P(X,Zθ)]
对比上节结果,他就是ELBO,现在来验证 Q ( Z ) Q(Z) Q(Z) 是不是等于后验 P ( X ∣ Z , θ t ) P(X|Z,\theta^t) P(XZ,θt)

根据Jensen Inequality 的定义,当 P ( X , Z ∣ θ ) Q ( Z ) = C \frac{P(X, Z | \theta)}{Q(Z)}=C Q(Z)P(X,Zθ)=C 时可以取得等号。毫无疑问,当我们取等时,可以达到最大。所以有,
P ( X , Z ∣ θ ) Q ( Z ) = C Q ( Z ) = 1 C P ( X , Z ∣ θ ) ∫ Z Q ( Z ) d Z = 1 C ∫ Z P ( X , Z ∣ θ ) d Z 1 = 1 C P ( X ∣ θ ) \begin{array}{c} \frac{P(X, Z | \theta)}{Q(Z)}=C \\ \\ Q(Z)=\frac{1}{C} P(X, Z | \theta) \\ \\ \int_{Z} Q(Z) d Z=\frac{1}{C} \int_{Z} P(X, Z | \theta) d Z \\ \\ 1=\frac{1}{C} P(X | \theta) \end{array} Q(Z)P(X,Zθ)=CQ(Z)=C1P(X,Zθ)ZQ(Z)dZ=C1ZP(X,Zθ)dZ1=C1P(Xθ)所以,我们就可以得到: Q ( Z ) = P ( X , Z ∣ θ ) P ( X ∣ θ ) = P ( Z ∣ X , θ ) Q(Z)=\frac{P(X, Z | \theta)}{P(X|\theta)}=P(Z| X, \theta) Q(Z)=P(Xθ)P(X,Zθ)=P(ZX,θ)
所以,大家有没有惊奇的发现,这个 Q(Z) 实际上就是Posterior。当时我们随便引入的一个分布Q(Z),没想到当它取等的时候就是后验分布。那么像不断去优化这个ELBO,从而使得 P ( X ∣ θ ) P(X|\theta) P(Xθ) 的值不断的增加。由于,我们是迭代式的上升这里的 P ( Z ∣ X , θ t ) P(Z| X, \theta^t) P(ZX,θt),而 θ t \theta^t θt 是上一次迭代得到的,我们可以认为是一个常数。所以,
E Z ∼ Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) Q ( Z ) ] = E Z ∼ Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) ] \begin{array}{c} \mathbb{E}_{Z \sim Q(Z)}\left[\log \frac{P(X, Z | \theta)}{Q(Z)}\right]=\mathbb{E}_{Z \sim Q(Z)}\left[\log \frac{P(X, Z | \theta)}{P\left(Z | X, \theta^{(t)}\right)}\right] \end{array} EZQ(Z)[logQ(Z)P(X,Zθ)]=EZQ(Z)[logP(ZX,θ(t))P(X,Zθ)]所以
θ ( t + 1 ) = arg ⁡ max ⁡ θ E Z ∼ Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) ] \begin{array}{c} \theta^{(t+1)}=\arg \max _{\theta} \mathbb{E}_{Z \sim Q(Z)}\left[\log \frac{P(X, Z | \theta)}{P\left(Z | X, \theta^{(t)}\right)}\right] \end{array} θ(t+1)=argmaxθEZQ(Z)[logP(ZX,θ(t))P(X,Zθ)]​所以,从Jensen Inequality 的角度,我们仍然可以得到 EM 算法的核心表达式

2.3 小结

在最后,我们再来梳理一下EM 算法的实现思想。我们的目标是想使 P ( X ∣ θ ) P(X|\theta) P(Xθ) 似然函数值最大。但是,很不幸,我们直接优化非常的难。所以,我们想到了一个优化下降的方法。对于每一个 θ t \theta^t θt 时,我们可以计算得到下界为: E Z ∼ Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) P ( Z ∣ X , θ ( t ) ) ] \mathbb{E}_{Z \sim Q(Z)}\left[\log \frac{P(X, Z | \theta)}{P\left(Z | X, \theta^{(t)}\right)}\right] EZQ(Z)[logP(ZX,θ(t))P(X,Zθ)]。这个值最大我们就得到了,想要求得的 θ t + 1 \theta^{t+1} θt+1。然后,按这个思路,不断的进行迭代。

EM算法的主要工作是去求 P ( X ∣ θ ) P(X|\theta) P(Xθ) 中的 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)。这里实际上是假设使用MLE: θ M L E = a r g m a x θ log ⁡ p ( X ∣ θ ) \theta_{MLE}=\mathop{argmax}\limits_\theta\log p(X|\theta) θMLE=θargmaxlogp(Xθ)。但是我们不能直接解,因为不知道 X X X 服从什么分布,所以我们需要引入一个归纳偏置(假设其服从某个模型),假设存在一个隐变量 Z Z Z 能够生成 X X X,因此 p ( X ) = ∫ Z p ( X , Z ) d Z p(X)=\int_Z p(X, Z)d Z p(X)=Zp(X,Z)dZ

3 广义EM

本小节中,我们想要介绍三个方便的知识点。

  1. 从狭义的EM 算法推广到广义的EM 算法;
  2. 狭义的EM 实际上只是广义的EM 的一个特例;
  3. 真正的开始介绍EM 算法。

X : O b s e r v e d V a r i a b l e ⟶ X = { x i } i = 1 N X: Observed Variable ⟶ X=\left\{x_{i}\right\}_{i=1}^{N} X:ObservedVariableX={xi}i=1N
Z : L a t e n t V a r i a b l e ⟶ Z = { Z i } i = 1 N Z: Latent Variable ⟶ Z=\left\{Z_{i}\right\}_{i=1}^{N} Z:LatentVariableZ={Zi}i=1N
( X , Z ) (X,Z) (X,Z): Complete Model
θ \theta θ: Model Parameter
我们希望得到一个参数 θ \theta θ,可以来推导出 X X X ,也就是 P ( X ∣ θ ) P(X|\theta) P(Xθ) 。而这个参数怎么求得呢?所以,这就是一个learning 的问题了。

3.1 极大似然估计

所以,根据极大似然估计法的思路,我们要求的最优化参数 θ ^ \hat{\theta} θ^ 为:
θ ^ = arg ⁡ max ⁡ θ P ( X ∣ θ ) = arg ⁡ max ⁡ θ ∏ i = 1 N P ( x i ∣ θ ) = arg ⁡ max ⁡ θ ∑ i = 1 N log ⁡ P ( x i ∣ θ ) \begin{aligned} \hat{\theta} &=\arg \max _{\theta} P(X | \theta) \\ &=\arg \max _{\theta} \prod_{i=1}^{N} P\left(x_{i} | \theta\right) \\ &=\arg \max _{\theta} \sum_{i=1}^{N} \log P\left(x_{i} | \theta\right) \end{aligned} θ^=argθmaxP(Xθ)=argθmaxi=1NP(xiθ)=argθmaxi=1NlogP(xiθ)好像,我们这样做就可以解决问题了呀。为什么要多此一举的来引入隐变量 Z Z Z?这是因为,我们实际观察的输入空间 X \mathcal{X} X 的分布 P ( X ) P(X) P(X),是非常复杂的。可能什么规律都找不出来,这时我们就想到了一个很好的解决办法。我们引入了一个隐变量 Z Z Z,这个变量中包含了我们自己的一些归纳总结,引入了内部结构。而 P ( X ) = ∫ Z P ( X , Z ) d Z P(X)=\int_{Z} P(X, Z) d Z P(X)=ZP(X,Z)dZ,实际上就是对 X X X 进行了分解处理。

3.2 广义的EM 算法

EM 算法是为了解决参数估计问题,也就是learning 问题: θ ^ = arg ⁡ max ⁡ θ P ( X ∣ θ ) \hat{\theta}=\arg \max _{\theta} P(X | \theta) θ^=argmaxθP(Xθ)
但是, P ( X ∣ θ ) P(X | \theta) P(Xθ) 可能会非常的复杂。那么,在生成模型的思路中,可以假设一个隐变量Z。有了这个生成模型的假设以后,我们就可以引入一些潜在归纳出的结构进去。通过 P ( X ) = P ( X , Z ) P ( Z ∣ X ) P(X)=\frac{P(X, Z)}{P(Z | X)} P(X)=P(ZX)P(X,Z)​,就可以把问题具体化了。

这里说明一下,我们习惯用的表达是 P ( X ∣ θ ) P(X | \theta) P(Xθ),但是也有的文献中使用 P ( X ; θ ) P(X ; \theta) P(X;θ) 或者 P θ ( X ) P_{ \theta}(X) Pθ(X) 。这三种表达方式代表的意义是等价的。

前面我们已经说过了,我们的目标是:
log ⁡ P ( X ∣ θ ) = E L B O ⏟ L ( Q , θ ) + K L ( Q ∥ P ) ≥ L ( Q , θ ) { E L B O = ∫ Z Q ( Z ) log ⁡ P ( X , Z ∣ θ ) Q ( Z ) d Z K L ( Q ∥ P ) = ∫ Z Q ( Z ) log ⁡ Q ( Z ) P ( Z ∣ X , θ ) d Z l \begin{array}{l} \log P(X | \theta)=\underbrace{E L B O}_{L(Q, \theta)}+K L(Q \| P) \geq L(Q, \theta) \\ \left\{\begin{array}{l} E L B O=\int_{Z} Q(Z) \log \frac{P(X, Z | \theta)}{Q(Z)} d Z \\ K L(Q \| P)=\int_{Z} Q(Z) \log \frac{Q(Z)}{P(Z | X, \theta)} d Z \end{array}\right. \end{array}{l} logP(Xθ)=L(Q,θ) ELBO+KL(QP)L(Q,θ){ELBO=ZQ(Z)logQ(Z)P(X,Zθ)dZKL(QP)=ZQ(Z)logP(ZX,θ)Q(Z)dZl但是,问题马上就上来了,那就是 P ( X ∣ θ ) P(X | \theta) P(Xθ) 非常有可能求不出来。那么我们怎么来求解这个方程呢?也就是使下界变得更大。

我们之前假定 Q ( Z ) = P ( Z ∣ X , θ ) Q(Z) = P(Z | X, \theta) Q(Z)=P(ZX,θ) ,但实际上 P ( Z ∣ X , θ t ) P(Z | X, \theta^t) P(ZX,θt)intractable 的,如果生成模型较复杂,则无法求出 P ( Z ∣ X , θ t ) P(Z | X, \theta^t) P(ZX,θt)。因此 Q ( Z ) Q(Z) Q(Z) 无法直接取到 P ( Z ) P(Z) P(Z) ,需要进行优化,逐渐接近 P ( Z ) P(Z) P(Z)

首先第一步,我们把 θ \theta θ 给固定住。那么, P ( Z ∣ X , θ ) P(Z|X, \theta) P(ZX,θ) 的结果就是一个定值。那么由于 l o g P ( X ∣ θ ) log P(X | \theta) logP(Xθ) 不变,所以 KL 越小,ELBO 就会越大。由于,Q(Z) 是我们引入的一个中间变量,那么我们的第一步就是得到: Q ^ ( Z ) = arg ⁡ min ⁡ Q K L ( Q ∥ P ) = arg ⁡ max ⁡ Q L ( Q , θ ) \hat{Q}(Z)=\arg \min _{Q} K L(Q \| P)=\arg \max _{Q} L(Q, \theta) Q^(Z)=argQminKL(QP)=argQmaxL(Q,θ)当 Q 被我们求出来以后,我们就可以将Q 固定了,再来求解 θ \theta θ θ ^ = arg ⁡ max ⁡ θ L ( q ^ , θ ) \hat{\theta}=\arg \max _{\theta} L(\hat{q}, \theta) θ^=argθmaxL(q^,θ)那么,广义的EM 算法,就可以被我们定义为:
E − step : Q ( t + 1 ) = arg ⁡ max ⁡ Q L ( Q ( Z ) , θ ( t ) ) M − step : θ ( t + 1 ) = arg ⁡ max ⁡ θ L ( Q ( Z ) ( t + 1 ) , θ ) L ( Q , θ ) = E Q [ log ⁡ P ( X , Z ) − log ⁡ Q ] = E Q [ log ⁡ P ( X , Z ) ] − E Q [ log ⁡ Q ] \begin{array}{l} E-\text {step}: Q^{(t+1)}=\arg \max _{Q} L\left(Q(Z), \theta^{(t)}\right) \\ M-\text {step}: \quad \theta^{(t+1)}=\arg \max _{\theta} L\left(Q(Z)^{(t+1)}, \theta\right) \\ L(Q, \theta)=\mathbb{E}_{Q}[\log P(X, Z)-\log Q]=\mathbb{E}_{Q}[\log P(X, Z)]-\mathbb{E}_{Q}[\log Q] \end{array} Estep:Q(t+1)=argmaxQL(Q(Z),θ(t))Mstep:θ(t+1)=argmaxθL(Q(Z)(t+1),θ)L(Q,θ)=EQ[logP(X,Z)logQ]=EQ[logP(X,Z)]EQ[logQ]

这里注意 θ ( t ) \theta^{(t)} θ(t) θ \theta θ 是如何作用的?
为什么在E步要增大ELBO?是要保证KL趋向于0吗(即Q(Z)近似于P(Z))?控制ELBO和KL中的一个,优化另一个?

看到这里,我估计大家已经可以理解上一小节中,为什么有的 θ \theta θ 带(t) 有的不带。因为,首先第一步中是固定 θ \theta θ 求Q,这里的 θ \theta θ 就是来自于上一次迭代的 θ t \theta^{t} θt。第二次,是将上一步求得的Q 固定,将 θ \theta θ 看成参数,来求最优的表达结果的 θ t + 1 \theta^{t+1} θt+1。另一个方面,从上面的第三个公式,我们可以看出实际上:
E L B O = E Q ( Z ) [ log ⁡ P ( X , Z ∣ θ ) ] + H ( Q ( Z ) ) E L B O=\mathbb{E}_{Q(Z)}[\log P(X, Z | \theta)]+H(Q(Z)) ELBO=EQ(Z)[logP(X,Zθ)]+H(Q(Z))我们对比一下上一节讲到的EM 算法,就会惊奇的发现,ELBO 中最后那个 H ( Q ( Z ) ) H(Q(Z)) H(Q(Z)) (就是熵, H ( P ) = E [ − l o g P ] H(P)=E[-logP] H(P)=E[logP])竟然不见了。这是为什么呢?其实也很好理解的。因为在M-step 中,我们假定 Q ( Z ) Q(Z) Q(Z) 已经是固定的了,那么显然 H [ Q ( Z ) ] H[Q(Z)] H[Q(Z)] 就是一个定值了,并且与我们的优化目标 θ \theta θ 之间并没有任何的关系,所以就被我们给省略掉了。
所以,本小节中引出了广义EM 算法,也说明了原来的EM 算法是广义EM 算法的一种特殊情况。

3.3 坐标上升法

EM 算法的整体描述如下所示: E − step : Q ( t + 1 ) = arg ⁡ max ⁡ Q L ( Q ( Z ) , θ ( t ) ) M − step : θ ( t + 1 ) = arg ⁡ max ⁡ θ L ( Q ( Z ) ( t + 1 ) , θ ) \begin{array}{ll} E-\text {step}: & Q^{(t+1)}=\arg \max _{Q} L\left(Q(Z), \theta^{(t)}\right) \\ M-\text {step}: & \theta^{(t+1)}=\arg \max _{\theta} L\left(Q(Z)^{(t+1)}, \theta\right) \end{array} Estep:Mstep:Q(t+1)=argmaxQL(Q(Z),θ(t))θ(t+1)=argmaxθL(Q(Z)(t+1),θ)这个坐标上升法(SMO) 是个什么东西呢?具体的描述,大家可以去网上找找资料看一看(固定一个,优化另一个,然后固定另一个,优化这个)。两者都是迭代的思路,在这里我们将它和梯度下降法的优化思路放在一起,做一个小小的对比。大家就会发现有什么不一样的地方,
在这里插入图片描述
我们发现坐标上升法的优化方向基本是恒定不变的,而梯度下降法的优化方向是随着梯度方向而不断发生改变的

讲到这里,好像一切都很完美,可以圆满的结束了。但是,很不幸的是,问题马上又来了。因为,现实生活中,并没有那么的容易,一切都没有我们想的那么的简单。实际上,有关 P ( Z ∣ X , θ ) P(Z|X,\theta) P(ZX,θ) 的计算,有可能会非常的复杂。所以,我们将采用变分推断(Variable Inference) 或者马尔可夫蒙特卡罗采样(Markov Chain Monte Carlo) 的方法来求解。结合起来以后就是 VBEM/VEMMCEM 。这里注意一下,Variable Inference 和Variable Bayes 实际上都是一种东西
当然,虽然 EM 算法看上去好像很厉害的样子。但是,没有一种算法可以一劳永逸的解决所有的问题。它一定存在优点,也一定有无法解决的问题。具体描述,大家可以去网上寻找相关的资料。

版权声明:本文为CSDN博主「AI路上的小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cengjing12/article/details/106480582

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值