变分自编码器 VAE

一种隐变量生成模型,通过最大化数据似然的变分下界进行训练,配以摊销编码器与重参数化技巧。

变分自编码器(VAE)是一种隐变量生成模型。隐编码 zz 取自固定先验 p(z)=N(0,I)p(z)=\mathcal{N}(0,I),再经条件解码器 pθ(xz)p_\theta(x\mid z) 还原为数据。精确的极大似然不可行,因为边缘 pθ(x)=pθ(xz)p(z)dzp_\theta(x)=\int p_\theta(x\mid z)\,p(z)\,dz 没有闭式。VAE 引入一个逼近真实后验 pθ(zx)p_\theta(z\mid x)编码器 qϕ(zx)q_\phi(z\mid x),并通过变分推断联合训练两个网络。编码器与解码器构成一条单一前向通路:输入经编码器压成低维编码,再由解码器展开为重构,整条通路以同一个 ELBO 目标端到端训练。该框架由 Kingma 与 Welling 于 2013 年提出,至今仍是深度隐变量建模的基准方法之一。

直觉

把 VAE 想成一台带”瓶颈”的压缩器,但瓶颈处不是一串确定的比特,而是一团概率云。编码器看一眼数据 xx,回答”它大概落在隐空间的哪一带”——给出一个均值与一个宽度;解码器从这团云里抽一个点,试着把 xx 还原回来。训练逼着两件事同时成立:抽出来的点要能还原(编码必须有信息),而所有数据的编码云叠在一起又得铺满整个先验(隐空间不能有空洞)。前者让编码有用,后者让隐空间可采样——训练完直接从 p(z)p(z)zz 解码,就得到新数据。

x输入编码器 q_φ推断后验μ(x)σ(x)z = μ + σ ⊙ εε ~ N(0, I)z隐编码p(z) = N(0, I)先验KL(q_φ ‖ p)解码器 p_θ似然重构重构项ELBO = 重构 − KL(q ‖ p)

二维潜空间到生成样本的映射 —— 拖动光标即时解码:

二维潜空间 z(拖动光标)
解码生成结果 p(x|z)
z = (0.00, 0.00)
z₁ 控制展开程度z₂ 控制旋转与核心密度

在潜空间里拖动,生成结果随之平滑变化——这正是 VAE 的关键:连续的低维编码经解码器映射为数据,邻近的 z 解出相似的样本。(此处解码器为示意,非训练所得。)

其目标为证据下界(ELBO):

logpθ(x)    Eqϕ(zx) ⁣[logpθ(xz)]KL ⁣(qϕ(zx)p(z)).\log p_\theta(x)\;\ge\; \mathbb{E}_{q_\phi(z\mid x)}\!\big[\log p_\theta(x\mid z)\big] -\mathrm{KL}\!\big(q_\phi(z\mid x)\,\Vert\,p(z)\big).

第一项是重构项:由编码器采得的编码应能解码回 xxEqϕ(zx)\mathbb{E}_{q_\phi(z\mid x)} 表示”在编码器为这个 xx 给出的编码分布下取平均”,logpθ(xz)\log p_\theta(x\mid z) 是解码器赋予真实数据 xx 的对数似然——若解码器是方差固定的高斯,这一项就退化为负的平方重构误差。第二项是KL 散度惩罚,KL(qϕ(zx)p(z))\mathrm{KL}(q_\phi(z\mid x)\Vert p(z)) 度量逐样本后验 qϕ(zx)q_\phi(z\mid x) 偏离先验 p(z)p(z) 的程度,把每个编码云拉向以原点为中心的标准正态。logpθ(x)\log p_\theta(x) 与 ELBO 之间的间隙恰为 KL(qϕ(zx)pθ(zx))\mathrm{KL}(q_\phi(z\mid x)\Vert p_\theta(z\mid x)),因此收紧下界也使后验逼近更精确。

举个具体数:取一维隐变量,编码器对某个 xx 输出 μ=2, σ=0.5\mu=2,\ \sigma=0.5。对角高斯与标准正态之间的 KL 有闭式 12(μ2+σ21logσ2)\tfrac12(\mu^2+\sigma^2-1-\log\sigma^2),代入得 12(4+0.251log0.25)2.32\tfrac12(4+0.25-1-\log 0.25)\approx 2.32 nat——这就是把这枚编码”挪离”先验所付的代价。若编码器退回 μ=0, σ=1\mu=0,\ \sigma=1,KL 归零,但这枚编码也就不再携带任何关于 xx 的信息。重构项与 KL 项就在这条数轴上互相拉扯。

从证据到下界

该下界源自一个恒等式。在对数边缘内部乘除以 qϕ(zx)q_\phi(z\mid x),对所得期望施以 Jensen 不等式即直接得到 ELBO;等价地,对数证据可精确分解为

logpθ(x)=Eqϕ(zx) ⁣[logpθ(xz)]KL ⁣(qϕ(zx)p(z))ELBO  +  KL ⁣(qϕ(zx)pθ(zx)).\log p_\theta(x) = \underbrace{\mathbb{E}_{q_\phi(z\mid x)}\!\big[\log p_\theta(x\mid z)\big] -\mathrm{KL}\!\big(q_\phi(z\mid x)\,\Vert\,p(z)\big)}_{\text{ELBO}} \;+\;\mathrm{KL}\!\big(q_\phi(z\mid x)\,\Vert\,p_\theta(z\mid x)\big).

