☰
能量模型(EBM)深入解析:从兼容性评分到隐变量推理 —— NYU-DLSP20 第 7 周课程详解
2026/10/10 1:34:34 网站建设 项目流程
  • 示例工程

【免费下载链接】NYU-DLSP20

NYU Deep Learning Spring 2020

项目地址:https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning
点击查看免费下载

本文以 NYU-DLSP20(NYU Deep Learning Spring 2020)第 7 周第 1 讲的核心讲义 docs/it/week07/07-1.md(Yann LeCun 主讲)为骨架,系统梳理能量模型(Energy-Based Models, EBM)的定义、推理方式、隐变量扩展及其与概率模型的本质差异。读完本文,你将掌握"为什么前馈网络不足以应对多解预测问题""如何用能量函数替代 softmax 完成连续高维空间的推理",并能把 EBM 与仓库中第 7 周的对比学习方法、自编码器实现(docs/it/week07/07-2.md、docs/it/week07/07-3.md)串成一条完整的技术主线。

引言:为什么需要新的建模框架

课程首先引入了一个全新的模型定义框架,它为有监督、无监督和自监督模型的构建提供了统一的理论伞(unifying umbrella)。能量模型观测一组输入变量 $x$,并输出一组变量 $y$。之所以要跳出传统的前馈网络(feed-forward net)范式,是因为存在两类前馈网络难以胜任的核心问题:

  1. 推理过程可能比"加权求和的堆叠"复杂得多:当推理本身需要更复杂的计算(如迭代优化、求解约束)时,单纯前向传播一次得到答案的方式不再适用。
  2. 一个输入可能对应多个合法输出:以"预测视频下一帧"为例。分类网络本质上是为每个类别输出一个得分,但在图像这种连续高维空间中,我们无法对所有可能的图像做 softmax("cannot have softmax over images")。即便输出是离散的,其样本空间也可能极其庞大——例如文本具有组合性(compositional),存在海量合法组合。能量模型为这类数据模态提供了更合适的建模框架。

能量模型的核心思想:用"兼容性"替代"分类"

传统做法试图把 $x$ 分类到某个 $y$;能量模型则反其道而行:我们关心的是判断一对 $(x, y)$ 是否彼此契合(fit together),或者说,找到与 $x$ 兼容的 $y$。这一目标可以形式化为:寻找使某个函数 $F(x,y)$ 取值低的 $y$。

两个直观的实例:

  • $y$ 是否是 $x$ 的高保真超分辨率图像(accurate high-resolution image of $x$)?
  • 文本 A 是否是文本 B 的正确翻译(a good translation of text B)?

这种"通过最小化一个函数来做推理"的方式覆盖了一大类模型——被最小化的 $F(x,y)$ 即称为能量函数(Energy function)。

能量函数的定义

定义标量能量函数 $F: \mathcal{X} \times \mathcal{Y} \rightarrow \mathcal{R}$,其中 $F(x,y)$ 描述 $(x,y)$ 这对组合的依赖/亲和程度。$F$ 取值越高,说明 $x$ 与 $y$ 越不兼容;取值越低,说明二者越匹配。

关键注意点:这个能量是在**推理(inference)**阶段被最小化的,而不是在学习(learning)阶段。学习阶段要做的是塑造能量函数本身的形状。

推理由下式给出:

$$ \check{y} = \displaystyle \text{argmin}_y \left { F(x,y)\right } $$

即:给定观测 $x$,在所有候选 $y$ 中挑出使能量最低的那个作为预测输出。

基于梯度的推理

为了让"最小化 $F$"这一过程可行,课程要求能量函数光滑且可微(smooth and differentiable),从而可以使用基于梯度的推理方法:在能量面上用**梯度下降(gradient descent)**搜索与 $x$ 兼容的 $y$。当然,求函数最小值的手段不止梯度法一种,还有很多替代方法。

旁注(Aside):图模型(graphical models)是能量模型的一个特例。它的能量函数可以分解为若干能量项之和,每个能量项只涉及系统中变量的一部分子集;当这些项组织成特定结构时,存在高效的推理算法,可以针对我们关心的变量求"能量和的最小值"。

