try ai
科普
编辑
分享
反馈
  • 基于能量的模型

基于能量的模型

SciencePedia玻尔百科
核心要点
  • 基于能量的模型为数据分配一个标量“能量”,其中合情理的数据具有低能量,而不太可能的数据具有高能量,这类似于物理学中的势能。
  • 训练 EBMs 是一个对比过程,涉及降低真实数据点的能量,同时提高模型生成的“负”样本的能量。
  • 使用 EBMs 的主要挑战是难以处理的配分函数,在训练过程中通常使用对比散度等近似方法来规避这一问题。
  • EBM 框架为现代人工智能提供了一个统一的视角,揭示了 Transformers、扩散模型以及像对比学习这样的方法在根本上都是基于能量的。
  • EBMs 具有多样化的应用,从网络安全中的异常检测和构建推荐系统,到通过操纵能量函数实现创造性合成。

引言

在人工智能广阔的领域中,基于能量的模型(EBMs)代表了一种极为优雅和通用的框架,其灵感直接来源于统计物理学的原理。在其核心,EBMs 提供了一种简单而强大的方式来捕捉数据的复杂性,即为每个可能的数据配置分配一个称为“能量”的标量值。这种方法避开了归一化概率模型的限制,为从世界中学习开辟了一条独特而灵活的途径。然而,这种灵活性也带来了其自身的重大挑战:处理非归一化分布的困难。本文将对基于能量的框架进行全面探讨,阐明这些模型的训练方式及其有效的原因。

首先,在“原理与机制”部分,我们将深入探讨 EBMs 的基本概念,解释能量如何定义概率,并剖析难以处理的配分函数这一核心问题。我们将揭示训练这些模型背后巧妙的对比逻辑,并考察像受限玻尔兹曼机这样的特定架构如何利用结构来提高效率。随后,“应用与跨学科联系”部分将展示 EBMs 在实践中惊人的广度。我们将从它们在异常检测和创造性合成中的应用,到它们在推荐系统中的隐藏角色,最终揭示 EBMs 如何作为一个宏大的统一理论,连接了当今许多最先进的人工智能模型,包括 Transformers、扩散模型和对比学习。

原理与机制

将能量作为概率的语言

基于能量的模型(EBM)的核心思想源于统计物理学,优雅而深刻。想象一个连绵起伏、深谷纵横的景观。如果你将一百万个弹珠撒在这片景观上并用力摇晃,你期望在哪里找到它们?绝大多数弹珠会停留在山谷中,即引力势能最低的点。很少有(甚至没有)弹珠会岌岌可危地停在山顶上。

EBMs 将这一直觉精确地应用于数据世界。对于任何可能的数据片段——无论是一张图片、一个句子,还是一笔金融交易——模型都会为其分配一个称为​​能量​​的标量值,记为 E(x)E(x)E(x)。规则很简单:合情理的、真实的数据点被赋予低能量,而无意义或不可能的数据点被赋予高能量。一个由带有参数 θ\thetaθ 的神经网络参数化的 EBM,会学习塑造一个能量景观,其中“山谷”对应于它所训练的数据类型。

特定数据点 xxx 的观测概率随后通过优美的​​吉布斯分布​​由其能量定义:

pθ(x)=exp⁡(−Eθ(x))Z(θ)p_{\theta}(x) = \frac{\exp(-E_{\theta}(x))}{Z(\theta)}pθ​(x)=Z(θ)exp(−Eθ​(x))​

负号至关重要:它意味着低能量对应于高的 exp⁡(−Eθ(x))\exp(-E_{\theta}(x))exp(−Eθ​(x)) 值,从而对应高概率。数据点是弹珠,模型学习一个能量函数 Eθ(x)E_{\theta}(x)Eθ​(x) 作为景观。

难以言喻的归一化项:配分函数

如果故事到此为止,EBMs 将会非常简单。但这里有一个陷阱,一个隐藏在分母中的巨人:Z(θ)Z(\theta)Z(θ)。这个项被称为​​配分函数​​,它是 exp⁡(−Eθ(x))\exp(-E_{\theta}(x))exp(−Eθ​(x)) 在所有可能存在的 x 的配置上的总和(或积分)。

