4.5.1 训练准则:下界、对抗与显式密度
4.2 节介绍了自回归生成,4.3–4.4 节讨论了回报优化。本节转向另一项建模要求:给定连续样本时,直接计算模型赋予它的密度。为说明这一要求,先比较几类常见训练准则。变分自编码器(Kingma & Welling, 2014)引入潜变量 z,边际似然 pθ(x) 需要对 z 积分;对常用神经网络解码器,这个积分通常难以直接计算,因此训练中使用证据下界(evidence lower bound, ELBO):
ELBO 给出边际对数似然的下界,但仅凭该曲线通常无法确定界的松紧;VAE 的似然也可用重要性采样等方法估计。生成对抗网络采用无似然训练(likelihood-free),通过生成器与判别器的对抗目标拟合数据。生成器仍定义了一个概率分布,只是通常没有可直接求值的数据密度。策略梯度则优化期望回报;所用策略仍可具有显式动作概率,并可与似然训练结合。训练准则与概率表示因而是两个不同的分类维度。
流模型(normalizing flow)通过可逆映射与基础密度构造数据密度。本节讨论由有限个、可计算行列式的变换组成的流,其精确对数似然(exact log-likelihood)指给定连续样本后可直接计算的对数密度,不必用变分下界代替该密度。这个术语不表示训练无采样误差,也不表示离散数据的概率自动精确可得(Rezende & Mohamed, 2015;Papamakarios et al., 2021)。表 4.5-1 概括了常见情形。
| 模型 | 训练准则 | 单样本似然 | 采样 | 主要代价 |
|---|---|---|---|---|
| VAE | 通常最大化 ELBO(式 4.5-1) | 边际似然通常需估计 | 采样潜变量,再按解码分布采样 | 后验近似与边际化的计算成本 |
| GAN | 判别器与生成器的对抗目标 | 通常无可直接求值的密度 | 采样噪声,再执行生成器 | 对抗优化及样本分布评估 |
| 本节的流模型 | 最大化连续对数密度(式 4.5-6) | 连续密度可直接计算 | 基础分布采样,再执行逆变换 | 可逆结构、行列式及方向成本 |
显式密度可以提供逐样本训练信号,并在数据表示、坐标尺度和预处理一致时支持负对数似然(NLL)比较。它与 4.1 节的有效性、多样性和性质指标互补,密度较高本身并不保证分子更合理。分布学习还可与性质奖励衔接:GraphAF 先拟合去量化后的连续表示,再用回报微调。其离散对数似然下界见 4.5.7 节;此前先推导连续变量的密度公式。
4.5.2 一维:概率质量守恒与变量变换
设随机变量 X 的密度为 pₓ(x),令 Z=f(X)。先假定 f 在两个区间之间构成双射(bijection),连续可微,且 f′ 处处非零。这组条件保证逆映射也连续可微。严格单调能保证映射到其像集的一一对应,但单独的严格单调并不排除零导数,例如 f(x)=x³ 在原点的导数为零。密度换算的依据是概率质量在变换下守恒:对应区间描述同一个随机事件。
取小区间 [x0, x0+Δ],并在密度连续的点 x0 附近令 Δ 趋于零。事件 {X ∈ [x0, x0+Δ]} 等价于 Z 落在该区间经 f 映射所得的像区间中;若 f 递减,像区间的左右端点顺序相反。在数据空间中,这一概率近似为:
在潜空间中,由一阶展开 f(x0+Δ)−f(x0)≈f′(x0)Δ,像区间的长度约为 |f′(x0)|Δ。因此,同一概率也近似为:
将两式相等,约去 Δ 并取极限,即得变量变换(change of variables)公式,也称变量替换公式:
变量变换公式(一维)。设 f 在两个开区间之间为连续可微双射,且 f′ 处处非零。若 Z=f(X) 具有密度 pz,则 X 的密度满足 pₓ(x)=pz(f(x))|f′(x)|,密度等式按通常意义几乎处处成立。双射用于建立唯一的正逆对应,导数给出局部长度缩放,非零导数保证逆映射的可微性。这是一组便于分析的充分条件;它不意味着所有可逆映射的导数都非零,也不保证基础密度本身有界。
公式说明,守恒的是概率质量,密度则随坐标变换而改变。例如取 f(x)=2x,即生成方向 x=z/2。若 Z 为标准正态,X 的标准差减半,峰值加倍:px(0)=2pz(0)。同一概率质量分布在更短的区间内,密度相应升高。对于全实数轴上的 f(x)=x²,正负两个分支会映到同一位置,需要按分支求和处理正向密度,不能直接使用单一逆映射的公式。若生成映射为 x=z³,且基础密度在原点连续并为正,则生成密度会在原点附近发散;这来自生成映射在该点的零导数。图 4.5-1 示意了正逆方向与质量守恒。
4.5.3 多维推广:雅可比行列式作为体积缩放因子
对向量 x ∈ Rn,可微变换 f: Rn → Rn 的导数由雅可比矩阵(Jacobian matrix) Jf(x) 表示,其第 (i,j) 个元素为 ∂fi/∂xj。在 x0 附近,一阶近似为 f(x0+δ)≈f(x0)+Jf(x0)δ。以下假定 f 为连续可微双射,且雅可比行列式处处非零。
线性映射 J 将单位立方体映为平行多面体,其 n 维体积为 |det J|。因此,x0 附近一个体积为 δV 的小区域,经 f 映射后的体积近似为 |det Jf(x0)|δV。比较两个对应区域的概率,约去体积并取极限,得到多维公式:
训练通常使用对数密度。若基础分布 pz 的各维相互独立,例如多维标准正态,其对数密度可逐维相加:
多个可逆层可以复合为 f=fL∘…∘f2∘f1。令 h0=x,hℓ=fℓ(hℓ−1),最终 hL=z。复合映射的雅可比按链式法则相乘,行列式的乘积在对数域中变为求和:
对连续训练样本,可最大化 Σx log pθ(x),并用自动微分计算参数梯度。接下来需要设计既可逆、又能高效计算行列式的变换;这正是流结构与普通神经网络结构的主要区别。
4.5.4 行列式计算与结构约束
若不利用特殊结构,计算 n 维深网络的行列式通常需要先形成 n×n 雅可比。反向模式自动微分可逐个输出计算雅可比的各行,前向模式可逐个输入计算各列;显式存储需要 O(n²) 空间,通用 LU 分解还需要 O(n³) 运算。这些成本不包含构造雅可比所需的网络计算。维数较大且每个训练样本都需评估时,开销会明显增加。此外,普通网络不自动满足全局可逆性。
常见设计从易求逆、易计算行列式的结构出发,再复合多层。本节介绍两类:仿射耦合层将坐标分组,保留一组并变换另一组;自回归流按次序构造条件变换,使雅可比具有三角结构。它们并非所有流模型的完整分类,而是理解 GraphAF 所需的两个基础例子。
可逆性约束作用于被变换的变量。本文采用欧氏空间中的可微双射,输入与潜变量总维数相同,不能直接通过丢弃坐标形成 VAE 式低维瓶颈。ReLU、最大池化和随机置零等操作也不能单独作为这样的可逆层。条件网络只计算变换参数,本身不必可逆,但仍需满足相应的可微性、确定性和依赖关系要求。单个耦合层能表达的变换有限,多层复合、坐标混合和更灵活的标量变换可增加表达能力。具体拟合效果取决于结构与预算,不能仅从“可逆”推出同参数量下必然更差。
4.5.5 仿射耦合层:分组与条件变换
耦合层(coupling layer)将坐标分组,使一组变量为另一组的可逆变换提供条件。NICE 使用加性形式(Dinh et al., 2015),Real NVP 使用仿射形式(Dinh et al., 2017)。以下令 x=(xA,xB),保留 A 组,将其作为 B 组缩放与平移的条件。两组常取相同大小,但不要求严格各占一半;也可通过棋盘或通道掩码划分。正向变换为:
给定 y,先由恒等分支恢复 xA=yA,再计算 s(yA) 与 t(yA)。此时 B 组的仿射系数已知,逆变换可逐元素求出:
按 y=(yA,yB) 与 x=(xA,xB) 分块,雅可比的左上块为单位阵 I,右上块为零,因为 yA 与 xB 无关。右下块是逐元素缩放形成的对角阵 diag(exp si)。左下块 ∂yB/∂xA 可以稠密,但块三角矩阵的行列式只取决于对角块:
单个耦合层保留 xA 不变,因而不能独立实现任意联合变换。常用做法是在相邻层交换分组、改变掩码或置换坐标,使不同维度依次作为条件输入和被变换变量。Glow 还在层间使用可逆 1×1 卷积混合通道(Kingma & Dhariwal, 2018)。这类复合既保留各层易于求逆和计算行列式的性质,也增加了维度之间的相互作用。
仿射耦合层的构造步骤。① 将输入分为 A、B 两组,可按坐标、棋盘掩码或通道分组;② 以 xA 为条件,计算对数尺度 s(xA) 与平移 t(xA);③ 正向计算 yA = xA、yB = xB ⊙ exp(s) + t;④ 逆向按式 (4.5-9) 反解;⑤ 将 s 的分量求和,得到对数行列式;⑥ 交替分组并堆叠多层,按需加入可逆通道混合或 ActNorm(4.5.7 节)。对单层而言,正逆两个方向都只需一次条件网络求值和逐元素运算;多层流则分别按正序和逆序执行各层。这种计算对称性适合同时重视密度求值与采样效率的任务。
习题 4.5-1
设二维线性变换 z = f(x) = Ax,A = [[2, 0], [0, 3]],基础分布 pz 为标准二维正态 N(0, I)。(1) 求 Jf、det J 与 log |det J|。(2) 写出 pₓ(x) 的表达式,指出 x 各维服从什么分布。(3) 求 px(0, 0),与 pz(0, 0) 比较,并解释比值。(4) 若换 A′ = [[2, 0], [0, 1/3]],log |det J| 变为多少?这一项如何影响对数密度,能否单独据此比较两个模型?
参考解答(1) 线性变换的雅可比为 A;det A = 2×3 − 0×0 = 6,log |det J| = log 6 ≈ 1.79。(2) 由式 (4.5-5),pₓ(x) = N(Ax; 0, I)·6 = 6·(1/√(2π))e−(2x₁)²/2·(1/√(2π))e−(3x₂)²/2。由 z₁ = 2x₁、z₂ = 3x₂ 以及 z₁、z₂ 独立服从 N(0,1),可得 x₁ ~ N(0, 1/4)(σ = 1/2)、x₂ ~ N(0, 1/9)(σ = 1/3),且两维独立。协方差为 A−1A−T = diag(1/4, 1/9)。(3) px(0,0) = 6/(2π) = 3/π ≈ 0.955,而 pz(0,0) = 1/(2π) ≈ 0.159,比值为 6。生成方向是 x = A−1z:A−1 将体积缩小为原来的六分之一,因此对应位置的密度增大为六倍。(4) det A′ = 2/3,log |det A′| = log(2/3) ≈ −0.41。这一修正项为负;在生成方向,A′−1 将体积放大为原来的 3/2,密度相应乘以 2/3。但完整对数密度为 log px(x) = log pz(Ax) + log |det A|,更换 A 也会改变基础密度的求值位置。因此比较模型时应使用两项之和,不能只比较行列式项。
习题 4.5-2
设条件网络 s、t 可微,且输出为有限实数。证明仿射耦合层(式 4.5-8)可逆,给出逆的解析式;并证明其雅可比行列式恒正且 log |det J| = Σi∈B si(xA)。
参考解答可逆性:给定 y = (yA, yB),先得 xA = yA。条件网络只以 xA 为输入,因此 s(yA)、t(yA) 已知,可逐元素反解 xB = (yB − t(yA)) ⊙ exp(−s(yA))。有限实数的指数严格为正,故反解唯一。代入可得 [(xB⊙exp s) + t − t] ⊙ exp(−s) = xB;反向代入也还原 yB,所以正逆复合均为恒等映射。行列式:按 (yA, yB) 对 (xA, xB) 分块。由 yA = xA,得 ∂yA/∂xA = I、∂yA/∂xB = 0。因仿射系数只依赖 xA,yB 的第 i 个分量仅依赖 xB 的第 i 个分量,故 ∂yB/∂xB = diag(exp si(xA))。左下块 ∂yB/∂xA 记为 ∗,于是 J = [[I, 0], [∗, D]],D = diag(exp si)。利用分块下三角矩阵的行列式公式,det J = det(I)·det(D) = ∏i∈B exp si = exp(Σi∈B si) > 0,进而 log |det J| = Σi∈B si(xA)。计算简化来自右上零块和右下对角块;条件网络不必可逆,也不必显式计算左下块,但其前向求值仍有计算成本。
4.5.6 自回归流:条件密度与三角雅可比
自回归结构也能使雅可比行列式便于计算。按照 4.2 节的链式法则,联合密度可沿固定次序分解为 p(x) = ∏i p(xi | x<i)。自回归流(autoregressive flow)用依赖前缀的可逆标量变换(scalar transformation)构造这些条件密度。以条件仿射形式为例,网络读取 x<i,输出位置 μi 与正尺度 σi,并采用各维独立的基础分布:
从联合变换看,zi 只依赖 x≤i,对 xj(j > i)的偏导为零,所以雅可比为下三角矩阵。其对角元为 ∂zi/∂xi = 1/σi,因而 log |det J| = −Σ log σi,与式 (4.5-11) 的逐条件计算一致。两种推导描述的是同一个密度:一种从联合变量变换出发,另一种对每个条件密度应用一维公式后相乘。
GraphAF 将条件变换用于图生成,条件网络读取历史子图,当前变量则是原子或键类别的去量化向量。这里需要区分条件仿射变换与前节的仿射耦合层:GraphAF 的条件由当前向量之外的历史提供,可对当前向量的全部分量同时缩放和平移;RealNVP 型耦合层则在同一输入内分组,以 A 组决定 B 组的变换,并保留 A 组不变。两者都能得到易计算的行列式,但结构不同;仿射变换也只是一般耦合层可采用的一类可逆变换。可对照 GraphAF 原论文第 4.1 节与 TorchDrug 的 ConditionalFlow 实现阅读。
计算方向取决于条件网络的实现。MAF 使用掩码网络约束前缀依赖:密度求值时,完整数据 x 已知,可在一次网络前向中并行计算各维条件参数,再得到全部 zi 与对数密度。采样时则按 xi = μi(x<i) + σi(x<i)·zi 逐维恢复,必须先得到所需前缀。若采用 IAF 那样依赖基础变量前缀的掩码结构,通常可快速采样,而任意观测点的密度求值较慢。这种并行能力来自掩码网络的具体设计;仅仅使用真实前缀训练,并不保证循环式条件网络也能一次并行求值。相关比较见 MAF 原论文。
GraphAF 的历史掩码承担类似作用:训练时虽已知完整分子图,各步骤的图编码仍只能访问当时已生成的原子和键。掩码阻断未来信息,使多个步骤的条件密度能在一次前向计算中并行求值。采样时历史尚未形成,仍需按生成次序推进。这种防止信息泄漏的历史掩码,应与检查候选键是否违反价约束的采样规则区分开来;后者涉及无效候选的拒绝与重采样,不能替代历史依赖约束。
耦合层(RealNVP 型)
- 每层保留一组输入,条件变换另一组;
- 单层正逆方向各需一次条件网络求值;
- 通过交替分组、可逆混合与多层复合增强表达能力。
自回归流(MAF 型)
- 每维采用依赖前缀的标量变换,雅可比为下三角;
- 掩码网络支持密度求值并行,采样通常逐维进行;
- GraphAF 将这一思路用于按历史子图构造条件变换。
4.5.7 结构、数值与离散数据
流模型的密度可计算性依赖结构设计。实际使用时,还需考虑以下四个方面。
其一,架构约束。本节讨论的可微双射保持连续空间的维数,变换层必须满足可逆性,并使求逆与行列式计算的成本可控。耦合层和自回归结构各自限制了单层的依赖关系,多层复合可以增加表达能力。具体拟合效果仍取决于变换族、深度、条件网络与数据分布,不能仅凭可逆性断言同等参数量下的性能高低。
其二,数值稳定。exp(s) 过大或过小可能导致溢出、下溢或较差的数值条件。对数密度和对数行列式按式 (4.5-6)、(4.5-7) 累加,能避免直接连乘带来的部分问题,但不能消除前向变换中的溢出。因此实现中常限制对数尺度的幅值,并检查逆变换误差。Glow 使用的 ActNorm(activation normalization)是逐通道仿射变换,以首批数据初始化平移和尺度;其行列式易于计算,尺度非零时可逆。这样的初始化有助于控制初始激活尺度,但不保证后续训练始终稳定(Kingma & Dhariwal, 2018)。
其三,离散数据。变量变换公式直接描述连续密度。将离散数据用于连续流,通常需要去量化(dequantization)。例如,给整数向量 a 加入 u ∼ U([0,1)d),令 x = a + u;若以单位网格作为离散化区域,则类别质量为 \(P_\theta(a)=\int_{[0,1)^d}p_\theta(a+u)\,du\)。由 Jensen 不等式,\(\mathbb{E}_u[\log p_\theta(a+u)]\leq\log P_\theta(a)\)。因此,连续流可精确计算每个去量化样本的密度,但对噪声取期望后的训练目标是离散对数似然的下界;单次加噪仅提供这一期望的随机估计。若还做数值缩放,也应计入相应的密度修正。
GraphAF 对原子和键的 one-hot 向量逐分量加入 U[0,1) 噪声,学习所得连续向量的条件密度;生成时对连续向量取 argmax 得到类别,并非将一个标量按区间映射为类别。固定历史后,某一类别的概率应对其 argmax 区域积分。训练用的 one-hot 单位盒子位于相应区域内,盒子上的去量化目标仍给出下界,不能直接视为精确类别概率。进一步计算无序分子图的概率,还需处理生成顺序以及约束采样规则的影响。GraphAF 原论文附录 A说明了均匀去量化与离散似然下界的关系;4.6 节将展开这一训练与采样流程。
其四,方向成本。密度求值和采样分别使用变换的两个方向,效率不一定相同。仿射耦合层的两个方向成本接近;MAF 与 IAF 则分别偏向快速密度求值和快速采样。选型应结合训练目标、采样量与时延要求,同时考虑条件网络和流层数,而非要求所有结构在两个方向都具有相同效率。
本节的推导以概率质量守恒为起点:雅可比行列式修正局部体积变化,多层复合的对数行列式按层相加。耦合层和自回归流通过限制依赖结构,使这项计算更容易。应用到分子生成时,连续密度、离散类别概率和分子图概率需要分别定义。下一节将说明 GraphAF 如何结合历史子图条件、去量化训练与价约束采样,并在似然预训练后进行奖励微调。
习题 4.5-3
比较本节的连续流与常见 VAE:为何前者可以直接计算数据密度,而后者通常用 ELBO 训练?从映射性质、潜空间维数与边际化三个方面说明。结合分子生成讨论:(1) 需要低维连续潜空间做性质优化时,哪类结构更便于实现?(2) 能否将 GraphAF 的去量化负对数密度直接称为离散分子的精确 NLL,并据此与任意模型比较?
参考解答映射性质:常见 VAE 定义条件分布 pθ(x|z),并以 qφ(z|x) 近似后验;编码与解码通常不构成数据和潜变量之间的确定双射。本节的流则使用可逆变换,并选择可求值的基础密度和行列式,从变量变换公式得到连续数据密度。双射本身还不够,相关求值必须在计算上可行。维数:本节采用的欧氏空间可微双射保持维数,VAE 则可以设置较低维的潜变量,因此更便于构造用于性质优化的低维表示;但潜空间连续不等于解码出的分子始终有效,也不保证性质函数容易优化。
边际化:VAE 的数据密度定义为 pθ(x) = ∫ pθ(x|z)p(z) dz,常见神经网络模型中该积分难以直接计算,所以使用 ELBO,并可通过重要性采样等方法估计边际似然。ELBO 与 log pθ(x) 的差为近似后验到真实后验的 KL 散度;近似后验恰等于真实后验时,下界可以取等号。流模型在本节假设下省去了这一边际积分,但数值计算仍受浮点精度影响。
分子场景:GraphAF 的去量化训练直接求值的是连续向量密度,其期望对离散对数似然给出下界,不能直接称为离散分子的精确 NLL。跨模型比较还要求采用相同数据表示、生成顺序处理、尺度和概率定义,并说明报告的是精确值、界还是估计量。选择模型时,应把这一比较与有效性、覆盖度和性质优化效果结合。两类方法也可结合,例如用流改进 VAE 的变分后验(Rezende & Mohamed, 2015)。
关键术语
- 流模型 (normalizing flow)
- 通过可逆变换连接基础分布与连续数据分布的模型;本节选择基础密度和雅可比行列式均易于求值的结构。
- 变量变换 (change of variables)
- 连续密度在适当可逆变换下的换算规则;对 z = f(x),有 px(x) = pz(f(x)) |det Jf(x)|。
- 雅可比行列式 (Jacobian determinant)
- 其绝对值给出变换局部线性化的体积缩放率,对数绝对值构成对数密度的修正项。
- 基础分布 (base distribution)
- 流中便于采样和密度求值的参考分布,常取各维独立的标准正态。
- 双射 (bijection)
- 同时满足单射与满射的映射,因而存在唯一逆映射;本节的密度公式还要求适当的可微性与非零雅可比行列式。
- 证据下界 (evidence lower bound, ELBO)
- 边际对数似然的下界,其差值为近似后验到真实后验的 KL 散度;二者相等时下界取等号。
- 精确对数似然 (exact log-likelihood)
- 本节指由变量变换直接求得的连续对数密度,不需要变分下界;它不自动等于离散类别或无序图的对数概率。
- 耦合层 (coupling layer)
- 将输入分组,以一组决定另一组的可逆变换;本节采用保留条件组不变的结构,雅可比呈分块三角。
- 仿射耦合层 (affine coupling layer)
- 以缩放和平移实现条件变换的耦合层:yB = xB⊙exp(s)+t;对数行列式为 s 的分量之和。
- 自回归流 (autoregressive flow)
- 按前缀依赖构造可逆标量变换的流;MAF 的掩码实现支持并行密度求值,而逆向采样通常逐维进行。
- ActNorm (activation normalization)
- 采用数据初始化的逐通道仿射变换,尺度非零时可逆,且行列式易于计算。
- 去量化 (dequantization)
- 给离散表示加入连续噪声,以连续密度模型训练;均匀去量化的期望对数密度给出相应离散对数似然的下界。
参考文献与延伸阅读
- Kingma DP, Welling M. 2014. Auto-encoding variational Bayes. International Conference on Learning Representations (ICLR 2014).
- Rezende DJ, Mohamed S. 2015. Variational inference with normalizing flows. Proceedings of the 32nd International Conference on Machine Learning (PMLR 37): 1530–1538.
- Dinh L, Krueger D, Bengio Y. 2015. NICE: non-linear independent components estimation. International Conference on Learning Representations (ICLR 2015), Workshop Track. arXiv:1410.8516.
- Dinh L, Sohl-Dickstein J, Bengio S. 2017. Density estimation using Real NVP. International Conference on Learning Representations (ICLR 2017).
- Papamakarios G, Pavlakou T, Murray I. 2017. Masked autoregressive flow for density estimation. Advances in Neural Information Processing Systems 30 (NeurIPS 2017).
- Kingma DP, Dhariwal P. 2018. Glow: generative flow with invertible 1×1 convolutions. Advances in Neural Information Processing Systems 31 (NeurIPS 2018).
- Shi C, Xu M, Zhu Z, Zhang W, Zhang M, Tang J. 2020. GraphAF: a flow-based autoregressive model for molecular graph generation. International Conference on Learning Representations (ICLR 2020).
- Papamakarios G, Nalisnick E, Rezende DJ, Mohamed S, Lakshminarayanan B. 2021. Normalizing flows for probabilistic modeling and inference. Journal of Machine Learning Research 22(57):1–64.