try ai
科普
编辑
分享
反馈
  • 连续归一化流

连续归一化流

SciencePedia玻尔百科
核心要点
  • 连续归一化流通过将平滑变换定义为常微分方程(ODE)的解来对复杂的概率分布进行建模。
  • 可逆性是归一化流的一个关键要求,通过简单地对定义的 ODE 进行时间反向求解,便可巧妙地实现。
  • 变换过程中概率密度的变化通过对向量场的散度进行积分来追踪,这是一个计算成本高昂的项,但可以通过 Hutchinson 迹估计器等方法使其变得易于处理。
  • CNF 是多功能工具,其应用涵盖生成艺术、数据压缩、构建物理学中的对称模型以及发现科学中的因果关系。

引言

对真实世界数据中发现的复杂高维概率分布(从自然图像到分子结构)进行建模,是现代机器学习的核心挑战。尽管存在许多生成模型,但它们往往难以捕捉错综复杂的细节,或需要受限的架构选择。归一化流提供了一种优雅的解决方案,它通过一系列可逆映射将一个简单的基础分布转换为一个复杂的分布。然而,这些离散的、分层的变换可能会显得僵硬且受计算限制。

本文探讨了连续归一化流(CNF),这是一种将此概念提升到新高度的范式,它不再将变换描述为一堆层的叠加,而是将其描述为一个由常微分方程(ODE)控制的单一、连续时间过程。这种视角的转变带来了深刻的理论和实践优势,从轻松实现可逆性到与物理系统动力学的自然联系。我们将首先深入探讨 CNF 的核心“原理与机制”,揭示其能够平滑扭曲概率空间的数学原理。随后,我们将漫游其“应用与跨学科联系”,发现这个强大的框架如何被用于压缩信息、构建物理对称模型,甚至加速科学发现。

原理与机制

想象一滴完美的球形墨水落入一杯水中。起初,它的形状很简单,是一个完美的圆形。但随着水的旋转和涡动,墨滴被拉伸和扭曲,形成一种极其复杂、精细的图案。归一化流就是对这个过程的数学描述:它是一个将简单形状(如高斯分布这样的简单概率分布)转换为与我们想要建模的数据相匹配的复杂形状的秘诀。

连续归一化流(CNF)将这个比喻推向了其最自然的结论。我们不再将变换视为一系列离散、生硬的步骤,而是将其想象成一个平滑、连续的运动,就像墨水颗粒在水中流动一样。每个颗粒的旅程都是一条路径,其在任何空间和时间点的速度都由一个“向量场”决定——这是一个告诉我们水流向何方、流速多快的函数。这种连续的演化过程由物理学和数学中最强大的工具之一描述:常微分方程(ODE)。

从分层到运动:连续深度极限

乍一看,常微分方程似乎与标准的深度神经网络相去甚远,后者是由一堆离散的层构建的。但是,如果我们堆叠大量非常简单、相同的层,会发生什么呢?

想象一个变换块,它接收一个输入 zzz 并应用一个微小的变化:znew=z+ϵf(z)z_{new} = z + \epsilon f(z)znew​=z+ϵf(z),其中 ϵ\epsilonϵ 是一个非常小的数,而 f(z)f(z)f(z) 是某个函数。如果我们应用这个块 NNN 次,其中 NNN 非常大,那么总的变换看起来就像是走了许多小步。当我们让步长 ϵ\epsilonϵ 缩小到零,而步数 NNN 趋于无穷,使得总“时间” T=NϵT = N\epsilonT=Nϵ 保持不变时,这一系列离散的步骤就模糊成一条平滑、连续的路径。这条路径就是以下 ODE 的解:

dz(t)dt=f(z(t))\frac{d z(t)}{dt} = f(z(t))dtdz(t)​=f(z(t))

这一美妙的联系揭示了,一个层间共享参数的极深残差网络,实际上是在逼近一个连续时间动态系统的流。层的参数定义了引导变换的向量场 f(z)f(z)f(z)。如果我们允许参数在不同层之间变化(非绑定参数),我们会得到一个更强大的模型,对应于一个时变向量场 f(z,t)f(z, t)f(z,t),它能够执行更复杂的空间变形。

