第四章 · 4.5

4.5 流模型:变量变换与雅可比行列式

Normalizing Flows and the Jacobian
流模型通过可逆变换连接连续数据与简单基础分布,并用雅可比行列式修正密度。本节从一维概率质量守恒推导变量变换公式,再推广到多维,说明仿射耦合层和自回归流为何便于求逆与计算行列式。这里的“精确似然”首先指连续表示的密度;用于离散原子和键时,还需区分去量化训练目标、类别概率和最终分子图概率。最后讨论 GraphAF 的条件仿射变换与历史掩码,为 4.6 节的模型分析建立基础。

4.5.1 训练准则:下界、对抗与显式密度

4.2 节介绍了自回归生成,4.3–4.4 节讨论了回报优化。本节转向另一项建模要求:给定连续样本时,直接计算模型赋予它的密度。为说明这一要求,先比较几类常见训练准则。变分自编码器(Kingma & Welling, 2014)引入潜变量 z,边际似然 pθ(x) 需要对 z 积分;对常用神经网络解码器,这个积分通常难以直接计算,因此训练中使用证据下界(evidence lower bound, ELBO):

\[\operatorname{log} p_{\theta}(x) \ge E_{q_{\varphi}(z|x)} [ \operatorname{log} p_{\theta}(x | z) ] - KL( q_{\varphi}(z | x) \| p(z) )\]
(4.5-1)qφ(z|x) 为编码器定义的近似后验,p(z) 为先验。log pθ(x) 与右端之差为 KL(qφ(z|x) ‖ pθ(z|x));近似后验等于真实后验时,下界取等号。

ELBO 给出边际对数似然的下界,但仅凭该曲线通常无法确定界的松紧;VAE 的似然也可用重要性采样等方法估计。生成对抗网络采用无似然训练(likelihood-free),通过生成器与判别器的对抗目标拟合数据。生成器仍定义了一个概率分布,只是通常没有可直接求值的数据密度。策略梯度则优化期望回报;所用策略仍可具有显式动作概率,并可与似然训练结合。训练准则与概率表示因而是两个不同的分类维度。

流模型(normalizing flow)通过可逆映射与基础密度构造数据密度。本节讨论由有限个、可计算行列式的变换组成的流,其精确对数似然(exact log-likelihood)指给定连续样本后可直接计算的对数密度,不必用变分下界代替该密度。这个术语不表示训练无采样误差,也不表示离散数据的概率自动精确可得(Rezende & Mohamed, 2015;Papamakarios et al., 2021)。表 4.5-1 概括了常见情形。

表 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 递减,像区间的左右端点顺序相反。在数据空间中,这一概率近似为:

\[P \approx p_{x}(x_{0}) \cdot \Delta\]
(4.5-2)区间概率是密度的积分;密度在足够小的区间上近似恒定时,可用密度乘长度估计。

在潜空间中,由一阶展开 f(x0+Δ)−f(x0)≈f′(x0)Δ,像区间的长度约为 |f′(x0)|Δ。因此,同一概率也近似为:

