第四章 · 4.5

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

Normalizing Flows and the Jacobian
流模型把数据分布放进一串可逆变换:分子特征经网络映到简单基础分布,密度按变量替换公式随雅可比行列式逐层缩放,对数似然精确可算。本节从一维的概率质量守恒推出变量替换公式,推广到多维;剖析任意网络下行列式不可解析的困境,拆解耦合层与自回归流两类可解析结构,清点精确似然的代价,为 GraphAF 铺设数学地基。

4.5.1 训练准则的谱系:下界、对抗与精确似然

4.2 节立起自回归骨架,4.3–4.4 节用回报训练它。本节换一副目标:回到极大似然,而且要算得准——逐样本的 log p(x) 不许有下界、不许有近似。深度生成模型按训练准则排成一条谱系。变分自编码器(Kingma & Welling, 2014)引入潜变量 z,边际似然要对 z 积分,积分不可解,只好退而最大化证据下界(evidence lower bound, ELBO)

log pθ(x) ≥ Eqφ(z|x) [ log pθ(x | z) ] − KL( qφ(z | x) ‖ p(z) )
(4.5-1)qφ(z|x) 为编码器,p(z) 为先验。右端与 log pθ(x) 之间的缺口恰是后验近似的 KL 项——下界优化得再好,也不知道真值还差多少。

凡下界必有缺口:容量再大,优化到达的也只是下界,训练曲线无法回答「真实似然到了什么水平」。生成对抗网络走另一极端,干脆放弃似然:无似然(likelihood-free)的对抗训练让判别器与生成器互相施压,训练结束后密度本身没有定义,模型之间只能靠样本与 4.1 节的评估指标间接比较。4.3–4.4 节的策略梯度按回报优化,同样不在似然谱系之内。流模型(normalizing flow)走第三条路:直接给出精确对数似然(exact log-likelihood),无下界、无近似、逐样本可算(Rezende & Mohamed, 2015;综述见 Papamakarios et al., 2021)。三条路的取舍列于表 4.5-1。

表 4.5-1三类生成模型的训练准则对照
模型训练准则单样本似然采样主要代价
VAE最大化 ELBO(式 4.5-1)只有下界,真值不可见一次解码下界缺口;样本偏模糊
GAN判别器—生成器对抗无似然,密度未定义一次前向训练不稳;无法以 NLL 互相比较
流模型极大精确对数似然(式 4.5-4)精确可算一次逆变换可逆约束限制架构(4.5.4 节起)

分子生成在乎精确似然,理由有三。其一,训练有了逐样本的监控信号:哪个分子被模型认为「不像」,数值直接可见。其二,不同模型在同一把尺上可比,负对数似然是与 4.1 节各项指标互补的硬通货。其三,似然目标与性质奖励可以叠加以外的次序组合——先以纯似然预训练、再以奖励微调,GraphAF(4.6 节)正是这么做的。天下没有免费的精确:密度能算准的前提,是生成过程必须整体可逆;可逆性会反过来捆住架构的手脚。这份账单先挂在这里,4.5.4 节起逐项清点。

4.5.2 一维:概率质量守恒与变量替换

一切从一维开始。设随机变量 X 在数据空间取值,密度 pₓ(x);取映射 z = f(x),f 逐点可微且严格单调。严格单调保证双射(bijection):每个 x 对应唯一 z,反之亦然;可微保证导数存在,单调则排除导数变号过零的麻烦。在这组假设下,px 与 pz 之间有一个完全确定的换算关系。推导只靠一件事:概率质量在变换下守恒——变换搬运的是随机变量的取值,搬不动概率本身。

取小区间 [x0, x0+Δ],Δ 小到 px 在其上近似恒定。事件 {X ∈ [x0, x0+Δ]} 与事件 {Z ∈ [f(x0), f(x0+Δ)]} 是同一个事件——f 一一对应,x 落进区间当且仅当 z 落进像区间。同一事件,两种记账。左端按数据空间的密度记账:

