资讯动态

NYU-DLSP20 第七讲:能量模型(Energy-Based Models)全解析——统一监督/无监督学习的推理框架

发布时间:2026/10/9 1:46:31 来源:尧图企业网站定制
示例工程【免费下载链接】NYU-DLSP20NYU Deep Learning Spring 2020项目地址https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning点击查看免费下载本篇基于 NYU Deep Learning Spring 2020 第七讲讲师 Yann LeCun的课程笔记 docs/es/week07/07-1.md 整理而成。文章系统讲解能量模型Energy-Based Model, EBM的核心定义、带隐变量的推理方法、与概率模型的对比并结合本仓库 week14 结构化预测讲义 与 week07 后续内容 进行纵深补充。读完本文你将掌握用能量函数替代 softmax 分类器的建模思路理解自由能Free Energy与 Gibbs-Boltzmann 分布的推导链条并能在决策类任务中判断何时应放弃严格的概率归一化。从课程说起为什么需要能量模型第七讲引入了一个用于定义模型的统一新框架。它提供了一把统一的伞可以同时涵盖监督学习、无监督学习和自监督学习模型。能量模型观察一组变量 $x$并输出一组变量 $y$其核心思路与经典的前馈网络feed-forward net截然不同。课程指出前馈网络存在两个主要问题推理过程可能远比堆叠的加权求和层复杂——如果推理本身需要动态规划、约束满足等更复杂的计算单纯靠网络前向传播得到答案就不够了同一个输入可能对应多个合理输出——例如预测视频的未来帧。本质上分类网络被训练成对每个类别输出一个分数但这在图像这类连续高维域中不可行我们无法对图像做 softmax。即使输出是离散的其样本空间也可能巨大例如文本具有组合性会产生数量庞大的可能组合。能量模型正是为建模这些模态而提供的更优框架。课程笔记原文强调能量模型提供了一个更好的框架来建模这些模态。EBM 核心思想用能量度量 (x, y) 的兼容性从分类转向兼容性判断与其试图把 $x$ 分类到 $y$能量模型更愿意预测某个 (x, y) 组合是否契合——换句话说找到一个与 $x$ 兼容的 $y$。问题也可以表述为寻找一个使得某个函数 $F(x,y)$取低值的 $y$。课程给出的两个直观例子$y$ 是否是 $x$ 的精确高分辨率图像文本A是否是文本B的好的翻译这种通过最小化函数进行推理的方式涵盖了一大类模型通过最小化 $f(x,y)$即能量来完成推理。这些约束由 $f(x,y)$ 表示此后课程统一将 $f(x,y)$ 称为能量函数Energy function。能量函数的定义课程给出了严格的数学定义定义能量函数$$ F: \mathcal{X} \times \mathcal{Y} \rightarrow \mathcal{R} $$其中 $F(x,y)$ 描述 $(x,y)$ 组合之间的依赖程度。需要注意这里的能量用于推理inference而不用于学习learning。推理由下式给出$$ \check{y} \displaystyle \text{argmin}_y \left { F(x,y)\right } $$也就是说给定输入 $x$最优输出 $\check{y}$ 是使能量函数最小的那个 $y$。基于梯度的推理Gradient-based Inference为了让能量函数可用于推理我们希望它是光滑且可微的smooth and differentiable这样就能用基于梯度的方法搜索。具体做法是使用梯度下降gradient descent在该函数上搜索以找到与 $x$ 兼容的 $y$。当然除梯度法之外还有多种替代方法可以求最小值。附注Aside图模型Graphical Models是能量模型的一个特例。此时能量函数可以分解为若干能量项之和每一项只考虑我们正在处理的变量的一个子集。如果这些项组织成特定形式就可以使用高效的推理算法来求各项之和关于目标推理变量的最小值——这一思想直接呼应了本仓库 week14 讲义中的能量因子图energy-based factor graphs见后文延伸章节docs/en/week14/14-1.md。带隐变量的能量模型EBM with Latent Variables有一类能量模型非常流行即带隐变量的能量模型。此时输出 $y$ 不仅依赖于 $x$还依赖于一个我们不知道取值的额外变量 $z$隐变量latent variable。隐变量可以提供辅助信息例如一个隐变量可以指示一段文本中词边界的位置——当我们想解读没有空格的手写文本时这一点非常有用在语音中隐变量有助于处理难以辨认的停顿间隙某些语言的词边界非常模糊例如法语因此模型中拥有这个隐变量对解读这类输入极其有用。联合最小化的推理方式对带隐变量的 EBM 做推理需要同时关于 $y$ 和 $z$ 最小化能量函数$$ \check{y}, \check{z} \text{argmin}_{y,z} E(x,y,z) $$这等价于把能量函数重新定义为$$ F_\infty(x,y) \text{argmin}_{z}E(x,y,z) $$它又等价于软最小化形式$$ 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)$即退化为纯粹的硬最小值推理。这一公式同时也是下文自由能的雏形——F∞对应 $\beta$ 趋于无穷的极限情形。下图展示了带隐变量能量模型的计算图对应课程 Fig. 1从计算图可见输入 $x$ 经过编码模块Pred(x)得到隐特征 $h$解码模块Dec(z,h)在隐变量 $z$ 的辅助下生成预测输出 $\bar{y}$最后由模块C(y, \bar{y})$对比真实目标 $y$ 与预测 $\bar{y}$ 输出能量/损失值。隐变量带来的关键优势多模态输出允许隐变量的另一大好处是通过在某个集合上变化隐变量预测输出 $y$ 也会在可能预测的流形图中形如一条丝带/ribbon上变化即$$ F(x,y) \text{argmin}_{z} E(x,y,z) $$这使机器可以产生多个输出而不仅仅是一个。这正是 EBM 区别于传统判别模型的核心能力之一——week14 讲义也以路径选择为例说明寻找能量最低的路径相当于在隐变量路径上最小化docs/en/week14/14-1.md。典型应用视频预测与机器翻译视频预测Video Prediction是一个典型例子它有大量实用价值其一是构建视频压缩系统其二是利用自动驾驶汽车拍摄的视频预测其他车辆接下来会做什么。这类任务天然是一输入多输出的能量模型比逐像素回归/分类更自然。翻译Translation是另一个例子。语言翻译一直是个难题因为一段文本从一种语言到另一种语言不存在唯一正确的翻译。通常同一想法有多种表达方式人们甚至很难说清为什么选择其中一种。因此如果有一种方法能够参数化系统对给定文本可能产生的所有翻译将会很有用。例如从德语翻译成英语可能有多达数种都是正确的英文翻译——通过变化某些隐变量就可以变化生成的翻译。EBM 与概率模型Probabilistic Models的对比Gibbs-Boltzmann 分布从能量到概率可以把能量看作未归一化的负对数概率unnormalised negative log probabilities并利用 Gibbs-Boltzmann 分布在归一化之后把能量转换为概率$$ P(y \mid x) \frac{\exp (-\beta F(x,y))}{\int_{y}\exp(-\beta F(x,y))} $$其中 $\beta$ 是正常数需要针对你的模型进行校准calibrated更大的 $\beta$ 给出更波动fluctuate的模型更小的 $\beta$ 给出更平滑smooth的模型在物理学中$\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$只需要重新定义能量函数 $F_\beta$即自由能Free Energy即可。自由能Free Energy$$ F_{\beta}(x,y) - \frac{1}{\beta}\log \int_z \exp (-\beta E(x,y,z)) $$课程指出计算这个式子可能非常困难在大多数情况下甚至可能是不可解intractable的。但如果你有一个想在模型内部最小化的隐变量或想对其边缘化的隐变量通过定义能量函数 $F$ 来实现并且最小化恰好对应上述公式的 $\beta$ 无穷极限那么这件事就可以做。在上述 $F_\beta(x, y)$ 的定义下$P(y \mid x)$ 只是 Gibbs-Boltzmann 公式的一次直接应用而 $z$ 已在其中被隐式边缘化。物理学家称之为自由能这正是我们用 $F$ 表示它的原因$e$ 是能量energy$F$ 是自由能free energy。课程在此处提出了一个关键问题能量模型带来的优势是什么在基于概率的模型中你也可以拥有可被边缘化的隐变量。差异何在见下文。为什么决策问题不需要概率课程的回答非常犀利在概率模型中你基本没有选择要最小化哪个目标函数的自由必须忠于概率框架——你操作的每一个对象都必须是归一化的分布可以用变分方法等去近似。而能量模型的立场是你最终要做的其实是决策decisions。设想你构建了一个自动驾驶系统它告诉你我需要以 0.8 的概率左转、以 0.2 的概率右转你最终还是会左转。0.2 与 0.8 这个事实并不重要——重要的是做出最佳决策因为你被迫要做一个决定。因此如果你要决策概率本身是没用的。但概率并非一无是处如果要把一个自动化系统的输出与另一个系统例如人类或其他系统的输出组合而它们又是分别训练的那么你需要的是校准过的分数calibrated scores以便将两个系统的分数合起来做出好的决策。将分数校准成概率是唯一的方式其他方式要么更差、要么只是等价。反过来如果你要端到端地训练一个系统来做决策那么只要它把最好的分数给到最好的决策用任何评分函数都可以。这正是能量模型的价值所在能量模型在如何处理模型、如何训练模型、使用什么目标函数上给了你多得多的选择。如果你坚持模型必须是概率的就必须使用最大似然maximum likelihood——即让模型给观测数据的概率最大化。问题是这只有在你的模型是正确的时候才被证明有效而你的模型永远不会是正确的。课程引用了著名统计学家 George Box 的名言All models are wrong, but some are useful.所有模型都是错的但有些是有用的。概率模型尤其是高维空间以及文本这类组合空间中的概率模型全部是近似模型。它们在某种意义上都是错的而如果你试图对它们归一化只会让它们错得更厉害——所以干脆不要归一化。能量景观与完美概率模型的悖论课程用一张能量函数可视化图对应 Fig. 2即 fig3.png来说明这一观点这是一个用于捕获 $x$ 与 $y$ 之间依赖关系的能量函数看起来就像一片山脊山谷处是黑点数据点四周是山脉。如果你用概率模型去拟合这样的数据——想象这些点实际上落在一个无限细的流形上数据分布只是一条线有三条这样的线它们没有任何宽度。那么正确的概率模型应该告诉你在这个流形上密度为无穷大而距离它 $\varepsilon$ 之外密度为 0。这不仅要求密度无穷还要求对整个 $[x,y]$ 空间的积分为 1。课程强调这在计算机上极难实现甚至基本不可能。假设你想用某种神经网络计算这个函数——网络将不得不拥有无穷大的权重并且要校准到输出对整个定义域的积分等于 1这基本上做不到。也就是说对这份特定数据而言准确且正确的概率模型是不存在的。这正是最大似然希望你的模型产出的东西而世界上没有任何计算机能算出来——事实上这甚至不值得追求。更反直觉的是即使你拥有了这个例子的完美密度模型$(x,y)$ 空间中的一块薄板你也无法做推理如果给你一个 $x$ 值并问最佳的 $y$ 是什么你找不到答案——因为除了零概率集合外所有 $y$ 的概率都是 0只有少数几个值可行。下图对应课程 Fig. 3即 fig4.png展示了这一情形可以看到可行的 $y$ 值只有 3 个而且它们无限窄——你根本找不到它们。没有任何推理算法能帮你找到它们。唯一的方法是让对比函数contrast function变得光滑且可微然后从任意点出发通过梯度下降为任意 $x$ 找到一个好的 $y$ 值。但如果数据的分布是上述类型这样的模型不会是一个好的概率模型。这正是坚持要一个好的概率模型反而是坏事的情形——课程直言最大似然在这种情况下非常糟糕Maximum likelihood sucks贝叶斯视角先验、对数与正则化如果你是坚定的贝叶斯主义者可能会说可以通过一个强先验来修正——先验要求密度函数必须是光滑的。你可以把它视为一种先验。但课程指出你在贝叶斯框架下所做的一切——取对数、忘掉归一化——得到的正是能量模型。具体来说带有正则化器regulariser的能量模型其正则化器加在能量函数上与如下贝叶斯模型完全等价似然是能量的指数形式于是得到$$ \exp(\text{energy}) \cdot \exp(\text{regulariser}) \exp(\text{energy} \text{regulariser}) $$去掉指数之后就是一个带加性正则化器的能量模型。因此概率/贝叶斯方法与能量模型之间存在对应关系。但坚持用最大似然有时对你不利特别是在高维空间或组合空间里概率模型错得非常离谱。在离散分布中问题不大但在连续情形下可能错得很严重——而且所有模型都是错的。仓库延伸从能量因子图到损失函数家族能量模型的思想在本仓库中并非孤立存在——第七讲后续内容docs/es/week07/07-2.md 对应的 英文原版进一步讨论了用隐变量 EBM 做视频下一帧预测并介绍了训练能量模型的两大类方法对比方法Contrastive Methods压低正确答案能量、推高错误答案能量与架构方法Architectural Methods通过正则化限制低能量区域体积。而 week14 的结构化预测讲义则给出了能量模型在推理与训练上的完整落地方案。能量因子图分解能量以获得高效推理在 docs/en/week14/14-1.md 中能量因子图energy-based factor graphs将总能量写成若干局部因子能量之和$$ E(Y, Z, X) E_a(X, Z_1) E_b(X, Z_1, Z_2) E_c(Z_2, Y_1) E_d(Y_1, Y_2) $$每个因子代表其输入变量之间的软约束。当因子数量固定时穷举搜索会指数爆炸而利用因子图结构可以把推理问题约简为图上的最短路径搜索用 Viterbi 算法或 A* 算法等动态规划方法求解——其代价与边数成正比通常远小于路径总数。这与本讲中图模型是能量模型特例、能量分解为项之和的论断完全呼应。训练能量模型的核心损失函数week14 讲义docs/en/week14/14-2.md给出了训练能量模型的损失函数对比表其目标都是让正确答案的能量低、错误答案的能量高。损失函数公式要点是否有 marginEnergy Loss$E(W, Y^i, X^i)$无Perceptron$E(W, Y^i, X^i)-\min_{Y \in \mathcal{Y}}E(W, Y, X^i)$0Hinge$\max\big(0, m E(W, Y^i,X^i)-E(W, \overline{Y}^i,X^i)\big)$$m$Log$\log\big(1\exp(E(W, Y^i,X^i)-E(W, \overline{Y}^i,X^i))\big)$0NNL/MMI$E(W, Y^i,X^i) \frac{1}{\beta}\log\int_{y\in\mathcal{Y}}\exp\big(-\beta E(W, y,X^i)\big)$0MEE$1-\frac{\exp(-\beta E(W,Y^i,X^i))}{\int_{y\in\mathcal{Y}}\exp(-\beta E(W,y,X^i))}$0其中几个关键结论值得注意Perceptron 损失没有 margin存在能量坍塌collapse的风险Hinge 损失要求正确能量至少比最恶劣错误答案低 margin $m$NLL负对数似然损失会把正确与错误答案的能量差推向无穷大而 Hinge 只要求差大于某个值margin即可因此在实践中 Hinge 往往更稳健。此外从课程讲解lecture14.sbv可知NLL 损失在 $\beta \rightarrow \infty$ 时收敛到 Perceptron 损失——这正是本讲中 $\beta$ 极限思想的直接应用。小结能量模型EBM提供了一个统一框架把推理定义为在能量函数上最小化把学习定义为压低正确答案能量、推高错误答案能量。它天然支持隐变量带来的多模态输出能以自由能的形式对隐变量做概率上正确的边缘化并且在决策类任务中比强制归一化的概率模型更灵活、更务实。本仓库的 slides/12 - EBM.pdf 提供了配套讲义week14 的结构化预测章节则是能量模型在图结构推理场景下的深入延续建议结合阅读。赞分享示例工程【免费下载链接】NYU-DLSP20NYU Deep Learning Spring 2020项目地址https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning点击查看免费下载相关推荐NYU-DLSP20 第七周笔记精讲Energy-Based Models 能量模型框架全解析NYU DLSP20 第七周笔记精讲Energy Based Models 能量模型框架全解析 课程来源 NYU Deep Learning Spring示例工程NYU-DLSP20 第七周深度解析能量模型EBM、自监督学习与自编码器实战NYU DLSP20 第七周深度解析能量模型EBM、自监督学习与自编码器实战 本篇技术指南以 NYU Deep Learning Spring 2020示例工程NYU-DLSP20 第七周讲义精读自监督学习与能量模型的训练策略含潜变量 EBM、K-means 与对比方法NYU DLSP20 第七周讲义精读自监督学习与能量模型的训练策略含潜变量 EBM、K means 与对比方法 本篇文章基于 NYU Deep Learn示例工程上一篇android-security-awesome社区活动总结视频编辑指南下一篇Godot官方示例项目怎么跑起来从克隆到打开第一个Demo的完整路径创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