末项——近似后验 qϕ(zx)q_\phi(z\mid x) 与真实后验 pθ(zx)p_\theta(z\mid x) 之间的 KL 间隙——非负且不可观测(真实后验本身就算不出来),这正是 ELBO 只是下界而非证据本身的缘由。对 ϕ\phi 最大化 ELBO 会收缩此间隙;对 θ\theta 最大化则抬升证据。于是同一个量派生出两种损失:编码器被推向真实后验,解码器被推向更高似然。这条恒等式也解释了为何最大化下界是安全的——下界与真值之差是一个我们永远在缩小、绝不会让它变负的 KL。

直觉

两项的作用方向相反。重构项鼓励编码器把不同输入塞进彼此分离的编码;KL 项则鼓励编码器的输出模糊地融入先验。二者的权衡造就了一个既富含信息、又可平滑采样的隐空间。

优化 ELBO 需要对 qϕq_\phi 下的期望求梯度,可这个分布的参数本身又正是优化对象。直接对”分布参数决定的采样”求导无路可走。重参数化技巧把采样移出梯度路径:对高斯编码器 qϕ(zx)=N(μϕ(x),σϕ(x)2)q_\phi(z\mid x)=\mathcal{N}(\mu_\phi(x),\,\sigma_\phi(x)^2),样本写作

z=μϕ(x)+σϕ(x)ϵ,ϵN(0,I),z=\mu_\phi(x)+\sigma_\phi(x)\odot\epsilon, \qquad \epsilon\sim\mathcal{N}(0,I),

随机性只存于 ϵ\epsilonϕ\nabla_\phi 经链式法则穿过 μϕ,σϕ\mu_\phi,\sigma_\phi。这里 μϕ(x)\mu_\phi(x) 是编码云的中心、σϕ(x)\sigma_\phi(x) 是其宽度、\odot 是逐元素相乘、ϵ\epsilon 是与参数无关的噪声源。把噪声”外置”为 ϵ\epsilon 之后,梯度便能像穿过任何确定性运算那样穿过采样,从而以普通反向传播训练整条通路。

深入

编码器是摊销的:单一网络把任意 xx 映为其变分参数,而非对每个数据点单独优化一个后验。这种效率自有代价,可拆成两道间隙。摊销间隙是共享编码器所达 ELBO 与对每个 xx 独立优化自由后验所能达到的最优 ELBO 之差;一个必须在所有输入上泛化的网络,无法处处匹敌逐点优化。近似间隙则源于所选变分族(譬如对角高斯)可能根本无法表示真实后验——即便允许逐点优化,对角高斯也拟合不了一个有相关性或多峰的后验。二者叠加,共同决定了 ELBO 离真实证据有多远;提升表达力的变分族(如归一化流后验)压缩近似间隙,更强的编码器或测试时的后验微调压缩摊销间隙。

后验坍缩与 β\beta-VAE

VAE 特有的一种失效是后验坍缩:对某些隐坐标,编码器退回到先验 qϕ(zx)p(z)q_\phi(z\mid x)\approx p(z),于是这些坐标的 KL 项归零、不再携带关于 xx 的信息。当足够强的解码器无须查阅隐编码即可重构数据时便会如此(典型如自回归解码器,它能从已生成的部分自行补全,把隐编码当作可有可无的旁路),此时这些维度上唯一活跃的梯度仅剩 KL 惩罚,而 KL 惩罚把它们一路推回先验。重构尚可,隐表示却已退化成噪声。

对两项重新加权可直接暴露这一权衡。β\beta-VAE 以系数 β\beta 缩放 KL 项,

Lβ=Eqϕ(zx) ⁣[logpθ(xz)]βKL ⁣(qϕ(zx)p(z)),\mathcal{L}_\beta = \mathbb{E}_{q_\phi(z\mid x)}\!\big[\log p_\theta(x\mid z)\big] -\beta\,\mathrm{KL}\!\big(q_\phi(z\mid x)\,\Vert\,p(z)\big),

β=1\beta=1 处即还原标准 ELBO。β\beta 是 KL 项的权重:β>1\beta>1 加重隐分布向先验的拉力,β<1\beta<1 则放松它。β\beta 越大,隐分布越被拉向因子化先验,往往促进解耦——各坐标对齐于相互独立的变化因子——其代价是重构保真度。KL 项度量码率,即编码携带的关于 xx 的平均信息量(以 nat 计),重构项度量失真β\beta 勾勒出一条率失真曲线,后验坍缩即码率趋零的极端(β\beta 过大时所有坐标都被压回先验),而 β0\beta\to 0 则退化为不约束隐空间的普通自编码器。

在 Cryo-ET 重构中的位置

VAE 是把缺失楔形修复改写成生成问题的入门砖。它提供了三件后续方法反复借用的零件:用编码器摊销地推断隐表示、用 ELBO 把不可解的似然换成可优化的下界、用重参数化让随机通路可微。但 VAE 的逐样本 KL 把每个后验向先验膨胀,倾向于模糊重构——这在追求高分辨率结构的断层重构里是硬伤。后续路线正是从这里分叉:Wasserstein 自编码器以一个作用于聚合后验的散度取代逐样本 KL,往往得到更锐利的样本,也接通了 CryoGEN-II(WAE/OT 给出稳定单一答案)所走的最优传输路线;而把”单点重构”升级为”一族后验重构”的需求,则指向 CryoWGEN。读懂 VAE 的 ELBO 与其两道间隙,才能看清这些方法各自在松开哪一处约束。

← 生成与分布匹配