P ≈ px(x0) · Δ
(4.5-2)概率=密度×长度。这是密度的定义本身:单位长度上的概率质量。

右端按潜空间的密度记账,像区间的长度由一阶泰勒展开给出:f(x0+Δ) − f(x0) ≈ f′(x0)·Δ,故

P ≈ pz( f(x0) ) · | f′(x0) | · Δ
(4.5-3)f′(x0) 是映射在 x0 处的局部长度缩放率;取绝对值,兼容递减映射。

两笔记的是同一笔账,相等,约去 Δ,得变量替换(change of variables)公式:

pₓ(x) = pz( f(x) ) · | f′(x) |,  log pₓ(x) = log pz( f(x) ) + log | f′(x) |
(4.5-4)同一公式两头用:已知 pz 与 f,造出数据密度(生成方向);给定 x,算它在模型下的密度(评估方向)。
定义

变量替换公式(一维)。设 f: X → Z 为双射,逐点可微,且 f′ 处处非零,则随机变量 Z = f(X) 的密度与 X 的密度满足 pₓ(x) = pz(f(x))·|f′(x)|。三条假设各司其职:双射保证事件一一对应(质量守恒有意义);可微保证局部缩放率存在;f′ 非零保证逆映射也可微、密度不发散。三者合起来,就是后文「可逆 + 行列式非零」架构约束的一维原型。

