A09 · 第 2 章 · 第一编 似然与潜变量

变分自编码器:证据下界、重参数化与潜变量诊断

从潜变量边缘似然经 Jensen 不等式推导 ELBO,区分编码近似后验、生成先验和解码似然,手算一维高斯 KL 与 Monte Carlo 重参数样本,并讨论重构项、后验塌缩、β 权衡及生成、重构、表示评价边界。

报告页面错误
预备知识自回归生成与序列似然自编码器贝叶斯推断

本章目标

  1. 从潜变量边缘似然插入近似后验,并用 Jensen 不等式推导 ELBO。
  2. 解释 ELBO 与真实对数似然之间的 KL 间隙,避免把下界当成精确似然。
  3. 手算一维高斯 KL,并用固定噪声执行一次 Monte Carlo 重参数估计。
  4. 区分重构似然、KL 正则、后验塌缩和 β 加权目标的作用。
  5. 分别设计先验生成、输入重构、潜表示和密度评价协议。
页面阅读位置0% · 仅保存在此浏览器
章节未开始
本册完成进度0/6 章 · 0%
本页目录

潜变量模型先定义生成过程

变分自编码器首先是潜变量生成模型。它选择潜变量先验 p(z)p(z),再用参数化条件分布 pθ(xz)p_\theta(x\mid z) 生成观测。联合分布与观测边缘分布为

pθ(x,z)=p(z)pθ(xz),pθ(x)=p(z)pθ(xz)dz.p_\theta(x,z)=p(z)p_\theta(x\mid z),\qquad p_\theta(x)=\int p(z)p_\theta(x\mid z)\,\mathrm dz.

常用先验是标准多元高斯,但这不是定义所强制。解码网络根据 zz 输出似然参数,例如伯努利概率、高斯均值与方差或离散词元分布。模型训练真正希望提高的是观测数据的边缘对数似然 logpθ(x)\log p_\theta(x)。困难在于高维非线性解码器下,这个积分通常不能解析求出,真实后验

pθ(zx)=p(z)pθ(xz)pθ(x)p_\theta(z\mid x)=\frac{p(z)p_\theta(x\mid z)}{p_\theta(x)}

也含有同一个未知边缘项。

因此引入编码器参数化的近似后验 qϕ(zx)q_\phi(z\mid x)。编码器不是生成模型的先验,也不是把输入压成一个确定点;它给定观测后输出一个可采样分布。训练时用它提出可能解释当前 xx 的潜变量,生成新样本时则应从 p(z)p(z) 而非某个训练样本的 qϕ(zx)q_\phi(z\mid x) 开始。

从边缘似然推导证据下界

假设 qϕ(zx)q_\phi(z\mid x) 在需要积分的区域具有合适支撑,可在积分中乘除这个分布:

logpθ(x)=logqϕ(zx)pθ(x,z)qϕ(zx)dz=logEqϕ(zx)[pθ(x,z)qϕ(zx)].\begin{aligned} \log p_\theta(x) &=\log\int q_\phi(z\mid x) \frac{p_\theta(x,z)}{q_\phi(z\mid x)}\,\mathrm dz\\ &=\log\mathbb E_{q_\phi(z\mid x)} \left[\frac{p_\theta(x,z)}{q_\phi(z\mid x)}\right]. \end{aligned}

对数函数是凹函数。Jensen 不等式给出“期望的对数不大于对数的期望”:

logpθ(x)Eqϕ(zx)[logpθ(x,z)logqϕ(zx)]=LELBO(x).\log p_\theta(x) \ge \mathbb E_{q_\phi(z\mid x)} \left[\log p_\theta(x,z)-\log q_\phi(z\mid x)\right] =\mathcal L_{\mathrm{ELBO}}(x).

把联合分布分解后,得到最常用形式

LELBO(x)=Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).\mathcal L_{\mathrm{ELBO}}(x) =\mathbb E_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)] -D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\Vert p(z)\bigr).

第一项是期望条件对数似然,常被简称为重构项;第二项让每个样本的近似后验不要任意偏离先验。训练常最小化负 ELBO,即“负重构对数似然加 KL”。二者的归约必须一致:按像素求和而 KL 按样本平均,会让输入维数隐式改变权衡。

例 1:用两个潜状态看见 Jensen 间隙