流的会计师:追踪概率密度

这里的核心挑战是:当我们扭曲空间时,我们也在扭曲概率密度。如果我们的简单墨滴开始时中心浓度很高,那么这个浓度去了哪里?如果一个空间区域扩张,其内部的密度必须减小以保持总概率不变(总概率必须始终为 1)。如果它收缩,密度则必须增加。

这受一个直接源于物理学的原理支配:连续性方程。它仅仅是一个守恒的陈述。对于一个随流移动的粒子,其概率密度的变化率取决于流在该点的“扩张”或“收缩”程度。这种局部的扩张率由向量场的​​散度​​来衡量,记作 ∇⋅f\nabla \cdot f∇⋅f。散度就是向量场雅可比矩阵的迹,即 tr(∂f∂z)\mathrm{tr}(\frac{\partial f}{\partial z})tr(∂z∂f​)。

这就引出了连续归一化流的基本方程:

ddtlog⁡p(zt)=−∇⋅f(zt,t)=−tr(∂f(zt,t)∂z)\frac{d}{dt} \log p(z_t) = - \nabla \cdot f(z_t, t) = - \mathrm{tr}\left(\frac{\partial f(z_t, t)}{\partial z}\right)dtd​logp(zt​)=−∇⋅f(zt​,t)=−tr(∂z∂f(zt​,t)​)

为了找到一个数据点的最终对数概率,我们从一个简单基础分布(例如高斯分布)中的点开始,找到它的对数概率,然后将这个变化量在从基础分布到数据的整个路径上进行积分。这就像每个粒子都带有一个小会计师,根据流的局部扩张或收缩,不断更新其对数概率。

有时,我们可能希望流完全不改变体积,就像在玻璃杯中搅动水一样。这样的流被称为​​不可压缩流​​,它处处散度为零。对于这些流,粒子的对数概率在其路径上永不改变。这极大地简化了计算,并且对于某些类型的数据是理想的属性。巧妙的构造方法,例如使用流体动力学中的“流函数”,可以构建出保证是不可压缩的向量场。

构建可逆机器的艺术

任何归一化流的一个关键要求是变换必须是​​可逆的​​。我们需要能够将一个复杂的数据点映射回其在基础分布中的简单源头。我们如何确保这一点?

对于离散层流,这可能是一个头疼的问题。著名的通用逼近定理告诉我们,我们可以逼近任何连续函数,但它对其导数或可逆性只字未提。一个被训练来逼近可逆函数的网络本身最终可能变得不可逆。为了解决这个问题,我们必须将可逆性直接构建到架构中。一种流行的策略是使用​​耦合层​​,它根据数据的另一部分来变换数据的一部分,而保持第一部分不变。这种结构自然地导致一个三角雅可比矩阵,其行列式就是其对角线元素的乘积。只要这些元素非零,变换就是可逆的。

但对于连续归一化流,可逆性几乎是免费的!一个基本的 ODE 定理(Picard-Lindelöf 定理)保证,如果向量场 fff 足够平滑(技术上讲,是 Lipschitz 连续的),那么对于任何起始点,都存在唯一的解轨迹。为了逆转这个流,我们不需要计算一个困难的逆函数。我们只需在时间上向后求解同一个 ODE。这是通过连续动力学描述变换的一个极其优雅和强大的特性。

使其变得实用:散度技巧与标准部件

理论很美,但我们能计算它吗?瓶颈在于散度项 tr(∂f∂z)\mathrm{tr}(\frac{\partial f}{\partial z})tr(∂z∂f​)。对于一个 DDD 维系统,天真地计算完整的 D×DD \times DD×D 雅可比矩阵然后求其对角线元素之和,其计算成本可能高得令人望而却步,其复杂度为 O(D2)O(D^2)O(D2)。