三句直觉把公式焊牢。第一,密度不是不变量。守恒的是概率质量,密度是「单位长度的质量」;换一把被拉长的尺,同一份质量的线密度自然变稀。|f′| 就是这把尺的拉伸倍数,公式里的乘除全是对度量变换的补偿。第二,压缩则密度升高。取 f(x) = 2x(即 x = z/2):z 上的标准正态搬回 x 轴,宽度减半、峰高翻倍——px(0) = 2·pz(0)。同一份概率质量装进更短的区间,密度必须升。第三,可逆性不是装饰。若 f 非单射(如 x²),两个 x 挤进同一 z,质量从两处汇到一处,单凭 z 与 f 无法分摊回去,公式失效;若 f′ 在某点为零(如 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 可逆变换的两个方向与一维质量守恒。上半:同一个双射 fθ,训练时沿 x → z 正向计算密度(式 4.5-4),采样时沿 z → x 反向造新样本,两个方向都要解析、都要高效。下半:x0 附近长为 Δ 的区间经 f 映为长 2Δ 的区间,密度减半、面积不变——密度不是坐标变换的不变量,必须乘上局部长度缩放率 |f′| 加以补偿。

4.5.3 多维推广:雅可比行列式作为体积缩放因子

分子不是一维数,向量 x ∈ Rn 的变换 f: Rn → Rn 没有「导数」可用,接替者是雅可比矩阵(Jacobian matrix) Jf(x),其第 (i, j) 元为 ∂fi/∂xj。微积分的标准结论:f 在 x0 附近的最优线性近似是 f(x0+δ) ≈ f(x0) + Jδ。一维推导里的「长度缩放率」,在多维由这个线性映射接管。

线性映射把单位立方体映为平行多面体,n 维体积恰为 |det J|——这是行列式的几何定义,也是全部流模型数学的支点。把一维推导逐句翻译:取以 x0 为中心的小体积元,体积 δV;像体积为 |det Jf(x0)|·δV;事件等价、质量守恒、约去 δV,得

pₓ(x) = pz( f(x) ) · | det Jf(x) |
(4.5-5)雅可比行列式(Jacobian determinant)是变换的逐点体积缩放率:|det J|>1 处局部膨胀、<1 处局部压缩。行列式处处非零 ⇔ 局部双射;整体双射还须 f 全局一一对应。

训练与数值实现都放在对数域。基础分布 pz 通常取各维独立的标准正态,对数密度按维可加,于是

log pθ(x) = Σi=1n log pz,i( zi ) + log | det Jf(x) |, z = fθ(x)
(4.5-6)第一项的求和号来自基础分布的逐维独立;对数域累加避免下溢。第二项是流模型的全部难点所在。

最后一步组合。「流」指一串可逆变换的复合:f = fL ∘ … ∘ f2 ∘ f1,中间变量 h = f(hℓ−1)。复合的雅可比按链式法则相乘,行列式随之分解:

log | det Jf | = Σℓ=1L log | det Jf( hℓ−1 ) |
(4.5-7)整个深流的对数行列式=各层对数行列式之和。每层只需算自己的行列式——问题从「一个深网络的雅可比」化归为「设计行列式可解析的单层结构」,这正是下两节的主角。

至此训练闭环:最大化 Σx log pθ(x),梯度经自动微分穿过可逆层,无下界、无近似。剩下唯一的、也是致命的障碍——第二项怎么算。

4.5.4 行列式困境:精确似然的入场费

给一个任意的深度网络 fθ,式 (4.5-6) 的第二项算得动吗?算 |det J| 先要拿到整个 n×n 雅可比:反向传播一次给一个方向的梯度,凑齐 n 列要 n 次反向传播(或 n² 次前向偏导);随后 LU 分解再花 O(n³)。分子图的特征维数以十计尚可承受,图像上千维则彻底不可行——而训练每一步、每个样本都要重复整件事。数值开销还不是根子上的病:任意网络根本不保证双射,行列式非零也不保证全局一一对应。「表达力不受限的任意网络」与「可逆且行列式可解析的网络」,两个要求几乎不相交。

出路只有一条:不改造任意网络,反其道行之——从可逆与行列式可解析出发,设计特殊结构,再靠堆叠补足表达力。两条主干道:耦合层(4.5.5 节),一半维度恒等、一半仿射,行列式解析、两头都快;自回归流(4.5.6 节),按链式法则逐维变换,雅可比天然下三角。代价与收益并存,先立警示。

警示

可逆约束的表达力代价。双射要求维数守恒:潜空间维数必须等于数据维数,VAE 那种压到二维、三维做可视化的低维瓶颈,流模型给不了。常用组件大半出局:ReLU 在负半轴折叠信息、max-pooling 丢弃信息、dropout 随机置零,皆不可逆。耦合层每层又有一半维度原样通过,单层表达力再打折扣。表达力只能靠深度、靠交替结构、靠更大的 s、t 网络往回挣——同等参数量下,可逆网络的拟合上限一般低于不受约束的网络。精确似然是一张门票,票价写在架构上。

4.5.5 耦合层:一半复制,一半仿射

耦合层(coupling layer)出自 NICE 的加性原型(Dinh et al., 2015),定型于 RealNVP 的仿射形式(Dinh et al., 2017)。思路一句话:把维度劈成两半,一半动、一半不动——不动的一半保证可逆性收发自如,动的一半保证变换有实质内容。设 x = (xA, xB)(按坐标前一半、后一半劈分,或按掩码选取),正向变换为

yA = xA,  yB = xB ⊙ exp( s(xA) ) + t(xA)
(4.5-8)⊙ 为逐元素乘;s、t 是两个任意的深度网络,输入只有 xA。这是仿射耦合层(affine coupling layer):xB 的每个分量被逐元素地缩放(exp s)与平移(t),缩放平移的参数由 xA 决定。

可逆性一眼可验。从 y 反解 x:xA = yA(恒等);而 s、t 只依赖 xA——xA 既已到手,缩放与平移的系数便是已知数,逐元素反解即可:

xA = yA,  xB = ( yB − t(yA) ) ⊙ exp( − s(yA) )
(4.5-9)无需解方程组、无需迭代;指数恒正保证 exp(s) 可除、exp(−s) 存在。s、t 本身可否逆根本无人过问——它们只产出系数,不直接搬运变量。

行列式的账同样干净。把 y = (yA, yB) 对 x = (xA, xB) 排成分块雅可比:yA 恒等于 xA,故左上块是单位阵 I、右上块是零(yA 与 xB 无关);yB 对 xB 逐分量仿射,右下块是对角阵 diag(exp si);左下块 ∂yB/∂xA 稠密——s、t 是任意网络——但分块三角矩阵的行列式不含它:

det J = det(I) · ∏i∈B exp( si(xA) ) = exp( Σi∈B si(xA) ), log | det J | = Σi∈B si(xA)
(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 任意深、任意结构,不求可逆 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),只读网络输出,O(n) 代价:一半维度恒等通过;交替劈分、层层堆叠以补救
图 4.5-2 仿射耦合层的结构与雅可比。输入劈为两半:xA(灰)经顶部通道恒等复制为 yA,同时喂给两个任意网络 s、t;xB(绿)按 s、t 给出的系数做逐元素仿射,得到 yB。逆变换按式 (4.5-9) 逐元素解析执行。分块雅可比呈下三角:右下对角块 diag(exp s) 独自决定行列式(式 4.5-10),稠密的 ∗ 块被三角结构排除在外——s、t 可取任意网络而行列式分文不加,账单只落在「一半维度不动」上,靠交替劈分堆叠偿还。

「一半维度不动」是耦合层的软肋:任何一层里都有一半输入原样通过。补救办法是交替。相邻层换一种劈分——反转坐标次序、换掩码模式,或经可逆的 1×1 可逆混合后再劈(Kingma & Dhariwal, 2018)——上一层当 xB 的维度,这一层轮值 xA。堆叠 L 层后,每个维度都反复在「变换者」与「供料者」之间轮换,深度的复合弥补单层的保守。构造要点收进方法框。

方法

仿射耦合层的构造步骤。① 选劈分:固定劈半、棋盘或通道掩码,或先做可逆 1×1 混合再劈;② 让 xA 通过两个任意网络,得缩放 s(xA) 与平移 t(xA);③ 正向:yA = xA,yB = xB ⊙ exp(s) + t;④ 逆向:按式 (4.5-9) 逐元素解析反解;⑤ 对数行列式直接取 Σ si(xA),不算行列式;⑥ 换掩码交替堆叠多层,层间可夹 ActNorm 稳定尺度(4.5.7 节)。训练与采样两个方向各一次前向,代价对称——这是耦合层对自回归流的最大优势。

习题 4.5-1

设二维线性变换 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₂ 各服从 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 倍。A 把 z 空间的概率质量压进体积只有六分之一的一块区域,同一份质量装进更小的体积,密度必须升到六倍。(4) det A′ = 2/3,log |det A′| = log(2/3) ≈ −0.41,对数行列式为负——单独看是减分项:这一变换在第二维把体积放大,密度被摊薄。但似然由两项共同决定(log px = log pz(Ax) + log|det A|):变换同时把点搬到了 pz 取值不同的位置,两项之和才是最终得分。判断一个流的好坏,永远看两项之和,不看单项。

习题 4.5-2

证明仿射耦合层(式 4.5-8)可逆,给出逆的解析式;并证明其雅可比行列式恒正且 log |det J| = Σi∈B si(xA)。

参考解答

可逆性:设 y = (yA, yB) 已知。第一半直接得 xA = yA(恒等)。第二半的系数 s、t 只以 xA 为输入,xA 既已还原,s(yA)、t(yA) 便是已知数,逐元素反解:xB = (yB − t(yA)) ⊙ exp(−s(yA))。指数函数恒正,exp(−s) 处处存在,除法逐点可行,无须解任何非线性方程组。把逆式代回正向式验证:[(xB⊙exp s) + t − t] ⊙ exp(−s) = xB,闭合。正逆复合均为恒等,双射成立。行列式:按 (yA, yB) 对 (xA, xB) 排序分块。由 yA = xA 得 ∂yA/∂xA = I、∂yA/∂xB = 0;由 yB 的第 i 个分量只依赖 xB 的第 i 个分量(仿射系数只随 xA 变),得 ∂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)。证明的要害在两处:上右块为零(yA 与 xB 无关),下右块为对角(yB 逐分量依赖 xB);稠密的 ∗ 块不入行列式——「s、t 可取任意网络而代价为零」的机关正在于此。