Z(θ)=∫exp⁡(−Eθ(x))dxZ(\theta) = \int \exp(-E_{\theta}(x)) dxZ(θ)=∫exp(−Eθ​(x))dx

为什么这是个问题?想象一下我们的数据 xxx 是一张仅有 100×100100 \times 100100×100 像素的小型灰度图像。每个像素可以有 256 个值中的一个。可能图像的总数是 25610000256^{10000}25610000,这是一个天文数字,使得宇宙中的原子数量看起来都像是零钱。计算配分函数需要为每一张这样的图像评估能量并将它们相加——这项任务不仅困难,而且根本上是不可能的。配分函数的这种难以处理性是使用 EBMs 的核心挑战。这意味着我们无法直接计算任何给定 xxx 的概率 pθ(x)p_{\theta}(x)pθ​(x)。

那么,我们是否束手无策了?我们如何可能学习一个我们甚至无法计算其概率的模型呢?

通过对比学习:梯度的两面性

其中的诀窍在于,我们不直接关注概率本身,而是关注当我们调整模型参数 θ\thetaθ 时概率如何变化。我们通过最小化一个损失函数来训练模型,通常是我们观测到的数据的​​负对数似然​​。对于单个数据点 xdatax_{\text{data}}xdata​,损失为 L(θ)=−ln⁡pθ(xdata)\mathcal{L}(\theta) = -\ln p_{\theta}(x_{\text{data}})L(θ)=−lnpθ​(xdata​)。

让我们看看当我们试图计算这个损失的梯度以更新参数时会发生什么。一点微积分知识揭示了一个非常直观的结构:

∇θL(θ)=∇θEθ(xdata)−Ex∼pθ[∇θEθ(x)]\nabla_{\theta} \mathcal{L}(\theta) = \nabla_{\theta} E_{\theta}(x_{\text{data}}) - \mathbb{E}_{x \sim p_{\theta}}[\nabla_{\theta} E_{\theta}(x)]∇θ​L(θ)=∇θ​Eθ​(xdata​)−Ex∼pθ​​[∇θ​Eθ​(x)]

这个方程讲述了一个简单的故事。梯度是两种相反力量之间的拉锯战:

  1. ​​正相(The Positive Phase):​​ 第一项 ∇θEθ(xdata)\nabla_{\theta} E_{\theta}(x_{\text{data}})∇θ​Eθ​(xdata​) 告诉我们如何改变 θ\thetaθ 以降低我们实际看到的数据的能量。我们沿着这个梯度方向,在数据点所在的位置下压能量景观,从而加深山谷。这部分很容易计算;我们只需将数据点通过网络并进行反向传播。

  2. ​​负相(The Negative Phase):​​ 第二项 Ex∼pθ[∇θEθ(x)]\mathbb{E}_{x \sim p_{\theta}}[\nabla_{\theta} E_{\theta}(x)]Ex∼pθ​​[∇θ​Eθ​(x)] 是从模型自身分布中抽取的样本的能量梯度的平均值。这一项告诉我们要增加模型当前认为可能的数据点的能量。它的作用是提升其他所有地方的能量基底,防止模型简单地为所有东西都赋予低能量(这会形成一个无用的平坦景观)。

因此,学习是一个对比的过程:让你见过的事物更可能出现(降低它们的能量),让你想象的事物更不可能出现(提高它们的能量)。那个邪恶的配分函数 Z(θ)Z(\theta)Z(θ) 从最终的梯度表达式中消失了,但它的幽灵仍然存在于负相中。为了计算那个期望,我们需要能够从我们自己的模型中抽取样本,x∼pθ(x)x \sim p_{\theta}(x)x∼pθ​(x),这本身就是一个难题,因为 pθ(x)p_{\theta}(x)pθ​(x) 包含了 Z(θ)Z(\theta)Z(θ)!我们似乎又回到了起点。

一个有代价的巧妙捷径:对比散度

这就是一个名为​​对比散度(Contrastive Divergence, CD)​​的极其务实的捷径发挥作用的地方。负相的困难之处在于从模型分布 pθ(x)p_{\theta}(x)pθ​(x) 中生成真实的样本。这通常需要运行一个漫长的模拟过程,比如​​马尔可夫链蒙特卡洛(MCMC)​​,直到它达到平衡。