这时,一点数学魔法就派上用场了。​​Hutchinson 迹估计器​​允许我们仅使用单个矩阵-向量积来获得任何矩阵 JJJ 的迹的无偏估计。它依赖于恒等式 E[ϵ⊤Jϵ]=tr(J)\mathbb{E}[\epsilon^\top J \epsilon] = \mathrm{tr}(J)E[ϵ⊤Jϵ]=tr(J),其中 ϵ\epsilonϵ 是一个均值为零、协方差为单位矩阵的随机向量(例如,其元素是随机的 +1+1+1 和 −1-1−1)。这将估计散度的成本降低到单次雅可比-向量积的评估,其复杂度为 O(D)O(D)O(D),从而使 CNF 在高维数据上变得可行。

此外,CNF 框架足够灵活,可以整合来自深度学习世界的熟悉构建块。例如,一个批量归一化层,当其运行统计数据被冻结时(就像在推理过程中那样),就只是一个简单的逐元素仿射变换。它是完全可逆的,并且其对数行列式易于计算,这使其成为一个可以在向量场定义中使用的有效组件。

弥合差距:从连续到离散

我们必须面对最后一个关键问题。归一化流是连续的机器。它们变换连续空间,并由概率密度描述。但现实世界中的许多数据是离散的——像素值为 0 到 255 的整数,或分类标签。一个连续双射无法将一个连续空间(如高斯分布)映射到一个离散点集;这是一个基本的数学不可能性。变量替换公式根本不适用。

标准的解决方案是一个非常简单的想法:​​去量化​​。我们通过添加少量噪声来使离散数据连续化。最常见的方法是为每个离散值添加一个从区间 [0,1)[0,1)[0,1) 中均匀抽取的随机数。一个离散的整数值 101010 就变成了在 [10,11)[10, 11)[10,11) 之间的某个连续值。

这改变了我们的目标。我们再也无法计算离散数据点的精确对数概率。取而代之的是,我们计算去量化数据的期望对数密度。事实证明,这个期望值是真实离散对数似然的一个下界,这个结果可以从琴生不等式对于像对数这样的凹函数优雅地推导出来。

log⁡P(z)=log⁡(∫[0,1)DpX(z+u) du)≥∫[0,1)Dlog⁡pX(z+u) du=EU∼U[log⁡pX(z+U)]\log P(z) = \log\left(\int_{[0,1)^D} p_X(z + u) \, \mathrm{d}u\right) \ge \int_{[0,1)^D} \log p_X(z + u) \, \mathrm{d}u = \mathbb{E}_{U \sim \mathcal{U}}\left[\log p_X(z + U)\right]logP(z)=log(∫[0,1)D​pX​(z+u)du)≥∫[0,1)D​logpX​(z+u)du=EU∼U​[logpX​(z+U)]

我们优化这个下界,这是一个可处理的目标。虽然这引入了少量的近似误差或偏差,但它使我们能够将强大的连续流机制应用于我们所生活的 messy、离散的世界。这种用易处理性换取精确性的主题在机器学习中很常见;例如,使用随机数量的层(“随机深度”)也可能在似然估计中引入偏差,但可能提供正则化效益。正是这些有原则的近似方法,将如此优雅的理论模型转变为实用的、最先进的工具。

应用与跨学科联系

我们花了一些时间探索连续归一化流的优雅机制——那些将一个概率分布平滑地塑造成另一个的微分方程之舞。我们看到了一个由可学习的向量场控制的粒子的轨迹,如何能从一个简单的、已知的形状,描绘出一个具有惊人复杂性的分布。这一切都非常精妙。但是,任何科学思想的真正考验,其美丽的真正度量,不仅在于其内在的一致性,还在于其连接、解释和创造的力量。我们能用这套机制做些什么呢?

事实证明,答案是:多得惊人。CNF 的原理不仅仅是一个孤立的数学奇观;它们是一个强大的透镜,通过它我们可以审视和解决横跨众多学科的问题。让我们踏上一段旅程,看看当这些思想与现实世界相遇时,它们如何绽放出绚烂的花朵,从数据压缩的实用艺术到因果关系的 foundational science。

生成艺术家与信息理论家