4.5.6 自回归流:链式法则的条件变换版

第二条主干道把 4.2 节的链式法则直接搬进流框架。联合密度按任意固定次序分解为 p(x) = ∏i p(xi | x<i);自回归流(autoregressive flow)(Papamakarios et al., 2017)给每个条件分布换一种写法——不再是离散类别上的 softmax,而是一次标量变换(scalar transformation)加一维基础分布:网络读前缀 x<i,输出变换参数 μi、σi(σi > 0),令

zi = ( xi − μi(x<i) ) / σi(x<i),  p(x) = ∏i=1n pz,i(zi) / σi(x<i)
(4.5-11)每个条件恰是一维高斯:xi | x<i ~ N(μi, σi²)。对照式 (4.5-4):逐条件的标量替换连乘,正是链式法则与变量替换的合流。

两套语言在此完全等价。联合变换 z = f(x) 的雅可比是下三角阵——zi 只依赖 x≤i,对 xj(j > i)的偏导为零;对角元为 ∂zi/∂xi = 1/σi,故 log |det J| = −Σ log σi,与式 (4.5-11) 逐项相扣。链式法则天然把联合密度的变量替换拆成每维一个标量替换——一维公式(式 4.5-4)用 n 次即得全部。与 4.2 节自回归生成的同构也一目了然:那边每步输出「动作的条件分布」,这边每维输出「条件变换+基础分布」;骨架同为链式法则,条件分布的载体从 softmax 换成了可逆标量变换。GraphAF(4.6 节)做的正是这次置换,再把条件网络的输入换成逐步长大的分子图。

