真实面经题目 · 原创解析
VAE 中的 V 表示什么,KL 散度在 VAE 里起什么作用?
VAE 的 V 是 Variational,表示用可学习的近似后验 q(z|x) 去逼近真实后验 p(z|x)。KL 散度是 ELBO 中的正则项,约束编码得到的潜变量分布接近先验,保证隐空间连续、可采样,同时与重构项形成清晰的生成质量和分布规整取舍。
真实面经题目 · 原创解析
VAE 的 V 是 Variational,表示用可学习的近似后验 q(z|x) 去逼近真实后验 p(z|x)。KL 散度是 ELBO 中的正则项,约束编码得到的潜变量分布接近先验,保证隐空间连续、可采样,同时与重构项形成清晰的生成质量和分布规整取舍。
VAE 是 Variational Autoencoder,V 表示 Variational,也就是用参数化的近似后验 qφ(z|x) 代替难以直接求的真实后验 p(z|x)。普通 AE 把样本编码成一个确定向量,VAE 编码成潜变量分布的参数,例如均值和方差,再从这个分布采样 z 解码重构 x。训练目标是最大化 ELBO,包含重构项和 KL 项;重构项让样本还原得好,KL 散度让 qφ(z|x) 接近先验 p(z),通常是标准正态。这样隐空间更连续、可采样,但 KL 权重过强会牺牲重构细节,过弱则隐空间不规整。
VAE 中的 Variational 来自变分推断。生成模型假设存在潜变量 z 生成样本 x,但真实后验 p(z|x) 往往难以直接计算,因此引入一个可学习的 qφ(z|x) 作为近似后验,并通过优化目标让它接近真实后验。
普通 AutoEncoder 通常把输入压缩成一个确定隐向量,再解码重构;VAE 的 encoder 输出的是分布参数,例如 μ 和 logσ²。训练时从该分布采样 z,让模型学习的是隐空间分布而不是单点编码,因此具备生成新样本的基础。
VAE 训练最大化 Evidence Lower Bound。常见写法可以理解为重构收益减去 KL 惩罚:重构项衡量解码器能否从 z 还原 x,KL 项衡量 qφ(z|x) 与先验 p(z) 的距离。优化 ELBO 等价于在可计算下界上逼近最大似然。
KL 散度把每个样本的近似后验拉向统一先验,通常是标准正态。它避免 encoder 为每个训练样本开辟互不连通的隐空间区域,使不同样本的编码分布可比较、可插值,也让推理时从先验采样 z 后能解码出合理样本。
采样操作本身不可直接反向传播,所以 VAE 使用重参数化技巧:z = μ + σ * ε,其中 ε 来自标准正态。这样随机性被移到 ε 上,μ 和 σ 仍然能通过重构损失和 KL 损失获得梯度。
KL 太强时,q(z|x) 过早贴近先验,模型可能忽略 z,出现 posterior collapse 或重构变差;KL 太弱时,隐空间会变得不连续,从先验采样效果差。实践中会用 KL annealing、β-VAE、free bits 或解码器容量控制平衡生成质量和隐空间规整。
只最小化重构误差会退化成普通 AE,隐空间可能不连续且难以从先验采样。VAE 还要约束近似后验接近先验,从而获得生成能力。
KL 衡量用一个分布近似另一个分布时的信息损失,D_KL(q||p) 和 D_KL(p||q) 惩罚模式不同,所以一般不相等。VAE 常用 q(z|x) 到先验 p(z) 的方向。
它指 encoder 输出的 q(z|x) 几乎等于先验,decoder 不再依赖 z 也能重构,导致潜变量没有携带有效信息。常见缓解方式是 KL annealing、减弱 decoder 或调整损失权重。
β-VAE 在 KL 项前加权重 β,用更强或更弱的分布约束控制解耦表示和重构质量之间的平衡。β 较大通常更规整但可能牺牲细节。