从本质上讲,CNF 是一个生成模型。它学习创造看起来像它所训练的数据的数据。但是,什么叫“看起来像”数据呢?这意味着捕捉其底层的概率分布。许多更简单的模型试图做到这一点,但当现实变得复杂时,它们往往力不从心。

想象一下,你正在尝试画一幅复杂的风景画,但你唯一的工具是一套不同尺寸的预制圆形图章。你可以通过到处盖这些圆形来近似这幅风景,但你永远无法捕捉到山脉的锯齿状边缘或云朵的缥缈、复杂的卷须。像高斯分布这样的简单分布的混合,就像这套图章。虽然有用,但它难以表示我们在现实世界中看到的尖锐、复杂,有时甚至是“重尾”的分布,在这些分布中,极端事件比高斯分布预测的更常见。而连续归一化流,则像拥有一支无限灵活的画笔。因为它能学习任何平滑的变换,所以它是概率密度的“通用逼近器”。原则上,它可以画出任何风景,不仅能捕捉到大致的形状,还能捕捉到地形最精细的细节和最不寻常的特征。

这种精确建模概率分布 p(x)p(x)p(x) 的能力,与另一个领域有着奇妙而深刻的联系:信息论。你可能认为对数似然 log⁡p(x)\log p(x)logp(x) 只是我们在训练期间试图最大化的一个抽象分数。但它有一个具体、物理的意义。伟大的信息理论家 Claude Shannon 告诉我们,编码一条信息 xxx 所需的最优比特数恰好是 −log⁡2p(x)-\log_2 p(x)−log2​p(x)。

这是一个深刻的洞见!这意味着,一个生成模型,从根本上说,是一个数据压缩引擎。一个给某张图片赋予高概率的模型,实际上是在说:“我觉得这张图片描述起来很简单;它不需要太多信息。”一个赋予低概率的模型则是在说:“这是一张令人惊讶、复杂的图片,需要大量信息来指定。”因此,训练一个 CNF 来最大化数据集的似然,等同于训练它成为一个专业的数据压缩器。“bits-back”编码方案明确了这一联系,表明在一系列流模型下,一张图片的理论编码长度与其计算出的对数似然直接相关。模型越好,它传输数据所需的信息就越短。

物理学家:将对称性构建到机器中

物理学中最强大的思想之一是对称性。从时间平移对称性产生的能量守恒(诺特定理)到标准模型的基本对称性,我们发现自然法则以优美的方式受到约束。描述两颗恒星之间引力的方程不应取决于你实验室的朝向;它是旋转不变的。

我们能将这些世界的基本对称性直接构建到我们的机器学习模型中吗?有了 CNF,答案是响亮的“是”。CNF 的“引擎”是决定流动的向量场 f(z,t)f(z, t)f(z,t)。我们可以自由地设计这个引擎。如果我们知道我们的数据具有某种对称性——例如,如果医学扫描的分类不应取决于其旋转——我们就可以构造一个天生就尊重这种对称性的向量场。

对于一个二维问题,可以通过组合两个关键元素来设计一个完全旋转不变的流:一个仅根据点与原点的距离来缩放点的函数(径向缩放),以及一个旋转空间的变换。如果旋转部分由一个正交矩阵(它保持距离和角度)处理,那么模型最终的对数似然只取决于一个点与原点的距离,而与其角度无关。这个模型在构造上就是旋转不变的。它不需要浪费其能力从数据中学习这个属性;这是我们预先植入模型 DNA 中的先验知识。这种“几何深度学习”的原则非常强大,使我们能够为物理学、化学和计算机视觉中已知存在此类对称性的问题构建更高效、更鲁棒的模型。

虚拟科学家:发现分子与因果

到目前为止,我们已经看到 CNF 作为描述和压缩数据的工具。但它们的影响力远不止于此,甚至延伸到科学发现过程本身。