设潜变量只有 z1,z2z_1,z_2,近似后验各给概率 1/21/2。令重要性比值 p(x,z)/q(zx)p(x,z)/q(z\mid x) 分别为 1133。于是

logp(x)=log(1+32)=log20.6931,\log p(x)=\log\left(\frac{1+3}{2}\right)=\log2\approx0.6931,

而 ELBO 为

12log1+12log30.5493.\frac12\log1+\frac12\log3\approx0.5493.

差值约为 0.14380.1438,来自先取对数再平均。只有两个比值在 qq 支撑上相等时,Jensen 在此处取等号;这对应近似后验与真实后验匹配。该例只是离散手算,用来展示不等式方向,不代表实际 VAE 只有两个潜状态。

ELBO 与真实对数似然不相等

把 Bayes 公式代入还可得到恒等式

logpθ(x)=LELBO(x)+DKL(qϕ(zx)pθ(zx)).\log p_\theta(x) =\mathcal L_{\mathrm{ELBO}}(x) +D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\Vert p_\theta(z\mid x)\bigr).

KL 非负,所以 ELBO 是下界;当且仅当近似后验与模型真实后验几乎处处一致时,间隙为零。优化编码器是在所选变分分布族内缩小近似误差,优化解码器则同时改变生成模型和真实后验。有限容量、对角高斯假设和优化失败都会留下间隙。

因此 ELBO 不能称为已算出的真实对数似然。两个模型的 ELBO 高低也不必与真实似然高低完全同序,因为各自间隙不同。多样本重要性下界可以收紧估计,但仍需说明样本数、估计方差和下界性质。若比较模型,应固定数据预处理、似然族、常数项、采样数与归约,避免把不同数值尺度解释成概率改进。

对角高斯编码器与解析 KL

常见编码器输出均值 μϕ(x)\mu_\phi(x) 和对数方差 logσϕ2(x)\log\sigma_\phi^2(x),定义

qϕ(zx)=N(z;μ,diag(σ2)),p(z)=N(0,I).q_\phi(z\mid x)=\mathcal N\bigl(z;\mu,\operatorname{diag}(\sigma^2)\bigr), \qquad p(z)=\mathcal N(0,I).

dd 维下,KL 有解析式

DKL(qp)=12j=1d(μj2+σj21logσj2).D_{\mathrm{KL}}(q\Vert p) =\frac12\sum_{j=1}^{d} \left(\mu_j^2+\sigma_j^2-1-\log\sigma_j^2\right).

该式非负,并在 μ=0,σ=1\mu=0,\sigma=1 时为零。实现中输出对数方差比直接输出方差更容易保持正值,但极端对数方差仍会造成指数溢出或近零尺度。应记录截断规则并在出现非有限数值时停止更新、保存样本标识,而不是静默把异常改成零。

例 2:一维高斯 KL 与两样本重参数估计

q(zx)=N(1,0.52)q(z\mid x)=\mathcal N(1,0.5^2),先验为 N(0,1)\mathcal N(0,1)。一维 KL 为

12(12+0.521log0.52)=12(0.25+1.3863)0.8181.\frac12\left(1^2+0.5^2-1-\log0.5^2\right) =\frac12(0.25+1.3863)\approx0.8181.

取两个固定噪声样本 ε1=1\varepsilon_1=-1ε2=0.5\varepsilon_2=0.5,重参数化给出

z1=1+0.5(1)=0.5,z2=1+0.5(0.5)=1.25.z_1=1+0.5(-1)=0.5,\qquad z_2=1+0.5(0.5)=1.25.

假设解码器在这两点对当前 xx 的对数似然分别为 1.2-1.20.8-0.8,Monte Carlo 平均重构项为 1.0-1.0。一次两样本 ELBO 估计为 1.00.8181=1.8181-1.0-0.8181=-1.8181,对应负 ELBO 为 1.81811.8181。这些解码数值是教学设定,不是论文实验结果。

重参数化把随机节点移到参数之外

直接写 zqϕ(zx)z\sim q_\phi(z\mid x) 时,样本对分布参数的依赖不便用普通反向传播表达。对位置—尺度高斯,可先采与参数无关的

εN(0,I),\varepsilon\sim\mathcal N(0,I),