训练与采样的不对称是自回归流的性格。训练沿 x → z 正向:给定数据 x,各维条件只依赖 x 的真实前缀——与 4.2.4 节的 teacher forcing 同源——一遍前向即可并行算出全部 zi、σi 与对数似然。采样沿 z → x 反向:xi = μi(x<i) + σi(x<i)·zi,第 i 维要等前 i−1 维全部造完,只能逐维串行。若把条件改装在 z 的前缀上,快慢两向恰好对调。耦合层则两头各一次前向,训练采样对称。这一处差别,选型时常常比表达力更要紧。

耦合层(RealNVP 型)

  • 每层一半维度变换、一半恒等;
  • 训练与采样各一次前向,代价对称;
  • 表达力靠交替劈分与深度堆叠补偿。

自回归流(MAF 型)

  • 每维一个条件标量变换,雅可比下三角;
  • 训练并行(teacher forcing 式)、采样逐维串行;
  • 与 4.2 的生成骨架同构,GraphAF 的直接原型。

4.5.7 流的代价清单与去向

精确似然不是白来的。把全节的账合在一处,四项。

其一,架构约束。可逆与行列式可解析写进结构,代价已在 4.5.4 节的警示框立账:维数守恒、常用组件出局、单层保守。深度与交替结构能补,但同等参数量下可逆网络的拟合上限一般偏低。

其二,数值稳定。exp(s) 过大则 yB 溢出、过小则梯度消失;对数行列式与密度一律在 log 域累加(式 4.5-6、4.5-7),s 的幅值常加软限制。工程上再配ActNorm(activation normalization)一类可逆的逐通道仿射归一化,以数据驱动的初始化稳住各层尺度(Kingma & Dhariwal, 2018)——它本身就是一次行列式已知的小变换,不破坏精确性。