CD 的洞见在于提出:如果我们不等待平衡呢?如果我们从一个数据点 xdatax_{\text{data}}xdata​ 开始我们的 MCMC 采样器,并只运行几步(kkk 步)呢?得到的样本,我们称之为 xkx_kxk​,不会是来自 pθ(x)p_{\theta}(x)pθ​(x) 的完美样本,但它会从原始数据点漂移到模型当前认为可能的区域。然后我们使用这个“负”样本 xkx_kxk​ 来近似负相梯度。

这是一种近似,和许多捷径一样,它是有代价的。对于少量的步数,CD 提供了对真实梯度的​​有偏​​估计。在某些情况下,这个有偏梯度甚至可能指向与真实梯度相反的方向,从而误导模型。例如,使用 k=0k=0k=0 是无用的,因为“负”样本就是原始数据点,导致正相和负相完全抵消,更新量为零。随着步数 kkk 的增加,偏差会减小,在 k→∞k \to \inftyk→∞ 的极限情况下,CD 梯度会变成真实的、无偏的最大似然梯度。在实践中,即使是单步(CD-1)也常常出人意料地有效,特别是对于具有正确结构的模型。

结构决定一切:受限玻尔兹曼机

为什么像​​受限玻尔兹曼机(RBM)​​这样的特定 EBMs,在当前深度学习复兴之前很久就已经如此流行和实用?答案在于它们的内部结构,这种结构使得训练中的 MCMC 采样步骤效率大大提高。

一个 RBM 有一层“可见”单元(用于存放数据,如像素)和一层“隐藏”单元(用于学习特征)。关键的限制是连接只存在于可见层和隐藏层之间,而不在层内。这种二分图结构意味着,给定可见单元的状态,所有隐藏单元彼此条件独立。对称地,给定隐藏单元,所有可见单元都是独立的。

这种条件独立性是一种计算上的超能力。在 MCMC 采样期间,我们不必一次更新一个单元,而是可以一次性同时更新所有隐藏单元,然后一次性同时更新所有可见单元。这种“块吉布斯采样”使得采样器能够比在所有单元都相互依赖的全连接模型中所需的缓慢、逐一采样的方式更快速、更高效地探索能量景观。这种结构优势使得 RBMs 在 21 世纪中期成为预训练深度网络的主力。

从生成到判断:EBMs 在分类和对比学习中的应用

虽然 EBMs 是强大的生成模型,但它们的框架远比这更通用。它们可以直接用于分类,通过对条件概率 p(y∣x)p(y|x)p(y∣x) 进行建模,其中 yyy 是类别标签。在这里,模型为每个可能的输入-标签对学习一个能量 E(x,y)E(x, y)E(x,y)。给定 xxx 时标签 yyy 的概率则为:

p(y∣x)=exp⁡(−E(x,y))∑y′exp⁡(−E(x,y′))p(y|x) = \frac{\exp(-E(x,y))}{\sum_{y'} \exp(-E(x,y'))}p(y∣x)=∑y′​exp(−E(x,y′))exp(−E(x,y))​

这正是几乎所有现代分类器中使用的熟悉的 ​​softmax​​ 函数!使用标准的交叉熵损失进行训练,相当于降低正确配对 (x,ytrue)(x, y_{\text{true}})(x,ytrue​) 的能量,并提升所有错误配对的能量。

这个视角提供了一座强大而统一的桥梁,通向现代人工智能的另一个基石:​​对比学习​​。在像 SimCLR 或 InfoNCE 这样的方法中,目标是学习嵌入,使得一个“锚点”数据点 zzz 与一个“正”样本 z+z^{+}z+(例如,同一图像的增强版本)比与许多“负”样本 {z−}\{z^{-}\}{z−} 更相似。流行的 InfoNCE 损失函数在数学上与条件 EBM 的交叉熵损失完全相同,其中能量被定义为嵌入之间的负相似度,E(z,zj)=−sim(z,zj)E(z, z_j) = -\text{sim}(z, z_j)E(z,zj​)=−sim(z,zj​)。从能量的角度思考揭示了,对比学习本质上是在训练一个 EBM,使其为相似的配对赋予低能量,为不相似的配对赋予高能量。