考虑材料科学领域。寻求具有理想性质的新材料——更强的合金、更高效的太阳能电池、新颖的药物——涉及到在原子排布的浩瀚空间中导航。对每一种可能性都进行物理实验是不可能的。我们需要的是一个“in silico 实验室”,一个我们可以提出和评估新分子的虚拟沙箱。CNF 正在成为实现这一目标的关键技术。它们可以学习从一个简单的潜在空间到稳定分子的复杂三维几何形状的平滑映射。通过从简单分布中采样并向前流动,模型可以生成新颖、物理上合理的分子结构,然后可以优先进行进一步的模拟或合成。要实现这一点,需要克服 ODE 散度项巨大的计算成本,但像 Hutchinson 迹估计器这样的巧妙技巧——用一个廉价且无偏的随机计算代替一个确定性但昂贵的计算——展示了驱动该领域前进的深层理论与实用工程之间的美妙互动。

也许 CNF 最雄心勃勃的应用在于从相关性中解开因果关系。我们经常看到两件事是相关的,但要弄清楚一件事是否导致另一件事则要困难得多。材料中的某个特定原子描述符是否导致其具有高熔点,还是它们都由某个其他隐藏因素引起?为了回答这个问题,科学家使用结构因果模型(SCM)的语言,它不仅表示相关性,还表示变量之间相互影响的“机制”。

CNF 是构建数据驱动 SCM 的完美工具。因为它的生成过程是有方向性的——从一个潜在的原因流向一个观察到的结果——它可以自然地模拟像 X→YX \rightarrow YX→Y 这样的因果图。模型为原因(XXX)和结果(YYY,以 XXX 为条件)学习独立的变换。这不仅仅是学习一个联合分布 P(X,Y)P(X, Y)P(X,Y);它是在学习机制本身。一旦你有了机制,你就可以提出干预性问题。你可以问:“如果我强制描述符 XXX 取一个特定值 x0x_0x0​,属性 YYY 的分布会是怎样?”用因果语言来说,这就是计算 P(y∣do(X=x0))P(y | do(X=x_0))P(y∣do(X=x0​))。对于我们基于 CNF 的 SCM,答案惊人地简单:我们只需在 YYY 的生成过程中将 XXX 的值固定为 x0x_0x0​,然后看看会出现什么分布。这使我们能够在计算机内进行“虚拟实验”,这是科学发现的一个强大的新范式。

一点警示:似然到底意味着什么?

在领略了连续归一化流的非凡力量和多功能性之后,人们很容易将其视为万能灵药。但科学是通过批判性思维和适度的怀疑精神进步的。关键是要问:这些模型真正在学习什么?

一个有趣且起初令人困惑的实验结果为我们揭示了一些线索。研究人员发现,一个专门在一个自然图像数据集(比如 CIFAR-10,包含各种动物和车辆)上训练的生成模型,有时会给一个完全不同的数据集(比如街景门牌号码数据集 SVHN)中的图像赋予更高的似然值,而它从未见过这些图像。

这怎么可能?如果模型是在猫和狗的图片上训练的,它不应该觉得门牌号码的图片“更不可能”吗?当我们记起模型实际上在做什么时,这个悖论就解决了。像 CNF 这样的深度生成模型非常擅长学习低层次的统计规律性——像素颜色的分布、相邻像素的相关性、表面的平滑度。SVHN 图像通常以简单的、统一的背景衬托着清晰的数字,在这方面统计上非常“简单”。它们具有低复杂度的纹理。一个在 CIFAR-10 复杂多样的纹理上训练的模型,学会了非常有效地描述这种简单的表面,赋予它们高概率密度。相比之下,一张“典型”的 CIFAR-10 图像可能是一只毛茸茸的猫在一个杂乱的背景前,充满了“难以解释”的复杂纹理,因此获得较低的密度值。

这给了我们一个深刻的教训:高的似然分数并不一定意味着一个输入在语义上是“分布内”的。它意味着这个输入具有模型认为易于表示的低层次统计属性。这不是模型的失败,而是对其学习内容的揭示。它提醒我们,这些是强大的工具,但它们不是魔法。理解它们的行为、它们的优点和它们的局限性,才是一个真正科学家的标志。而正是这种理解,照亮了前进的道路,促使我们去构建不仅能捕捉世界统计数据,还能捕捉其更深层次的因果和组合结构的新模型。