再令

z=μϕ(x)+σϕ(x)ε.z=\mu_\phi(x)+\sigma_\phi(x)\odot\varepsilon.

随机性现在来自 ε\varepsilon,而 zzμ,sigma\mu,sigma 是可微函数,重构项的梯度可沿解码器、zz 和编码器反向传播。这称为路径导数或重参数化估计。它不移除 Monte Carlo 方差,也不适用于任意离散分布;离散潜变量需要其他估计器、连续松弛或专门结构,并会产生不同偏差与方差。

训练时每个样本使用一个噪声样本常能形成可用随机梯度,但不是数学规定。增加样本数通常降低期望估计方差,也增加计算。复现要保存随机数生成器、每样本采样数、训练和评价时使用均值还是采样,以及分布式进程的种子派生。只固定网络初始化不足以复现潜变量路径。

重构项必须是声明过的似然

“重构损失”不是一个脱离概率模型的任意距离。若二值观测使用独立伯努利似然,重构项是逐维二元交叉熵;若连续观测使用固定方差高斯,负对数似然在忽略固定常数后与平方误差成比例;若方差可学习,还必须包含对数尺度。自然图像像素不一定真是独立伯努利或同方差高斯,这些是建模选择,其局限应写明。

例 3:伯努利重构项不是普通准确率

观测 x=(1,0)x=(1,0),解码器给两个位置取一的概率为 (0.8,0.3)(0.8,0.3)。条件概率为 0.8×(10.3)=0.560.8\times(1-0.3)=0.56,重构负对数似然为

log0.8log0.7=log0.560.5798.-\log0.8-\log0.7=-\log0.56\approx0.5798.

若把概率按阈值转成 (1,0)(1,0),重构准确率是百分之百,却丢失了模型置信度差异。若改用连续高斯 MSE,观测空间和似然假设都已改变。比较 VAE 时应保留完整概率损失,并明确是按维度求和还是平均。

像素很多时,逐维求和的重构项数值会随分辨率增长,而潜变量 KL 只随潜维增长。若误把一个求和、另一个平均,模型在不同输入尺寸上的行为会显著变化。预处理中的缩放、二值化、裁剪和噪声也改变似然对象。生成结果若取解码分布均值,会比真正从 pθ(xz)p_\theta(x\mid z) 采样更平滑;两种展示必须标明。

后验塌缩是潜变量被模型忽略

qϕ(zx)p(z)q_\phi(z\mid x)\approx p(z) 且解码器几乎不依赖 zz 时,KL 接近零,潜变量不再携带关于当前输入的可用信息,这称为后验塌缩。强大的自回归解码器可能仅靠已生成前缀解释数据,于是使用 zz 带来的重构收益不足以抵消 KL。过快的 KL 优化、数据中可预测的局部结构、从输入到解码器的旁路也会促成类似现象。

零 KL 本身不是数值错误:若数据确实无需潜变量,模型目标允许这种解。但若设计目标是学习全局潜表示,它就是功能失败。诊断应报告每个维度和每个样本的 KL、编码均值与方差、在数据上聚合的 q(z)q(z)、移除或打乱 zz 后的解码变化、冻结下游探测以及主动维度数量。仅看总 KL 非零可能掩盖只有一个维度工作,漂亮重构也可能来自强解码器复制上下文。

KL 预热逐步增加其权重,free bits 在一定范围内弱化压缩压力,限制解码器或调整输入旁路也可能增加潜变量使用。但这些方法改变优化路径,部分方法还改变有效目标;不能保证得到语义可解释潜变量。应同时观察重构、KL、先验样本和表示评价,而不是以“KL 变大”作为唯一成功标准。

例 4:一个完全忽略潜变量的可行解

设数据只有等概率的二值 x{0,1}x\in\{0,1\}。解码器无论收到哪个 zz 都输出 pθ(x=1z)=0.5p_\theta(x=1\mid z)=0.5,编码器对每个输入都令 q(zx)=p(z)q(z\mid x)=p(z)。此时 KL 为零,期望重构对数似然为 log0.5=0.6931\log0.5=-0.6931,ELBO 也是 0.6931-0.6931