隐变量能量模型(Latent-Variable EBM)

在许多问题中,输出 $y$ 不仅依赖 $x$,还依赖一个额外的、未被观测到的变量 $z$——即隐变量(latent variable)。隐变量可以为模型提供有用的辅助信息。

一个经典例子:在一段无空格书写的文本(或难以切分词边界的语音)中,每个词的边界位置就是隐变量。法语等语言中词与词的边界往往非常微弱,如果模型能把"词边界在哪里"作为隐变量利用起来,就能更有效地解释输入。由于隐变量取值未知,必须用专门的方法来处理它。

隐变量模型的推理

带隐变量 EBM 的推理需要同时对 $y$ 和 $z$ 最小化能量函数:

$$ \check{y}, \check{z} = \text{argmin}_{y,z} E(x,y,z) $$

这一步等价于把能量函数重新定义为(对 $z$ 取 min 或取"软最小化")的形式:

$$ F_\infty(x,y) = \text{argmin}{z}E(x,y,z), \qquad F\beta(x,y) = -\frac{1}{\beta}\log\int_z \exp(-\beta E(x,y,z)). $$

当 $\beta \rightarrow \infty$ 时,软最小化退化为硬最小化,于是 $\check{y} = \text{argmin}_{y}F(x,y)$。

引入隐变量的另一个巨大好处:当隐变量 $z$ 在一个集合内连续变化时,预测输出 $y$ 也会沿着"可能预测的流形"(ribbon,见上图)滑动。也就是说,机器可以为一个输入产出多个输出,而不仅仅是单个输出——这正是应对"一个输入多个合法解"问题的关键机制。

应用实例

  • 视频预测(video prediction):应用场景包括视频压缩系统,以及用自动驾驶汽车采集的影像预测其他车辆的行为。若用最小二乘式回归网络预测下一帧,模型只会学到"所有可能下一帧的平均",结果是一张模糊的图像。而 EBM 在给定隐变量 $z$ 的条件下,能够生成各自独立且真实的多张候选帧,改变 $z$ 即可遍历、探索模型生成的图像空间。
  • 文本翻译(translation):翻译之所以难,是因为同一段源语言文本不存在唯一正确的译文,一个概念通常有多种等价表达方式,且很难论证为何选择其一。若能以隐变量 $z$ 参数化系统可能产出的全部译文(例如德译英时存在多个正确译法),那么改变隐变量就能改变并探索模型产出的译文空间。

能量模型 vs 概率模型

能量可以被看作未归一化的负对数概率(unnormalised negative log probabilities),借助Gibbs-Boltzmann 分布并做归一化,可以把能量转换为概率:

$$ P(y \mid x) = \frac{\exp (-\beta F(x,y))}{\int_{y'}\exp(-\beta F(x,y'))} $$

其中 $\beta$ 是正常数,需要根据模型校准:

  • $\beta$ 越大,分布越"尖锐",概率高度集中在少数点、其余地方趋近于零($\beta \rightarrow \infty$ 时该函数收敛到 argmax 函数);
  • $\beta$ 越小,分布越平滑。
  • 物理直觉:$\beta$ 是温度的倒数,$\beta \rightarrow \infty$ 意味着温度趋于零。

当存在隐变量时,联合分布写作:

$$ P(y,z \mid x) = \frac{\exp(-\beta F(x,y,z))}{\int_{y}\int_{z}\exp(-\beta F(x,y,z))} $$

边际化隐变量:自由能的诞生

如果对 $z$ 做边际化:$P(y \mid x) = \int_z P(y,z \mid x)$,可以得到如下推导:

$$ \begin{aligned} P(y \mid x) & = \frac{\int_z \exp(-\beta E(x,y,z))}{\int_y\int_z \exp(-\beta E(x,y,z))} \ & = \frac{\exp \left [ -\beta \left (-\frac{1}{\beta}\log \int_z \exp(-\beta E(x,y,z))\right ) \right ] }{\int_y \exp\left [ -\beta\left (-\frac{1}{\beta}\log \int_z \exp(-\beta E(x,y,z))\right )\right ]} \ & = \frac{\exp (-\beta F_{\beta}(x,y))}{\int_y \exp (-\beta F_{\beta} (x,y))} \end{aligned} $$

结论:如果有一个含隐变量的模型,并希望在概率意义上正确地消去隐变量 $z$,只需把能量函数 $E$ 重定义为 $F_\beta$(自由能,Free Energy)即可。

自由能的定义与计算难度

$$ F_{\beta}(x,y) = - \frac{1}{\beta}\log \int_z \exp (-\beta E(x,y,z)) $$

计算这一量通常非常困难,在大多数情况下几乎不可行(intractable)。但有一种情形可以处理:如果模型内的隐变量是我们希望对它做最小化、或通过定义上述能量函数 $F$ 对它做边际化的对象,而最小化又恰好对应该公式的 $\beta \rightarrow \infty$ 极限,那么问题就是可解的。

在上述 $F_\beta(x,y)$ 的定义下,$P(y \mid x)$ 不过是 Gibbs-Boltzmann 公式的一次应用,$z$ 已被隐式边际化。物理学家把这个量称为"自由能"——这正是我们用 $F$ 表示它的原因:$E$ 是能量,$F$ 是自由能。

提问:能量模型相比概率模型的优势到底在哪?

概率模型同样可以引入隐变量并对其边际化,那么 EBM 的独特价值是什么?

答案是:目标函数的选择自由度与"决策优先"的建模哲学。

  • 在概率模型中,你基本没有选择要最小化的目标函数的自由:为了忠于概率框架,你操纵的每个对象都必须是归一化分布(充其量用变分方法等去近似)。
  • 而现实系统的终极目标是做决策。例如自动驾驶系统给出"左转概率 0.8、右转概率 0.2",你依然要左转——概率的精确值(0.2 还是 0.8)无关紧要,因为你被迫做出一个具体决定。因此,只做决策时,概率本身是多余的。
  • 只有当你想把两个分别训练、未联合校准的系统(如一个人和一个 AI)的输出组合起来时,才需要把得分校准成概率,因为"把得分变为概率"是校准得分的唯一途径,其余方式要么更差、要么等价。
  • 但如果你端到端地训练一个决策系统,那么任何评分函数都可以用,只要它把最高分给到最优决策即可。能量模型因此在"如何处理模型、如何训练、用什么目标函数"上提供了多得多的选择。
  • 若坚持概率模型,就必须用最大似然(maximum likelihood):训练模型使得它给观测数据的概率最大。问题是,这只有在模型"正确"时才能被证明有效——而模型永远不可能是"正确"的。正如统计学家 George Box 的名言:"All models are wrong, but some are useful."(所有模型都是错的,但有些是有用的。)概率模型,尤其是高维空间、文本这类组合空间中的概率模型,本质上都是近似模型;强行把它们归一化,只会让它们"错得更厉害"。所以,不如不归一化,直接用能量。

一个反例:完美的概率密度模型根本不可用

课程用一个直观的"地形图"论证了为什么在连续多解场景下坚持概率建模是有害的。

设想能量函数像一条山脉:山谷对应数据点(黑色圆点)所在的位置,四周是高耸的山峰。如果在这个数据上训练概率模型,并假设数据点位于一条无限薄的流形上(本例中就是三条没有厚度的线段),那么理想的密度模型应该是:在流形上密度为无穷大,离开流形哪怕 $\varepsilon$ 距离密度就趋于零——并且 $x,y$ 上的积分还要等于 1。

这个模型在计算机上几乎不可能实现:若用神经网络表达,网络需要有无限多个权重,且权重要校准到"整个定义域上的积分恰为 1",这在实践中是不可能的。这正是最大似然要求你产出的东西,而世界上没有任何计算机能算出它。