\[P \approx p_{z}( f(x_{0}) ) \cdot | f'(x_{0}) | \cdot \Delta\]
(4.5-3)f′(x0) 是映射在 x0 处的局部长度缩放率;取绝对值,兼容递减映射。

将两式相等,约去 Δ 并取极限,即得变量变换(change of variables)公式,也称变量替换公式:

\[p_{x}(x) = p_{z}( f(x) ) \cdot | f'(x) | \quad \operatorname{log} p_{x}(x) = \operatorname{log} p_{z}( f(x) ) + \operatorname{log} | f'(x) |\]
(4.5-4)已知基础密度 pz 与 f,即可计算数据密度。密度评估使用 z=f(x),采样则先抽取 z,再计算 x=f−1(z)。
定义

变量变换公式(一维)。设 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 示意了正逆方向与质量守恒。

上半:数据空间与潜空间之间的一对可逆映射,训练与采样方向相反;下半:小区间经 f 拉长后密度按比例摊薄,概率质量(面积)不变 上半:同一可逆变换,分别用于密度计算与连续样本生成 数据空间 x pₓ(x):连续表示的密度 潜空间 z pz(z):基础分布 N(0, I) fθ:训练方向,逐样本算 log pₓ(x) fθ⁻¹:采样方向,由 z ∼ N(0, I) 得到 x 下半:一小区间上的质量守恒——密度随体积缩放,质量不变 x 空间:区间窄,密度高 px(x₀)·Δ:面积=质量 x z 空间:像区间拉长 2 倍(|f′(x₀)| = 2) pz(f(x₀))·2Δ:面积相等 z f 把 x₀ 附近的一段拉长 2 倍 概率质量不变 ⇒ pₓ(x) = pz(f(x))·|f′(x)|
图 4.5-1 可逆变换的两个方向与一维质量守恒。上半:密度评估沿 x → z 计算式 (4.5-4),生成连续样本则沿 z → x 使用逆变换。两个方向的成本由具体结构决定。下半:当 |f′(x0)|=2 时,长度约为 Δ 的小区间映为长度约为 2Δ 的区间,局部密度减半,表示概率质量的面积保持不变。

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。比较两个对应区域的概率,约去体积并取极限,得到多维公式:

\[p_{x}(x) = p_{z}( f(x) ) \cdot | det J_{f}(x) |\]
(4.5-5)雅可比行列式(Jacobian determinant)的绝对值给出局部体积缩放:大于 1 表示 x → z 时膨胀,小于 1 表示压缩。对连续可微映射,行列式非零保证该点附近存在可微逆,但不单独保证全局双射。

训练通常使用对数密度。若基础分布 pz 的各维相互独立,例如多维标准正态,其对数密度可逐维相加:

\[\operatorname{log} p_{\theta}(x) = \sum_{i=1}^{n} \operatorname{log} p_{z,i}( z_{i} ) + \operatorname{log} | det J_{f}(x) | \quad z = f_{\theta}(x)\]
(4.5-6)第一项的求和来自基础分布的独立性。对数域累加减少直接连乘造成的下溢;行列式计算、逆变换和网络前向的成本均需考虑。

多个可逆层可以复合为 f=fL∘…∘f2∘f1。令 h0=x,hℓ=fℓ(hℓ−1),最终 hL=z。复合映射的雅可比按链式法则相乘,行列式的乘积在对数域中变为求和:

\[\operatorname{log} | det J_{f} | = \sum_{\ell=1}^{L} \operatorname{log} | det J_{f_{\ell}}( h_{\ell-1} ) |\]
(4.5-7)各层在对应的中间变量处计算对数行列式,再逐层累加。设计便于计算行列式的单层结构,即可避免显式形成整个深网络的雅可比。

对连续训练样本,可最大化 Σ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_{A} = x_{A} \quad y_{B} = x_{B} ⊙ \operatorname{exp}( s(x_{A}) ) + t(x_{A})\]
(4.5-8)⊙ 为逐元素乘。s、t 仅以 xA 为输入,分别输出 B 组的对数缩放与平移参数。这是仿射耦合层(affine coupling layer),属于耦合结构的一种实现,并非所有耦合层都必须使用仿射变换。

给定 y,先由恒等分支恢复 xA=yA,再计算 s(yA) 与 t(yA)。此时 B 组的仿射系数已知,逆变换可逐元素求出:

\[x_{A} = y_{A} \quad x_{B} = ( y_{B} - t(y_{A}) ) ⊙ \operatorname{exp}( - s(y_{A}) )\]
(4.5-9)有限 s 的指数恒正,因此数学上的逆可直接计算。s、t 只提供系数,本身无需可逆;正逆计算时应使用相同的确定性条件函数。