模型给出了规范化边缘分布,却没有让 zz 区分两个输入。把同一 zz 换成其他值,输出不变;冻结潜表示也不能预测 xx。这个例子说明“ELBO 有限且训练稳定”不等于潜表示被使用。若任务只要求拟合这个简单边缘分布,它又未必是错误模型,评价必须对应预定用途。

β 权衡改变压缩强度

常见加权目标写成

Lβ=Eq[logpθ(xz)]βDKL(qϕ(zx)p(z)).\mathcal L_\beta =\mathbb E_q[\log p_\theta(x\mid z)] -\beta D_{\mathrm{KL}}(q_\phi(z\mid x)\Vert p(z)).

β=1\beta=1 时,这是前述生成模型的标准 ELBO。对同一 p(z)pθ(xz)p(z)p_\theta(x\mid z)β1\beta\ne1 一般不能继续直接称为其标准证据下界;它是改变重构与先验匹配权衡的目标。较大 β\beta 通常增强压缩和先验约束,可能损伤重构或加剧塌缩;较小 β\beta 允许编码更多输入细节,却可能使聚合后验远离先验,导致从先验采样落入解码器很少训练的区域。

例 5:β 如何改变两个候选解的排序

候选甲的期望重构对数似然为 1.0-1.0、KL 为 0.80.8;候选乙分别为 1.3-1.30.10.1。当 β=1\beta=1 时,甲目标为 1.8-1.8,乙为 1.4-1.4,最大化目标会偏向乙。当 β=0.1\beta=0.1 时,甲为 1.08-1.08,乙为 1.31-1.31,排序改为甲优先。

这不是说较小或较大 β\beta 普遍更好,而是展示权重明确改变优化偏好。若损失实现还改变了像素求和方式,同名 β\beta 更不可比。所谓潜因素解耦也需要已知生成因素、受控数据和专门指标;只看二维插值平滑不能证明坐标具有唯一语义。

生成、重构和表示是三种评价

先验生成从 zp(z)z\sim p(z) 开始,再从 pθ(xz)p_\theta(x\mid z) 采样。它检验先验覆盖、解码器在先验区域的行为和样本多样性。重构先给真实 xx,从 qϕ(zx)q_\phi(z\mid x) 取样或取均值,再解码;它有输入信息,不能替代无条件生成评价。若只展示解码均值,还会隐藏观测噪声和多模态输出。

表示评价冻结编码器,预先指定使用 μ\mu、随机 zz 还是其他统计量,再训练线性或明确复杂度的读出器。全量微调会改变编码器,结论属于初始化可适应性。数据应按主体或来源去重划分,测试标签不能用于选择潜维、β\beta、训练轮次或读取层。重构好不保证标签线性可读,线性可读也不保证先验样本覆盖真实分布。

密度评价只能把 ELBO 报为下界,或使用说明过的更紧估计器。不同似然族与数据预处理的数值不可直接比较。样本评价应同时考虑质量、覆盖、重复和条件一致性,并保存随机种子与选择规则;只挑选最漂亮插值会形成展示偏差。潜空间插值经过低密度区域时仍可能产生平滑解码,平滑图像不是该路径具有高概率或真实语义连续性的证明。

数值实现与复现清单

编码器输出通常是 log variance,计算标准差时用 exp(12logσ2)\exp(\tfrac12\log\sigma^2);把 log variance 误当标准差会改变采样和 KL。KL 应逐样本、逐维先计算,再按声明的批次规则归约。重构项应保存未归约维度,以便核对像素、词元与样本权重。混合精度下,指数、对数和极端概率需要稳定实现,非有限值要带输入标识和参数范围报告。

复现至少记录数据与预处理版本、观测似然、先验、潜维、近似后验族、编码器与解码器结构、重构和 KL 归约、β\beta 及其日程、每样本 Monte Carlo 数、随机种子、优化器、精度模式和停止规则。评价还要记录从先验或后验采样、使用解码均值还是随机观测、线性探测是否冻结以及测试集使用次数。

原始 VAE 论文资源支持连续潜变量模型中的变分下界与重参数化估计框架;通用教材资源补充潜变量和深度生成模型背景。本章没有把教学手算当作论文报告数字,也不以这两项资源为后续变体的性能背书。

三个常见误区

第一,“ELBO 就是真实对数似然”。它是下界,二者相差近似后验到模型真实后验的 KL;只有间隙为零时才相等。

