预备知识

带隐变量的最大似然估计

假设有两个随机变量z\bold zx\bold x,二者存在相关性,显变量x\bold x能够被观测到,隐变量z\bold z无法被观测到。我们希望能够用一参数为θ\theta的模型来表达它们的关系。

通过实验,独立同分布地采集数据,得到数据集{xi}\{\bold x_i\},可以最大化似然函数L(θ)\mathcal L(\theta)优化这一模型(让样本出现概率尽可能大)。

L(θ)=logpθ(xi) \mathcal L (\theta) = -\sum \log p_\theta(\bold x_i)

然而由于模型中隐变量的存在,p(xi)p(\bold x_i)不可求。根据全概率公式,有下面的结果。这一积分一般情况下无法直接求解。

p(xi)=p(xiz)dz p(\bold x_i) = \int p(\bold x_i|\bold z) \mathrm d\bold z

Jensen不等式

对于凸函数f(x)f(x),随机变量XX,有

f(E[X])E[f(X)] f(\mathbb E[X]) \le \mathbb E[f(X)]

对于凹函数,则反过来。

KL散度

KL散度衡量两个概率分布的差异。

KL(q(x)p(x))q(x)logq(x)p(x)dx \mathrm{KL}(q(x) || p(x)) \triangleq \int q(x)\log \frac{q(x)}{p(x)}\mathrm{d}x

两个分布相等的时候,KL散度为0。可以用Jensen不等式证明KL散度是非负的。

从信息论的角度看,KL散度反映了用p(x)p(x)取代q(x)q(x)所损失的信息量。

q(x)logq(x)p(x)dx=q(x)logp(x)dx[q(x)logq(x)dx] \int q(x)\log \frac{q(x)}{p(x)}\mathrm{d}x = - \int q(x)\log p(x)\mathrm{d}x - \left[-\int q(x)\log q(x)\mathrm{d}x\right]

第一项是互信息,第二项是q(x)q(x)的信息。KL散度不是对称的,所以叫做“散度”(divergence)而不是“距离”(distance)。

引入变分分布

引入一个变分函数qϕ(zx)q_\phi(\bold z | \bold x),意义是估计隐变量z\bold z。这个函数应该和真实的p(zx)p(\bold z| \bold x)尽量接近,也就是最小化二者的KL散度KL(qϕ(zx)pθ(zx))\mathrm{KL}(q_\phi(\bold z|\bold x) || p_\theta(\bold z|\bold x))

最大化似然函数

回到似然函数上

logpθ(x)=logp(xz)p(z)dz=logq(zx)p(xz)p(z)q(zx)dz=logEzq(zx)[p(xz)p(z)q(zx)] Ezq(zx)[logp(xz)p(z)q(zx)] ELBO \begin{aligned} \log p_\theta(\bold x) =& \log \int p(\bold x|\bold z)p(\bold z) \mathrm d\bold z \\ =& \log \int q(\bold z| \bold x) \frac{p(\bold x | \bold z)p(\bold z)}{q(\bold z|\bold x)}\mathrm{d} \bold z \\ =& \log \mathbb E_{\bold z \sim q(\bold z|\bold x)}\left[\frac{p(\bold x | \bold z)p(\bold z)}{q(\bold z|\bold x)}\right] \\ \ge&\ \mathbb E_{\bold z \sim q(\bold z|\bold x)}\left[ \log \frac{p(\bold x | \bold z)p(\bold z)}{q(\bold z|\bold x)}\right] \\ \triangleq& \ \mathrm{ELBO} \end{aligned}

最大化ELBO就是在最大化似然函数。

最小化KL散度

KL(q(zx)p(zx))=q(zx)logq(zx)p(zx)dz= Ezq(zx)[logq(zx)p(zx)]= Ezq(zx)[logq(zx)p(zx)p(x)+logp(x)]=Ezq(zx)[logq(zx)p(xz)p(z)]+logp(x) \begin{aligned} &\mathrm{KL}(q(\bold z|\bold x) || p(\bold z|\bold x))\\ =& \int q(\bold z | \bold x)\log \frac{q(\bold z | \bold x)}{p(\bold z | \bold x)} \mathrm{d}\bold z \\ =&\ \mathbb E_{\bold z \sim q(\bold z| \bold x)} \left[ \log \frac{q(\bold z | \bold x)}{p(\bold z | \bold x)} \right] \\ =&\ \mathbb E_{\bold z \sim q(\bold z| \bold x)} \left[ \log \frac{q(\bold z | \bold x)}{p(\bold z | \bold x)p(\bold x) } + \log p(\bold x) \right] \\ =& \mathbb E_{\bold z \sim q(\bold z| \bold x)} \left[ \log \frac{q(\bold z | \bold x)}{p(\bold x | \bold z)p(\bold z) } \right] + \log p(\bold x) \end{aligned}

至此,我们已经得到了类似上一小节的结果。移项一下,就能得到

logp(x)=KLEzq(zx)[logq(zx)p(xz)p(z)]=KL+ELBO \log p(\bold x) = \mathrm{KL} - \mathbb E_{\bold z \sim q(\bold z| \bold x)} \left[ \log \frac{q(\bold z | \bold x)}{p(\bold x | \bold z)p(\bold z) }\right] = \mathrm{KL} + \mathrm{ELBO}

对于qϕq_\phi来说,p(x)p(\bold x)和它无关,所以最大化ELBO就是最小化KL。

优化

用小批量的随机梯度下降法(梯度上升法)来求解,ELBO里面的期望可以通过采样来计算。不需要交替优化θ\thetaϕ\phi,可以让它们协同训练。

当碰到类似问题的时候,比如最大似然估计的同时还要估计隐变量,就应该想到ELBO。

ELBO的进一步解释

把ELBO拆开,可以得到两项,一项是重构损失,一项是正则化项。