雕塑虚空:正则化的艺术

训练一个 EBM 不仅仅是拟合你拥有的数据;它还关乎为整个空间,包括不存在数据的广阔“虚空”,定义一个合理的能量值。这就是正则化的艺术所在。

一个关键的担忧是采样器的稳定性。如果能量景观有“洞”或通往无穷远的下坡,MCMC 采样器可能会“失控”到无穷大,生成坐标值巨大的无意义样本。为了防止这种情况,我们必须确保能量在远离数据点的地方增长。一种常见的技术是在能量函数中添加一个正则化项,保证当输入的范数 ∥x∥\|x\|∥x∥ 趋于无穷大时,E(x)→∞E(x) \to \inftyE(x)→∞。一个简单而有效的正则化器是范数本身的光滑版本,如 ϕ(x)=∥x∥2+ϵ2\phi(x) = \sqrt{\|x\|^2 + \epsilon^2}ϕ(x)=∥x∥2+ϵ2​,它像一个限制性的碗,防止采样器逃逸。

一个更微妙的问题与​​得分函数​​(score function)有关,它是对数概率相对于数据的梯度,sθ(x)=∇xln⁡pθ(x)=−∇xEθ(x)s_{\theta}(x) = \nabla_x \ln p_{\theta}(x) = -\nabla_x E_{\theta}(x)sθ​(x)=∇x​lnpθ​(x)=−∇x​Eθ​(x)。这个得分是一个矢量场,指向概率密度上的“上坡”方向,引导我们的采样器走向能量景观的山谷。如果能量函数在远离数据的地方饱和或变得平坦,得分将接近于零,采样器就会失去引导,漫无目的地游荡。

有趣的是,对网络参数 θ\thetaθ 进行简单的 L2 正则化可以帮助稳定这种行为。通过鼓励较小的权重,L2 正则化倾向于产生一个“更平滑”的能量景观。这可以防止得分函数变化过于剧烈,从而降低采样器采取过大、爆炸性步骤的风险。然而,这里存在一个权衡:过多的正则化会使景观过于平坦,削弱得分并减慢采样器的探索速度。掌握 EBMs 真正是一门艺术,需要将这个高维能量景观雕塑得恰到好处。

应用与跨学科联系

在掌握了基于能量的模型的基本原理之后,我们现在踏上一段旅程,去看看这个简单而优雅的想法将我们带向何方。你可能会倾向于认为 EBMs 只是机器学习庞大工具箱中一个奇特的工具。但这就像认为微积分只是一种求曲线斜率的方法一样。基于能量的框架的真正威力在于其令人难以置信的多功能性,以及它作为一种统一语言的角色——一块罗塞塔石碑,将统计物理学的概念翻译成现代人工智能的方言,反之亦然。我们将看到,这单一的视角阐明了从简单的统计分类器到正在重塑我们世界的最复杂的生成模型的一切工作原理。

我们的探索始于一个最根本的问题:一条信息的“能量”是什么?

信息的能量:从异常检测到网络安全

想象你有一系列类别——比如,在公园里看到的各种动物——并且你已经统计了每种动物的观测次数。一个非常基本的任务是建立一个能反映这些频率的模型。针对这种情况的 EBM 为每个类别 iii 分配一个标量能量 uiu_iui​。该类别的概率则由熟悉的玻尔兹曼分布给出,p(i)∝exp⁡(−ui)p(i) \propto \exp(-u_i)p(i)∝exp(−ui​)。如果我们训练这个模型来匹配我们观察到的频率,我们会发现一个非凡且非常直观的结果:每个类别的最优能量不过是其负对数概率,相差一个可加常数。

这揭示了一个深刻的联系:​​能量就是意外程度​​。一个高概率事件具有低能量;它是预料之中的,符合模式。一个低概率事件具有高能量;它是令人惊讶的,是一个异常值。这不仅仅是一个数学上的奇特现象;它是 EBMs 最实用的应用之一——异常检测——的基础原则。