第二,“重构图清楚就证明无条件生成好”。重构使用输入条件后验,先验生成没有输入;聚合后验若与先验不匹配,两者可以表现完全不同。

第三,“KL 越小或越大越好”。接近零可能是后验塌缩,过大可能说明编码偏离先验并伤害生成。合适范围取决于似然、归约与用途,需联合评价。

练习

练习 1:推导 ELBO

pθ(x)=pθ(x,z)dzp_\theta(x)=\int p_\theta(x,z)\,dz 写出证据下界。

查看提示
在边缘积分中乘除 q(zx)q(z|x),把积分写成 qq 下期望,再利用 log\log 的凹性。
查看解答
logp(x)=logEq[p(x,z)/q(zx)]Eq[logp(x,z)logq(zx)]\log p(x)=\log E_q[p(x,z)/q(z|x)]\ge E_q[\log p(x,z)-\log q(z|x)]。分解 p(x,z)=p(z)p(xz)p(x,z)=p(z)p(x|z) 后得到 Eqlogp(xz)KL(qp)E_q \log p(x|z)-KL(q||p)
练习 2:计算高斯 KL
q=N(0,22)q=\mathcal N(0,2^2)p=N(0,1)p=\mathcal N(0,1) 的 KL。
查看提示
代入二分之一乘以 μ2+σ21logσ2\mu^{2}+\sigma^{2}-1-\log\sigma^{2}
查看解答
μ=0\mu=0σ=2\sigma=2 时,KL=0.5(0+41log4)=0.5(31.3863)0.8069KL=0.5(0+4-1-\log 4)=0.5(3-1.3863)\approx 0.8069。它非零,因为后验尺度比标准正态更宽。
练习 3:重参数采样
给定 μ=0.5,σ=0.2,ε=1.5\mu=-0.5,\sigma=0.2,\varepsilon=1.5,计算潜样本并说明可微路径。
查看提示
使用 z=μ+σϵz=\mu+\sigma \epsilon,并保持给定 ϵ\epsilon 不变。
查看解答
μ=0.5\mu=-0.5σ=0.2\sigma=0.2ϵ=1.5\epsilon=1.5 时,z=0.5+0.2×1.5=0.2z=-0.5+0.2\times 1.5=-0.2。由于 ϵ\epsilon 与参数无关,z 对 μ\muσ\sigma 可微,重构梯度可沿这条路径回传。
练习 4:诊断后验塌缩
设计一个不依赖漂亮重构图的塌缩检查。
查看提示
不要只看总损失,检查逐维 KL、打乱 z 后输出和冻结表示。
查看解答
报告逐样本逐维 KL、编码均值方差与主动维度;比较原 z、打乱 z 和先验 z 的解码输出;再做冻结探测。若 qpq\approx p 且替换 z 几乎不改变输出,潜变量很可能被忽略。
练习 5:解释 β 目标
为什么不能把任意 β\beta 的加权目标都直接称为同一真实似然的 ELBO?
查看提示
先指出 β=1\beta=1 的概率意义,再分析变大或变小对两项的偏好。
查看解答
β=1\beta=1 对应标准 ELBO;β1\beta \ne 1 一般是同一模型的加权目标。增大 β\beta 强化先验匹配和压缩但可能伤害重构或加剧塌缩,减小 β\beta 允许更多信息却可能使先验采样落入未训练区域。
练习 6:分开评价三种能力
设计先验生成、输入重构和表示迁移的三个独立协议。
查看提示
分别写出潜变量来自 prior 还是 posterior,以及编码器是否冻结。
查看解答
生成从 p(z) 采样并评价质量与覆盖;重构从 q(z|x) 编码真实输入并报告条件似然;表示评价冻结编码器并训练预定读出器。密度只报告 ELBO 下界或说明过的估计器,三类数据划分和选择规则均需独立。

关系与资源

书籍 · 2016

Deep Learning

Ian Goodfellow, Yoshua Bengio, Aaron Courville

适合作为反向传播和优化章节的完整参考。

打开官方来源
论文 · 2013

Auto-Encoding Variational Bayes

Diederik P. Kingma, Max Welling

用于核对证据下界、近似后验和重参数化梯度的原始推导。

打开官方来源