最新EBM模型排行榜:能量函数替代概率分布建模框架
Yann LeCun 持续强调一个核心判断:现有大语言模型基于概率的逐 Token 预测范式,极大概率无法抵达人类水平的通用智能。他所领导的团队将重心放在另一条路径上——基于能量的模型(EBM)。
上图源自他十多年前的论文,直观展现了两种方法的本质差异:面对候选答案打分时,LLM 输出的是“概率”,而 EBM 输出的是“能量”,能量最低的候选胜出。举例说明:输入 X = “汽车有4个轮子吗?”,LLM 可能会返回 p("是") = 0.9、p("否") = 0.1;EBM 则可能输出 E("是", X) = -3.1、E("否", X) = 0.4。能量值越低,答案越正确。
两类模型间的鸿沟究竟有多大?理论上讲,对 EBM 的输出施加某种“归一化”操作,确实能得到 LLM 输出的概率。但归一化这一步恰恰是分水岭。LLM 依赖 Softmax 强制所有概率之和为 1,而 EBM 主动放弃这一约束。训练阶段无需归一化、无需计算概率,反倒在高维连续空间中获得更大的灵活性与可训练性。要知道,对连续数据(如图像)的所有可能输出做归一化,本身就是一道极难的题目——能绕开便绕开。
构建EBM模型
EBM 的核心思路很直接:为每一个(可能的)数据点分配一个能量值,该值由函数 E(x) 对输入数据点返回的标量决定。数据点出现的概率与该标量成反比——能量越低,概率越高,反之亦然。回想高中物理中的各种“能量”(如势能、动能),势能越低的系统通常越稳定,道理一致。
假设我们已获得 E(x),能否将其转换为概率?有时确实必要。因为两个独立训练的系统输出的能量缺乏统一校准基准,无法直接比较或合并;在做密度估计时,概率形式也是必需的。
密度估计是概率 AI 的核心主题。它假定存在一个随机过程,持续不断地生成可观测数据点。密度估计的任务,便是根据已有观测数据,去“推断”该过程的概率密度函数(PDF)。一旦掌握了 PDF,数据的分布规律便清晰可见——不仅能进行预测,还能实现生成。
理解数据生成过程的 PDF,已远远超出传统 AI 中“给定 X 预测 Y”的范畴。后者只在估计某个过程的结果,并未尝试理解或建模整个过程的底层机制。生成,则是另一层级的挑战。
寻找能量函数 E(x)
训练 EBM 的核心目标很明确:找到一个能量函数,能够为给定的 X 识别出最佳的 Y。换言之,在一系列可能的 Y 值中,哪一个与当前的 X 最“兼容”?
合理做法是训练一个深度神经网络,接收数据点(X 与 Y 的组合)作为输入,输出一个标量。当 X 和 Y 兼容性低时,输出高值;兼容性高时,输出低值。为符号简洁,我们将能量函数的输入统一记为 x,即 E(x),这里的 x 代表 X 与 Y 的组合。
训练方式也遵循常规套路:利用大量数据样本,让模型学习能量函数 E(x) 的参数 θ,目标是使已观测到的合理数据点拥有低能量,而那些不太可能出现的数据点则拥有高能量。损失函数需同时做两件事:压低正确答案的能量,同时抬高错误答案的能量。
一般性的理论到此为止,但接下来进入更棘手的部分:寻找密度函数。
寻找概率密度函数(PDF)
目标是找到一个由 θ 参数化的概率密度函数 q(x):
能量函数 E(x) 的值域为 -∞ 到 +∞,取指数后输出自动变为正值——概率必须为正。至于为何不直接约束 E(x) 本身为正?因为放开限制能让设计更自由,只需用 exp(E(x)) 保证输出为正即可。下一步是归一化:所有状态的概率之和(或积分)应等于 1,分母中的 Z 便承担此功能。至此 PDF 构造完成。
这个 Z,大概是学概率模型的人最不愿面对的东西。它有几个名称——配分函数、归一化常数——但无论如何称呼,都改变不了其计算难度极高的本质。
至于指数前的负号,坦白讲,并无功能性意义,纯粹是惯例。去掉也不会影响结果。
能量函数与密度函数的概念,至此已基本阐述清楚。
来自物理学的一点启发
上述内容大量借鉴了物理学的思想。将墨水滴入水中,它会如何扩散?过程本身是随机的,但宏观上系统总是从高能量状态向低能量状态演化。假设一个随机过程有 10 种可能状态,每种状态各有能量值,系统最终大概率落在能量最低的状态。能量实际上是一种粗粒度的度量,它将某个状态内部所有微观过程的贡献浓缩为一个数值。
早在 AI 诞生之前,Boltzmann 就提出了一种概率分布,用于描述热平衡中气体的统计力学行为。Gibbs 后来做了进一步改进,该分布被称为 Boltzmann 分布(也称 Gibbs 分布)。它会给出系统处于某一状态的概率,该概率是状态能量与系统温度的函数。
p_i 是系统处于状态 i 的概率,ε_i 是该状态的能量,常数 k*T 暂时不关键。Boltzmann 分布表达的意思很简单:能量低的状态,被占据的概率更高。要获得精确概率值,除以归一化常数 Z 即可。而这个方程与 EBM 的密度估计 q(x) 几乎如出一辙——物理学的直觉与 EBM 的数学最终指向同一条道路。
训练EBM
LeCun 探讨了多种损失函数。这类任务天然适合对比训练方法:将一对样本喂给模型,训练目标是让其中一个的能量高于另一个。这种对比性质非常适合自监督训练。要避开 Z 这个麻烦,可以构造只关心能量相对差异、无需计算绝对概率的训练场景——比如取两个能量的比值,让 Z 在分子分母间自行消去。
最终目标是学习到一个“能量景观”:高概率的数据点能量低,低概率的数据点能量高,全程无需触碰 Z。可选算法包括 Score Matching 一族及其他几类方法。但问题来了:如果我们需要建模密度函数 q(x) 呢?
这意味着要计算精确概率,而非相对概率。分母中的 Z 注定会让事情变得棘手。精确计算需要遍历所有可能的数据配置,计算量是“不可解”的。绕过精确 Z 的常见办法,是利用 MCMC 这类采样过程产生大量样本,对训练所需的对数似然梯度做近似估计。对数似然展开后,会出现两个关键项:
第一项的梯度,将已观测数据点的能量压低,使其更可能出现。第二项,对数配分函数 Z 的梯度,则把所有其他位置的能量抬高,防止模型对任何数据都给出低能量。这一项实际上就是能量在模型当前分布上的平均梯度。
操作上可以这样理解:从模型中“生成”样本,与已观测的数据点混合训练,目的是让已观测数据点获得低能量、让模型生成的样本获得高能量。借用 LeCun 讲课时的比喻,损失函数应像在能量景观中“雕刻”地形——在训练样本附近挖坑(能量低),其他地方填高。模型要学会在观测数据所在位置“挖洞”,在其余位置“堆土”。详细推导见附录。
重新审视 LeCun 论文中训练 EBM 的原始图示:
Y_i 是正确答案,Y_i 上方带 hash 标记的则是“最具迷惑性的错误答案”——所有错误答案中能量最低的那个。在连续情况下,正误定义很直观:Y_i 一定距离内的答案算正确,超出该距离的算错误。设计良好的损失函数,会在学习过程中压低 E(Y_i, X_i),同时抬高错误答案的能量,尤其是 E(Y¯_i, X_i)。
不过,生成样本非常耗时,因为马尔可夫链必须跑到平衡态才能采样,步数往往很大。为此,Hinton 提出了对比散度(CD)方法:只运行极短的马尔可夫链,采样速度大幅提升。设 p_0 为数据分布、p_∞ 为模型分布,梯度按以下公式计算:
右侧第一项是数据分布与模型分布之间的“散度”,即 p_0 和 p_∞ 之差(至于为何不直接称为 P_data 和 P_model,LeCun 未做解释)。第二项是短程 MCMC 链——从 p_0 出发跑 n 步得到 p_n——与模型分布 p_∞ 之间的散度。直觉解释见附录。
上述差分关注的是“模型经过 n 步后偏离数据的程度”,由此产生的梯度引导模型,使训练数据更可能出现,同时让 n 步重建的结果更不可能出现。令人意外的是,即使 n = 1,训练出的 EBM 质量也相当出色。
配合一些工程技巧——例如训练过程中维护并复用样本缓冲区——速度还能进一步提升。
使用训练好的EBM做推理
假设我们手中已有一个训练好的 EBM,推理过程是怎样的?
与常规模型不同,EBM 的推理不是直接“给定 X 输出 Y”。这里需要遍历 Y 的所有可能取值,找出哪个 X 与 Y 的组合能量最低,那便是最终的预测。本质上这是一个优化问题,模型预测的是输入 X 与输出 Y 之间的兼容程度。由此衍生出几类任务:分类——“哪个 Y 与 X 最兼容?”取能量最低的组合,应用场景如机器人导航;排序——“Y1 与 Y2 哪个与 X 更兼容?”按能量排序即可,应用场景如数据挖掘;检测——“这个 Y 与 X 兼容吗?”观察能量升降趋势,例如人脸检测中,图像越不像人脸,能量越高。
推理可概括为:固定已观测变量的值,搜索剩余变量的配置,使能量最小化。此过程代价可能很高,需要选择合适的优化算法。参考 LeCun 的论文,根据 Y 的形式不同,推理策略也不同:
- 如果 Y 是连续变量且能量曲面 E(X,Y) 光滑,直接套用基于梯度的优化算法找最优 Y 即可。与训练阶段更新网络权重不同,这里是对 Y 本身做优化——从某个初始 Y 出发,沿 E(X,Y) 对 Y 的梯度方向迭代,直到落入极小值。思路与训练神经网络并无本质区别。
- 如果 Y 是一组离散变量,能量函数可以表达为因子图——即若干依赖于不同变量子集的能量函数(因子)之和——那么可以用 min-sum 这类算法。图、团与 EBM 的关系,后续将进一步讨论。
- 如果输出 Y 的每个元素可以表示为加权有向无环图(DAG)中的一条路径,特定 Y 的能量就是沿路径的边和节点值之和;由于图无环且能量是简单求和,最优路径可用动态规划(如 Viterbi 算法)高效求解,这在生物序列分析(如基因查找)中很实用。
- 还有一些情况下,能量函数依赖于一组隐变量 Z——例如训练人脸检测系统时,尺度和姿态信息是未知的。很多时候精确优化不切实际,必须诉诸近似方法,包括替代能量函数。
EBM的优势
EBM 属于指数族,在 AI 领域有大量成熟的技术和工具可供复用。做最大似然估计、取对数似然时,“对数”和“指数”会相互抵消,使数学处理更简洁。统计物理中的配分函数、自由能、变分近似等概念,同样可以直接迁移使用。
在架构设计与训练准则方面,EBM 比概率方法拥有更大的回旋空间。最关键的优势在于:在概率方法不可解的场景下,EBM 是可解的。概率模型必须做归一化,往往需要在所有可能的变量配置空间上计算积分,而很多时候这个积分根本无法计算。EBM 不要求归一化,这一问题被天然绕开。
EBM 还有一个有趣的性质:总能量可以是多个能量函数之和——即“专家乘积”(Product of Experts)。图模型实际上是 EBM 的一个特例,能量函数分解为各个能量项的和。为每个团(clique)分别设计能量函数,然后简单相加便得到总能量,而且已有成熟的推理算法,可以对这些项之和关于目标变量求最小值。这听起来有些抽象,值得展开解释。
EBM作为因子图
从专家乘积(PoE)说起。PoE 模型将多个专家各自输出的概率密度相乘得到总概率,每个“专家”对应一个未归一化能量函数。此前我们定义过归一化版本的能量函数:
未归一化能量函数就是分子部分,即 Exp(-E(x))。
假设整体能量函数复杂到无法直接处理——高维、变量众多。如果能将这个复杂系统拆分为若干子系统,每个子系统只依赖一小部分变量,每个子系统就是一个“专家”。这些专家的乘积给出总概率。由于子系统规模小得多,可以更透彻地分析和设计各自的能量函数。
乘积操作时,只需将各专家的指数函数相乘。根据 Exp(a) * Exp(b) = Exp(a+b),乘法变为各能量的简单加法,整体(未归一化)能量就是各子能量之和。
与试图为整个复杂系统寻找一个巨大的能量函数相比,将多个小而专的能量函数直接相加显然更可行——一个专家负责某一方面,另一个负责另一方面。EBM 的能量函数就这样被“因式分解”为各个函数(因子)之和,等价于因子图表示的图模型。
任何传统图模型都可以表示为因子图,EBM 在此类场景下有天然的适配性。为每个团分别定义能量函数,求和即得总能量。团是变量的一个子集。循环置信传播等高效算法,可用于计算最低能量配置。
从Hopfield网络到Transformer注意力机制
能量模型并非新事物。1982 年,John Hopfield 提出了一种循环人工神经网络,功能类似于“联想记忆系统”。
正如一丝微弱的气味能唤起完整的记忆一样,Hopfield 网络接收不完整的数据,尝试还原完整的原始模式。它的机制正是 EBM:将“模式”存储为能量景观中稳定的局部最小值。面对损坏或缺失的输入,网络迭代更新神经元状态,沿能量景观不断下降,直至落入最近的稳定“记忆”,输出完整的重建结果。具体过程如下:
- 将损坏或不完整的图像输入网络。
- 网络中的神经元彼此相连,迭代更新自身状态,持续降低系统总能量。
- 网络达到稳定的最低能量状态时停止更新——得到对原始未损坏模式的最佳重建。
去噪只是其中一个方面。这类网络也可用于求解优化问题(如旅行商问题),收敛到低能量状态便对应着优化问题的解。
Hopfield 网络的能量函数由 Lyapunov 函数控制,返回一个将神经元状态映射到实数值的标量。Hopfield 网络是确定性的,总会收敛到最近的局部能量最小值。另一种架构——玻尔兹曼机——则引入了随机性(概率性),使网络有能力跳出局部最小值去寻找全局最优。
玻尔兹曼机通常包含隐含单元,因而能建模更复杂的数据结构、学习内部表示。从物理意义上说,隐含节点在可见节点之间引入了有效的高阶交互,产生了针对可见节点的新能量函数。当隐含节点与可见节点之间的交互设为零时,玻尔兹曼机就退化为 Hopfield 网络。
模拟和训练玻尔兹曼机并不容易。一种简化方案是移除所有层内连接、只保留层间连接——所有可见节点都连到所有隐含节点,同层内无连接。由此得到的受限玻尔兹曼机参数更少、表达能力有所下降,但训练更方便,泛化性能也更好。训练时依然适用前面讨论过的那些技术。
2024 年诺贝尔物理学奖颁给了 Geoffrey Hinton 和 John Hopfield。Hopfield 网络启发了现代机器学习方法。虽然 AI 领域没有独立的诺贝尔奖类别,但 Hinton 和 LeCun 拿到了地位相当的图灵奖——话题又回到了 LeCun 和他的团队。
LeCun的世界模型
LeCun 离开 Meta 后创立了 AMI Labs。他的核心论点是:当前 LLM 一次生成一个 Token 的固有设计,决定了它无法达到人类水平的智能,EBM 可能是另一条出路。
EBM 能同时预测整个输出序列的能量,而 LLM 每次只输出单个 Token 的概率。给整个句子算一个能量,再与其他候选句子比较,这在 LLM 框架下是做不到的。推而广之,规划在中途就能评估进展时效果最好——如果只在最后才拿到反馈,那和猜测没什么区别。一个可以施加到中间状态的评分,能告诉你当前是否正确、哪里需要修复。EBM 正好提供了这种能力:能量可以在部分轨迹上计算,而非仅限于最终答案。
从认知科学角度看,EBM 可以(大致)对应 Daniel Kahneman《思考,快与慢》中那种缓慢而审慎的类型 2 思维:在推理时运行优化过程以最小化能量,模仿深思熟虑的过程。LLM 则按顺序逐 Token 生成、从不回头检查,本质上是“快”而直觉式的类型 1 思考。EBM 可以在输出之前对完整答案反复斟酌,正如人类在面对复杂问题时所做的那样。LeCun 的原话是:“真正的推理应该被表述为一个优化问题。”
Softmax 在这方面有结构性缺陷。它本质上是“赢者通吃”——两个输出值只要稍有差距,Softmax 就会把这个差距放大为概率上的巨大悬殊。生成模型在理想状态下应当能考虑多种可能的下一步,而不是每次都锁定得分最高的那个选项。基于 Softmax 的模型天生具有单峰偏差:擅长表示分布中单一的宽峰,难以处理落在输入空间不相邻区域的数据。EBM 不存在这个问题,它可以同时给多个不相交的数据区域赋予低能量(多峰分布中多个不同的峰)。Softmax 还带来过度自信的问题——膨胀大的输出、压制小的输出,程度远超合理范围。虽然有各种变通方案,但这是一个结构层面的硬伤。
LLM 还有一个根本局限:它困在文本的离散世界里,缺乏人类意义上的“世界模型”,无法预判行动的后果。试图构建一个预测未来每个细节的生成模型注定行不通。在世界建模的框架下,做法是在输入空间中预测未来状态,再通过 EBM 衡量这些预测状态与当前上下文之间的“兼容性”。
人脑对世界的感知方式也不是直接的。大脑通过感官观察世界,从中构建出外部世界的表征,这个过程发生在一个独立的潜空间中。潜空间的结构与真实世界有关联,但针对实用性而非精确性做了优化。世界模型也应当具备类似特性。
JEPA(联合嵌入预测架构)是世界模型方向上的一次尝试。它学习世界的抽象表征(团队用视频做了实验),在抽象空间中做预测。I-JEPA 面向图像,V-JEPA 面向视频,都跳过了像素级重建,直接在潜空间中预测更高层次的特征。JEPA 及类似模型在不同程度上借鉴了 EBM 的思想。严格说它们不是完整的 EBM——推理时不做能量优化,仍然走常规前向传播——但确实把能量或相关替代指标用作了模型架构的关键组件。Logical Intelligence 发布的 Kona 是一个更激进的例子。
Kona 是面向关键系统的“基于能量”的 AI 模型,核心机制是物理驱动的优化而非逐 Token 预测。它能同时生成完整的推理轨迹,并直接对问题和约束做条件化。推理在连续潜空间中进行,输出密集向量 Token 而非离散 Token,因而可以利用学到的能量对推理轨迹做受控的局部编辑,通过近似梯度信息改善连贯性和约束满足度。在困难数独上,Kona 的解题率达到 96.2%,超出了当时所有前沿 LLM。
附录
每当在概率 AI 方面有疑问,翻开 Goodfellow 等人的《深度学习》总能找到答案。这本书封底有三位在 AI 领域可能无人能及的学者的推荐语,不是没有原因的。直接跳到第 18 章,标题恰如其分——“面对配分函数”。先从前面对论过的对数似然入手。
它来源于一个简单的关系:
PDF p 等于未归一化的 PDF(p 上方带 hash 标记)除以归一化常数 Z。θ 是要通过梯度下降求解的参数集。上式对数似然的梯度展开后变成:
到这里并没有做什么复杂的操作。倒三角是梯度符号。幸运的是,这在机器学习中是常见的模式——学习的正阶段(第一项)和负阶段(第二项)。第一项从数据集中采样就能轻松求出,真正麻烦的是第二项。注意,Z 本身只是 p(带 hash 标记)的求和或积分,因而是 θ 的函数,求梯度就必须对它做计算。
第二项可以通过几步简单变换,改写为期望值的形式。
有了期望值的形式,就可以用采样来近似:从模型 p(x) 中抽取若干 x 的样本,做蒙特卡罗估计得到训练所需的梯度。最终的对数似然梯度变为:
方程中两项各有分工。第一项对应从数据集中均匀抽样计算梯度;第二项对应从正在训练的模型 p(x) 中用 MCMC 抽样、取平均后计算梯度。这就是机器学习文献中的正阶段与负阶段。正阶段中,对从数据集抽取的 x 增大 log p˜(x);负阶段中,对从模型分布抽取的 x 减小 log p˜(x),以此降低配分函数。全程只需要处理未归一化的 p˜,不涉及 Z 的精确计算,操作上完全可行。
能量函数去哪了?Goodfellow 给出了连接:深度学习文献中通常用能量函数来参数化 log p˜。正阶段于是对应压低数据集中训练样本的能量,负阶段对应抬高从模型中抽取的样本的能量。
再看 Goodfellow 版本的能量升降图示,和 LeCun 的版本略有不同:
绿色的点表示数据集的 PDF。从数据集中均匀采样时,取到的 x 更多地集中在绿色峰值附近。正阶段是对数似然梯度的第一项,它让模型的 PDF p(x) 在这些数据点周围有更高的密度(对应的能量应被压低,但这里暂不引入能量概念以保持简洁),从而让模型逐渐逼近数据分布。
但这正阶段有一个副作用:它盲目地在所有位置增加未归一化概率——绿色峰值处加得多一些,其他地方也加了。只做这一步是不够的。要加速收敛,必须同步降低其他位置的未归一化概率。这正是负阶段做的事情。(虽然叫“阶段”,两者实际上是同步发生的。)
负阶段从模型分布中采样点,压低它们的未归一化概率。通过 MCMC 从 p(x) 中采到的点可能来自任何位置——好的数据点也好,坏的数据点也好,一律压低。把好数据点的概率推回去,那是正阶段的职责。
两项协同工作。第二项抵消了正阶段到处加常数的倾向,训练过程中模型与数据集的分布逐渐趋同。当二者完全相等时,正阶段在任何一点推高的力与负阶段推低的力大小相等,梯度的期望降为零,训练收敛。
负阶段降低了从模型中采样的点的概率,因此这些点通常被解读为模型对世界的“错误信念”。一个引人遐想的推论:负阶段被提议用于解释人类的做梦——大脑维护着一个关于世界的概率模型,清醒时经历真实事件并沿 log p˜ 的梯度更新模型,睡眠时经历从当前模型中采样出的事件并沿 log p˜ 的负梯度走,以最小化 log Z。
如何简化MCMC采样
MCMC 的主要成本在于每步都要从随机初始化开始“预热”马尔可夫链(详见前面分享的 MCMC 链接)。自然的优化思路是从一个接近模型分布的分布出发来初始化链。用什么初始化?可以直接用数据集。
对比散度(CD)算法在每步用数据分布的样本初始化马尔可夫链。训练初期,数据分布和模型分布差距较大,负阶段精度不高;与此同时正阶段默默发挥作用。等正阶段把模型分布拉近了数据分布,负阶段的精度也跟着上来。
CD 算法的梯度计算方式前面已经展示过:
可以这样理解:当输入来自数据时,如果模型的马尔可夫链对输入做了剧烈改动,就予以惩罚。这个估计有偏差——MCMC 中 n 步之后的项被忽略了——但偏差很小。研究表明,CD 丢掉的恰恰是正确 MCMC 更新梯度中最小的那些项。