如果我们只用“正常”数据——比如,合法的网络流量——来训练一个 EBM,例如受限玻尔兹曼机(RBM),模型会学习到一个能量景观,其中这些正常模式对应于低能量的山谷。任何被模型赋予高“自由能”的新数据,根据定义都是异常的。它不属于模型已经学会的舒适山谷。通过计算输入数据点的自由能,并标记那些超过某个阈值的数据点,我们可以为系统安全构建一个强大的看门狗。我们甚至可以做得更精细,在一组正常样本上校准我们的能量阈值,以精确控制漏掉真实威胁和引发错误警报之间的权衡。

这个“看门狗”还可以学习识别可疑的事件序列。在网络安全领域,人们可以对用户操作之间的典型转换进行建模。一个条件 RBM,其中当前事件的能量景观由前一个事件动态塑造,可以学习正常行为随时间的样子。一个试图通过“凭证填充”来暴力破解系统的攻击者,会产生一个在正常用户行为模型下极不可能的登录尝试序列。这个恶意序列中的每一步都将对应于一个概率异常低的转换,或者等效地,一个能量的飙升。通过监控能量流,系统可以实时标记攻击。

雕塑数据:生成式建模与创造性合成

到目前为止,我们一直将能量用作一种被动的评分。但如果我们采取主动呢?EBM 定义的能量景观不仅用于观察;它还是一个我们可以探索甚至创造的世界。如果低能量区域对应于合情理的数据,我们可以通过寻找或从这些区域采样点来合成新数据。

这为创造性生成带来了迷人的可能性。假设我们用手写数字的图像训练一个条件 EBM,其中如果图像 xxx 看起来像数字 yyy,则能量 E(x∣y)E(x | y)E(x∣y) 很低。如果我们通过平滑地混合两个不同数字(比如“4”和“9”)的能量来创建一个新的复合能量函数,会发生什么?

Eα(x)=αE(x∣y=4)+(1−α)E(x∣y=9)E_{\alpha}(x) = \alpha E(x | y=4) + (1 - \alpha) E(x | y=9)Eα​(x)=αE(x∣y=4)+(1−α)E(x∣y=9)

当我们将混合参数 α\alphaα 从 000 变为 111 时,我们不仅仅是将一张图像淡入另一张。我们是在为每个 α\alphaα 创建一个新的能量景观。为每个 α\alphaα 步找到最小化这个新景观的图像 xxx,会描绘出两个数字之间的一条路径。如果原始能量被建模为简单的二次型(如高斯分布),这种能量的插值对应于底层统计属性(如它们的精度矩阵)的非平凡插值。结果是从“9”平滑、合理地“变形”为“4”,其中中间形态不是模糊的混乱物,而是清晰、新颖的字符,是两个原始字符的混合体。这种通过能量来组合和操纵分布的能力是 EBM 框架一个独特而强大的特性。

万物的社交网络:EBMs 在推荐系统中的应用

也许基于能量的思想最广泛(尽管是隐藏的)的应用之一,是在每天为我们推荐电影、产品和音乐的系统中。想象一下,将每个用户和每个物品表示为一个数字向量——一个“嵌入”——它捕捉了他们的特征或品味。一个简单而强大的推荐 EBM 可以通过将用户-物品对 (u,i)(u,i)(u,i) 的能量定义为其嵌入的负点积来构建:E(u,i)=−Uu⊤ViE(u,i) = - U_{u}^{\top} V_{i}E(u,i)=−Uu⊤​Vi​。

这非常直观。如果用户的品味向量 UuU_uUu​ 和物品的特征向量 ViV_iVi​ 高度对齐,它们的点积就很大且为正,使得能量很低。低能量意味着高概率,因此该物品被推荐。模型学习塑造这些嵌入,以便能量景观能正确反映用户偏好。

这个视角还引入了一个来自物理学的强大概念:温度。推荐一个物品的概率由 p(i∣u)∝exp⁡(−E(u,i)/τ)p(i|u) \propto \exp(-E(u,i)/\tau)p(i∣u)∝exp(−E(u,i)/τ) 给出,其中 τ\tauτ 是温度。

  • ​​低温​​(τ→0\tau \to 0τ→0)使系统“冻结”。概率会急剧地集中在单一最低能量(最佳匹配)的物品上。推荐非常具体但缺乏多样性。
  • ​​高温​​(τ→∞\tau \to \inftyτ→∞)使系统“沸腾”。概率趋于均匀分布,系统几乎随机推荐物品,促进了探索和意外发现。 调整温度允许系统设计者控制利用(推荐显而易见的最佳选择)和探索(建议新事物)之间的关键权衡。