更讽刺的是,即便有了完美的密度模型,推理也做不了。给定一个 $x$,绝大多数 $y$ 的概率都是零,只有零测度集合内的少数几个 $y$ 有可能——它们像极窄的尖峰(狄拉克 $\delta$ 函数的叠加)。

如上图所示,存在 3 个"无限窄"的合法 $y$ 值,没有任何推理算法能找到它们。唯一的出路是:把对比函数(contrast function)做成光滑且可微的,然后从任意起点出发,用梯度下降为每个 $x$ 找到可接受的 $y$。但这样一来,它就不再是该分布"正确的"概率模型。这个例子说明:坚持要一个好概率模型,在某些情况下反而有害——最大似然在此失效。

贝叶斯视角:先验只是另一种正则化

真正的贝叶斯主义者可能会反驳:可以通过强先验(prior)强制密度函数光滑。但课程指出:你在贝叶斯框架里做的一切——取对数、忘掉归一化——得到的正是能量模型。带正则化的能量模型(正则项直接加在能量函数上)与"似然是能量的指数"的贝叶斯模型完全等价:

$$ \exp(\text{能量}) \times \exp(\text{正则化}) = \exp(\text{能量} + \text{正则化}) $$

去掉指数之后,就是一个带加性正则项的能量模型。

因此,概率方法与贝叶斯方法之间存在对应关系;但坚持使用最大似然有时对你不利,尤其在高维空间或组合空间中,概率模型错得离谱。离散分布下错误尚可接受,而连续情形下可能完全错误——而所有模型本质上都是错的。

在仓库中继续深入:训练方法与实现

本讲只解决了"能量模型是什么、怎么推理、为什么优于概率模型";能量函数如何学习是第 7 周下半部分的内容:

  • docs/it/week07/07-2.md:讲解自监督学习(SSL)、EBM 的两大类训练方法——对比方法(压低训练点能量、抬高其他点能量,如去噪自编码器、对比散度、马尔可夫链蒙特卡洛)与架构方法(通过正则化限制低能量区域的体积),并以K-means作为隐变量 EBM 的完整示例(能量函数 $E(y,z)=\Vert y-Wz\Vert^2$,$z$ 为 one-hot 向量),还给出了最大似然学习的梯度形式 $\frac{\partial L}{\partial W} = \frac{\partial E(Y,W)}{\partial W} - \int_{y} P(y\mid W) \frac{\partial E(y,W)}{\partial W}$——第一项压低数据点能量,第二项抬高所有其他 $y$ 的能量。
  • docs/it/week07/07-3.md:自编码器实战,包含标准自编码器与去噪自编码器的 PyTorch 实现细节(编码器 $784 \to 30$、双曲正切激活、MSE 损失、nn.Dropout()制造噪声掩码),对应可运行笔记本 10-autoencoder.ipynb。
  • 如需逐字稿核对,可查阅课程字幕 docs/en/week07/lecture07.sbv 与实验课字幕 docs/en/week07/practicum07.sbv;英文原版讲义见 docs/en/week07/07-1.md,本周课程总览见 docs/it/week07/07.md。

小结

能量模型用一个统一的"评分 + 最小化"框架,覆盖了有监督、无监督与自监督学习:推理即对 $y$(以及必要时对隐变量 $z$)最小化光滑可微的能量函数 $F(x,y)$;引入隐变量后可为一输入生成多个候选输出;而在概率层面,能量经由 Gibbs-Boltzmann 公式与自由能 $F_\beta$ 与概率分布建立联系,却又不必承担归一化配分函数的不可计算负担。理解这一讲,是后续掌握对比学习、去噪自编码器、以及第 8 周正则化内容(slides/07 - Regularisation.pdf)的认知基础。

  • 示例工程

【免费下载链接】NYU-DLSP20

NYU Deep Learning Spring 2020

项目地址:https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning
点击查看免费下载
上一篇:Polo终极指南:如何从生产数据库安全生成开发样本数据
下一篇:JEECG-Boot微服务日志终极指南:结构化日志与JSON格式输出配置

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询