其三,离散数据。变量替换是连续密度的定理;像素、词、原子类型都是离散量。图像流的办法是去量化(dequantization):给整数值加连续噪声嵌入实数空间,并在似然里扣除相应的体积修正。分子更棘手:原子类型与键型是类别变量,图又离散且不定长。GraphAF 的处置是每维类别配一个条件高斯——从流中采出连续标量,按所落区间离散成类别,类别概率即高斯在该区间上的积分;既守住流的可逆框架,又把离散化显式写进密度(4.6 节展开)。

其四,方向成本。两个方向都要解析、都要高效。耦合层天生对称;自回归流一头并行一头串行,采样慢是结构性短板,只能靠缓存与蒸馏缓解。

小结。本节把流模型的数学立了起来:概率质量守恒给出变量替换公式,雅可比行列式量度体积缩放,深流按层分解行列式;任意网络算不动行列式,耦合层与自回归流以结构换解析,精确似然由此到手;代价是维数守恒、组件受限与数值纪律。4.6 节把自回归流装上 4.2 节的图骨架,配上价约束掩码与预训练—微调范式,得到 GraphAF——本节数学的第一次分子级实战。

习题 4.5-3

论述:流模型与 VAE 都以潜变量组织生成、都能训练与采样,为何一个能给出精确似然、另一个只能给下界?从映射是否双射、维数能否压缩、密度是否有解析定义三点展开,并结合分子生成场景回答:需要低维连续潜空间做性质优化时选谁?需要精确监控训练、与其他模型比对 NLL 时选谁?

参考解答

第一点,映射性质。VAE 的编码器 q(z|x) 输出分布而非点,解码 p(x|z) 又是随机的:x → z → x 的回路两次引入随机性,不构成双射,变量替换公式无从谈起,边际似然的积分不可解,只能以 ELBO 近似。流模型的 f 是确定的双射,正逆两个方向都有解析式,密度经变量替换精确可得——精确性直接来自双射性。第二点,维数。双射要求维数守恒,流的潜空间只能与数据同维,压不成二维、三维的连续潜空间;VAE 恰可自由设窄瓶颈,得到紧凑、可插值、可做梯度引导的潜表示。第三点,密度。VAE 的数据密度没有解析形式,估计要靠重要性采样一类手段;流的逐样本对数似然随手可算,训练监控与模型比较直接。落到场景:要做性质导向的连续优化——在潜空间里以梯度爬性质面——选 VAE 式编码—解码结构(或第 2 章 Gómez-Bombarelli 一系的连续表示);要精确的似然目标做预训练与模型比对,选流模型一系(GraphAF)。两条路线并不互斥:以流精化 VAE 的后验(Rezende & Mohamed, 2015 的原始动机)就是一例融合。


关键术语

流模型 (normalizing flow)
以一串可逆变换把简单基础分布弯成数据分布的生成模型,对数似然精确可算。
变量替换 (change of variables)
密度在双射下的换算规则:新密度=基础密度×体积缩放因子的绝对值。
雅可比行列式 (Jacobian determinant)
变换局部线性化的体积缩放率;进入对数似然的修正项,流模型的核心难点。
基础分布 (base distribution)
流的源头分布,通常取各维独立的标准正态。
双射 (bijection)
一一对应且满射的映射;变量替换公式与可逆采样的前提。
证据下界 (evidence lower bound, ELBO)
VAE 优化的似然下界,与真值之间的缺口来自后验近似。
精确对数似然 (exact log-likelihood)
无下界、无近似的逐样本对数密度;流模型的标志性能力。
耦合层 (coupling layer)
一半维度恒等复制、另一半做条件仿射的可逆层;雅可比分块三角,行列式解析。
仿射耦合层 (affine coupling layer)
耦合层的尺度—平移形式 yB = xB⊙exp(s)+t;对数行列式等于 s 之和。
自回归流 (autoregressive flow)
按链式法则逐维做条件标量变换的流;训练可并行、采样须串行。
ActNorm (activation normalization)
可逆的逐通道仿射归一化,稳定各层尺度与 log-det 的数值。
去量化 (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 R. 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.