更先进的推荐系统使用更复杂的 EBMs,如条件 RBM,来模拟用户-物品交互的复杂网络。对于给定的用户,他们过去的评分或上下文可以调节 RBM 的偏置,为他们尚未见过的物品创建一个个性化的能量景观。这个框架优雅地处理了普遍存在的缺失数据问题——即没有用户评价过所有物品——只需在训练和推断过程中对未知评分进行边缘化处理即可。

宏大的统一:EBMs 在现代人工智能的核心

现在我们到达了旅程中最壮丽的景观。近年来,人们越来越清楚地认识到,基于能量的框架不仅与人工智能中其他先进架构并行存在;它更是许多这些架构赖以建立的基础。

首先,让我们看看 ​​Transformer​​,这个驱动像 ChatGPT 这样模型的架构。其核心是“注意力”机制,它允许模型权衡序列中不同单词的重要性。这个机制,毫不夸张地说,就是一个 EBM。在查询和一组键之间计算的“注意力分数”就是负能量。将这些分数转换为注意力权重的 softmax 函数就是吉布斯分布,根据每个词的能量计算关注它的概率。这种重新表述不仅仅是词汇上的改变;它将统计力学的庞大机制与大型语言模型的内部工作联系起来。

当我们考虑​​对比学习​​——自监督学习的一个主导范式时,这种联系更加深化。对比学习的目标是教模型将“相似”数据点的表示拉近,同时将“不相似”数据点的表示推开。一个流行的目标函数是 InfoNCE,它看起来惊人地像交叉熵损失。从能量的角度来看,联系是直接的:InfoNCE 损失精确地是在一个 EBM 中正确识别相似(正)配对的负对数似然,其中一对的能量是它们的相似性分数。使用 InfoNCE 进行训练等同于塑造一个能量景观,其中正配对落入低能量井中。

最后,考虑​​扩散模型​​,它们在生成逼真图像方面取得了最先进的结果。这些模型的工作方式是,首先逐步向图像中添加噪声,然后学习逆转这个过程,从纯噪声开始,逐渐将其去噪成一张连贯的图像。模型学习的关键量是噪声数据分布的“得分”,st(x)=∇xlog⁡pt(x)s_t(x) = \nabla_x \log p_t(x)st​(x)=∇x​logpt​(x)。但是对数概率的梯度是什么?它是一个负能量的梯度!扩散模型学习的得分函数可以完美地解释为一个随时间变化的能量景观 Eθ(x,t)E_\theta(x,t)Eθ​(x,t) 的力场 (−∇xE-\nabla_x E−∇x​E)。生成过程则类似于一个粒子在这个动态变化的景观上滚下,每一步都由学习到的能量梯度引导,从纯噪声的高能量状态转变为一个低能量、高度结构的最终图像。这种参数化自动强制执行了得分函数的一个关键数学性质(即它们是保守场),为 EBMs 和扩散模型之间提供了一座有原则且强大的桥梁。

这个统一的视角甚至帮助我们理解一些微妙的实践行为,比如​​分布外(OOD)检测​​。为什么一些 EBMs 在发现 OOD 样本方面比其他生成模型如变分自编码器(VAEs)更好?原因在于,VAE 的目标是学习数据的绝对概率,它有时会混淆,为“简单”但分布外的输入(如一张空白图像)分配高概率。相比之下,用对比目标训练的 EBM 不仅仅学习数据是什么;它学习区分数据与“其他东西”(负样本)。它学习一个相对能量,创建一个明确在分布内山谷和分布外平原之间建立高能墙的景观,使其成为一个更鲁棒的 OOD 检测器。

从简单的计数行为到从噪声中生成图像的复杂艺术,能量的概念提供了一种单一、连贯的语言。它揭示了贯穿看似不同领域之间隐藏的统一性,向我们展示了我们为理解智能而建立的模型,或许并不奇怪,同样受制于支配物理世界的那些深刻原理。