变分自编码器 VAE 一种隐变量生成模型,通过最大化数据似然的变分下界进行训练,配以摊销编码器与重参数化技巧。
建议先了解 变分推断与 ELBO 变分自编码器(VAE)是一种隐变量生成模型。隐编码 z z z 取自固定先验 p ( z ) = N ( 0 , I ) p(z)=\mathcal{N}(0,I) p ( z ) = N ( 0 , I ) ,再经条件解码器 p θ ( x ∣ z ) p_\theta(x\mid z) p θ ( x ∣ z ) 还原为数据。精确的极大似然不可行,因为边缘 p θ ( x ) = ∫ p θ ( x ∣ z ) p ( z ) d z p_\theta(x)=\int p_\theta(x\mid z)\,p(z)\,dz p θ ( x ) = ∫ p θ ( x ∣ z ) p ( z ) d z 没有闭式。VAE 引入一个逼近真实后验 p θ ( z ∣ x ) p_\theta(z\mid x) p θ ( z ∣ x ) 的编码器 q ϕ ( z ∣ x ) q_\phi(z\mid x) q ϕ ( z ∣ x ) ,并通过变分推断 联合训练两个网络。编码器与解码器构成一条单一前向通路:输入经编码器压成低维编码,再由解码器展开为重构,整条通路以同一个 ELBO 目标端到端训练。该框架由 Kingma 与 Welling 于 2013 年提出,至今仍是深度隐变量建模的基准方法之一。
直觉
把 VAE 想成一台带”瓶颈”的压缩器,但瓶颈处不是一串确定的比特,而是一团概率云。编码器看一眼数据 x x x ,回答”它大概落在隐空间的哪一带”——给出一个均值与一个宽度;解码器从这团云里抽一个点,试着把 x x x 还原回来。训练逼着两件事同时成立:抽出来的点要能还原(编码必须有信息),而所有数据的编码云叠在一起又得铺满整个先验(隐空间不能有空洞)。前者让编码有用 ,后者让隐空间可采样 ——训练完直接从 p ( z ) p(z) p ( z ) 抽 z z z 解码,就得到新数据。
x 输入 编码器 q_φ 推断后验 μ(x) σ(x) z = μ + σ ⊙ ε ε ~ N(0, I) z 隐编码 p(z) = N(0, I) 先验 KL(q_φ ‖ p) 解码器 p_θ 似然 x̂ 重构 重构项 ELBO = 重构 − KL(q ‖ p)
二维潜空间到生成样本的映射 —— 拖动光标即时解码:
解码生成结果 p(x|z)
z = (0.00, 0.00)
z₁ 控制展开程度 z₂ 控制旋转与核心密度
在潜空间里拖动,生成结果随之平滑变化——这正是 VAE 的关键:连续的低维编码经解码器映射为数据,邻近的 z 解出相似的样本。(此处解码器为示意,非训练所得。)
其目标为证据下界 (ELBO):
log p θ ( x ) ≥ E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − K L ( q ϕ ( z ∣ x ) ∥ 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). log p θ ( x ) ≥ E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) .
第一项是重构 项:由编码器采得的编码应能解码回 x x x 。E q ϕ ( z ∣ x ) \mathbb{E}_{q_\phi(z\mid x)} E q ϕ ( z ∣ x ) 表示”在编码器为这个 x x x 给出的编码分布下取平均”,log p θ ( x ∣ z ) \log p_\theta(x\mid z) log p θ ( x ∣ z ) 是解码器赋予真实数据 x x x 的对数似然——若解码器是方差固定的高斯,这一项就退化为负的平方重构误差。第二项是KL 散度 惩罚,K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \mathrm{KL}(q_\phi(z\mid x)\Vert p(z)) KL ( q ϕ ( z ∣ x ) ∥ p ( z )) 度量逐样本后验 q ϕ ( z ∣ x ) q_\phi(z\mid x) q ϕ ( z ∣ x ) 偏离先验 p ( z ) p(z) p ( z ) 的程度,把每个编码云拉向以原点为中心的标准正态。log p θ ( x ) \log p_\theta(x) log p θ ( x ) 与 ELBO 之间的间隙恰为 K L ( q ϕ ( z ∣ x ) ∥ p θ ( z ∣ x ) ) \mathrm{KL}(q_\phi(z\mid x)\Vert p_\theta(z\mid x)) KL ( q ϕ ( z ∣ x ) ∥ p θ ( z ∣ x )) ,因此收紧下界也使后验逼近更精确。
举个具体数:取一维隐变量,编码器对某个 x x x 输出 μ = 2 , σ = 0.5 \mu=2,\ \sigma=0.5 μ = 2 , σ = 0.5 。对角高斯与标准正态之间的 KL 有闭式 1 2 ( μ 2 + σ 2 − 1 − log σ 2 ) \tfrac12(\mu^2+\sigma^2-1-\log\sigma^2) 2 1 ( μ 2 + σ 2 − 1 − log σ 2 ) ,代入得 1 2 ( 4 + 0.25 − 1 − log 0.25 ) ≈ 2.32 \tfrac12(4+0.25-1-\log 0.25)\approx 2.32 2 1 ( 4 + 0.25 − 1 − log 0.25 ) ≈ 2.32 nat——这就是把这枚编码”挪离”先验所付的代价。若编码器退回 μ = 0 , σ = 1 \mu=0,\ \sigma=1 μ = 0 , σ = 1 ,KL 归零,但这枚编码也就不再携带任何关于 x x x 的信息。重构项与 KL 项就在这条数轴上互相拉扯。
从证据到下界
该下界源自一个恒等式。在对数边缘内部乘除以 q ϕ ( z ∣ x ) q_\phi(z\mid x) q ϕ ( z ∣ x ) ,对所得期望施以 Jensen 不等式即直接得到 ELBO;等价地,对数证据可精确分解为
log p θ ( x ) = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ⏟ ELBO + K L ( q ϕ ( z ∣ x ) ∥ p θ ( z ∣ x ) ) . \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). log p θ ( x ) = ELBO E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) + KL ( q ϕ ( z ∣ x ) ∥ p θ ( z ∣ x ) ) .
末项——近似后验 q ϕ ( z ∣ x ) q_\phi(z\mid x) q ϕ ( z ∣ x ) 与真实后验 p θ ( z ∣ x ) p_\theta(z\mid x) p θ ( z ∣ x ) 之间的 KL 间隙 ——非负且不可观测(真实后验本身就算不出来),这正是 ELBO 只是下界而非证据本身的缘由。对 ϕ \phi ϕ 最大化 ELBO 会收缩此间隙;对 θ \theta θ 最大化则抬升证据。于是同一个量派生出两种损失:编码器被推向真实后验,解码器被推向更高似然。这条恒等式也解释了为何最大化下界是安全的——下界与真值之差是一个我们永远在缩小、绝不会让它变负的 KL。
直觉
两项的作用方向相反。重构项鼓励编码器把不同输入塞进彼此分离的编码;KL 项则鼓励编码器的输出模糊地融入先验。二者的权衡造就了一个既富含信息、又可平滑采样的隐空间。
优化 ELBO 需要对 q ϕ q_\phi q ϕ 下的期望求梯度,可这个分布的参数本身又正是优化对象。直接对”分布参数决定的采样”求导无路可走。重参数化技巧 把采样移出梯度路径:对高斯编码器 q ϕ ( z ∣ x ) = N ( μ ϕ ( x ) , σ ϕ ( x ) 2 ) q_\phi(z\mid x)=\mathcal{N}(\mu_\phi(x),\,\sigma_\phi(x)^2) q ϕ ( z ∣ x ) = N ( μ ϕ ( x ) , σ ϕ ( x ) 2 ) ,样本写作
z = μ ϕ ( x ) + σ ϕ ( x ) ⊙ ϵ , ϵ ∼ N ( 0 , I ) , z=\mu_\phi(x)+\sigma_\phi(x)\odot\epsilon,
\qquad \epsilon\sim\mathcal{N}(0,I), z = μ ϕ ( x ) + σ ϕ ( x ) ⊙ ϵ , ϵ ∼ N ( 0 , I ) ,
随机性只存于 ϵ \epsilon ϵ ,∇ ϕ \nabla_\phi ∇ ϕ 经链式法则穿过 μ ϕ , σ ϕ \mu_\phi,\sigma_\phi μ ϕ , σ ϕ 。这里 μ ϕ ( x ) \mu_\phi(x) μ ϕ ( x ) 是编码云的中心、σ ϕ ( x ) \sigma_\phi(x) σ ϕ ( x ) 是其宽度、⊙ \odot ⊙ 是逐元素相乘、ϵ \epsilon ϵ 是与参数无关的噪声源。把噪声”外置”为 ϵ \epsilon ϵ 之后,梯度便能像穿过任何确定性运算那样穿过采样,从而以普通反向传播训练整条通路。
深入
编码器是摊销 的:单一网络把任意 x x x 映为其变分参数,而非对每个数据点单独优化一个后验。这种效率自有代价,可拆成两道间隙。摊销间隙 是共享编码器所达 ELBO 与对每个 x x x 独立优化自由后验所能达到的最优 ELBO 之差;一个必须在所有输入上泛化的网络,无法处处匹敌逐点优化。近似间隙 则源于所选变分族(譬如对角高斯)可能根本无法表示真实后验——即便允许逐点优化,对角高斯也拟合不了一个有相关性或多峰的后验。二者叠加,共同决定了 ELBO 离真实证据有多远;提升表达力的变分族(如归一化流后验)压缩近似间隙,更强的编码器或测试时的后验微调压缩摊销间隙。
后验坍缩与 β \beta β -VAE
VAE 特有的一种失效是后验坍缩 :对某些隐坐标,编码器退回到先验 q ϕ ( z ∣ x ) ≈ p ( z ) q_\phi(z\mid x)\approx p(z) q ϕ ( z ∣ x ) ≈ p ( z ) ,于是这些坐标的 KL 项归零、不再携带关于 x x x 的信息。当足够强的解码器无须查阅隐编码即可重构数据时便会如此(典型如自回归解码器,它能从已生成的部分自行补全,把隐编码当作可有可无的旁路),此时这些维度上唯一活跃的梯度仅剩 KL 惩罚,而 KL 惩罚把它们一路推回先验。重构尚可,隐表示却已退化成噪声。
对两项重新加权可直接暴露这一权衡。β \beta β -VAE 以系数 β \beta β 缩放 KL 项,
L β = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − β K L ( q ϕ ( z ∣ x ) ∥ 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), L β = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − β KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ,
在 β = 1 \beta=1 β = 1 处即还原标准 ELBO。β \beta β 是 KL 项的权重:β > 1 \beta>1 β > 1 加重隐分布向先验的拉力,β < 1 \beta<1 β < 1 则放松它。β \beta β 越大,隐分布越被拉向因子化先验,往往促进解耦 ——各坐标对齐于相互独立的变化因子——其代价是重构保真度。KL 项度量码率 ,即编码携带的关于 x x x 的平均信息量(以 nat 计),重构项度量失真 ;β \beta β 勾勒出一条率失真曲线,后验坍缩即码率趋零的极端(β \beta β 过大时所有坐标都被压回先验),而 β → 0 \beta\to 0 β → 0 则退化为不约束隐空间的普通自编码器。
在 Cryo-ET 重构中的位置
VAE 是把缺失楔形 修复改写成生成问题的入门砖。它提供了三件后续方法反复借用的零件:用编码器摊销 地推断隐表示、用 ELBO 把不可解的似然换成可优化的下界、用重参数化让随机通路可微。但 VAE 的逐样本 KL 把每个后验向先验膨胀,倾向于模糊重构——这在追求高分辨率结构的断层重构里是硬伤。后续路线正是从这里分叉:Wasserstein 自编码器 以一个作用于聚合 后验的散度取代逐样本 KL,往往得到更锐利的样本,也接通了 CryoGEN-II(WAE/OT 给出稳定单一答案 )所走的最优传输路线;而把”单点重构”升级为”一族后验重构”的需求,则指向 CryoWGEN 。读懂 VAE 的 ELBO 与其两道间隙,才能看清这些方法各自在松开哪一处约束。
← 生成与分布匹配