按 y=(yA,yB) 与 x=(xA,xB) 分块,雅可比的左上块为单位阵 I,右上块为零,因为 yA 与 xB 无关。右下块是逐元素缩放形成的对角阵 diag(exp si)。左下块 ∂yB/∂xA 可以稠密,但块三角矩阵的行列式只取决于对角块:

\[det J = det(I) \cdot \prod_{i \in B} \operatorname{exp}( s_{i}(x_{A}) ) = \operatorname{exp}( \sum_{i \in B} s_{i}(x_{A}) ) \quad \operatorname{log} | det J | = \sum_{i \in B} s_{i}(x_{A})\]
(4.5-10)给定 s 的输出后,对数行列式只需 O(n) 次求和,无需形成稠密雅可比。这个成本不包含条件网络的前向计算。完整证明见习题 4.5-2。
仿射耦合层把输入分为两组:x_A 恒等复制,x_B 按条件网络 s、t 给出的系数做逐元素仿射;雅可比为分块下三角,行列式等于对角块之积 仿射耦合层:分组 → 复制 + 条件仿射 输入 x 输出 y x₁ x₂ x₃ x₄ x₅ x₆ xA xB yA = xA:恒等复制 条件网络 s(xA) 条件网络 t(xA) s、t 只依赖 xA,自身不必可逆 yB = xB ⊙ exp(s) + t(xA) x₁ x₂ x₃ y₄ y₅ y₆ yA yB 雅可比(按 xA、xB 排序的分块) I 0 ∗ diag(exp s) 分块下三角:行列式为对角块行列式之积,与块 ∗ 无关 log |det J| = Σ sᵢ(xA),得到 s 后求和为 O(n) 每层一组维度保持不变;交替分组使各维度参与变换
图 4.5-2 仿射耦合层的结构与雅可比。图中将六维输入等分为两组:xA(灰)恒等复制为 yA,并输入条件网络 s、t;xB(绿)按网络输出的系数逐元素缩放和平移,得到 yB。一般分组不要求两组维数相等。逆变换按式 (4.5-9) 计算。分块下三角结构使行列式只取决于对角块:左上块为 I,右下块为 diag(exp s),因此得到式 (4.5-10)。这省去了对稠密块 ∗ 的显式求值,但仍需计算 s、t 的网络输出。交替分组并堆叠多层,可使各维度都参与条件变换。

单个耦合层保留 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,并采用各维独立的基础分布:

\[z_{i} = ( x_{i} - \mu_{i}(x_{<i}) ) / \sigma_{i}(x_{<i}) \quad p(x) = \prod_{i=1}^{n} p_{z,i}(z_{i}) / \sigma_{i}(x_{<i})\]
(4.5-11)若基础变量 zi 独立服从 N(0,1),该单层仿射变换给出 xi | x<i ~ N(μ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)
给离散表示加入连续噪声,以连续密度模型训练;均匀去量化的期望对数密度给出相应离散对数似然的下界。

参考文献与延伸阅读

  1. Kingma DP, Welling M. 2014. Auto-encoding variational Bayes. International Conference on Learning Representations (ICLR 2014).
  2. Rezende DJ, Mohamed S. 2015. Variational inference with normalizing flows. Proceedings of the 32nd International Conference on Machine Learning (PMLR 37): 1530–1538.
  3. 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.
  4. Dinh L, Sohl-Dickstein J, Bengio S. 2017. Density estimation using Real NVP. International Conference on Learning Representations (ICLR 2017).
  5. Papamakarios G, Pavlakou T, Murray I. 2017. Masked autoregressive flow for density estimation. Advances in Neural Information Processing Systems 30 (NeurIPS 2017).
  6. Kingma DP, Dhariwal P. 2018. Glow: generative flow with invertible 1×1 convolutions. Advances in Neural Information Processing Systems 31 (NeurIPS 2018).
  7. 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).
  8. 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.