恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
能量模型(EBM)深入解析:从兼容性评分到隐变量推理 —— NYU-DLSP20 第 7 周课程详解
首页
资讯中心
/
能量模型(EBM)深入解析:从兼容性评分到隐变量推理 —— NYU-DLSP20 第 7 周课程详解
能量模型(EBM)深入解析:从兼容性评分到隐变量推理 —— NYU-DLSP20 第 7 周课程详解
发布时间:2026/10/10 1:34:48
示例工程【免费下载链接】NYU-DLSP20NYU Deep Learning Spring 2020项目地址https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning点击查看免费下载本文以 NYU-DLSP20NYU Deep Learning Spring 2020第 7 周第 1 讲的核心讲义 docs/it/week07/07-1.mdYann 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范式是因为存在两类前馈网络难以胜任的核心问题推理过程可能比加权求和的堆叠复杂得多当推理本身需要更复杂的计算如迭代优化、求解约束时单纯前向传播一次得到答案的方式不再适用。一个输入可能对应多个合法输出以预测视频下一帧为例。分类网络本质上是为每个类别输出一个得分但在图像这种连续高维空间中我们无法对所有可能的图像做 softmaxcannot 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-DLSP20NYU Deep Learning Spring 2020项目地址https://gitcode.com/gh_mirrors/pyt/pytorch-Deep-Learning点击查看免费下载相关推荐能量模型EBM原理详解NYU-DLSP20 第七周课程导读能量模型EBM原理详解NYU DLSP20 第七周课程导读 能量模型Energy Based ModelsEBM为监督、无监督与自监督学习提供了一个示例工程Salt 的 mine.runner 实战指南用 salt-run mine.get 与 mine.update 高效读取与刷新 Mine 数据Salt 的 mine.runner 实战指南用 salt run mine.get 与 mine.update 高效读取与刷新 Mine 数据 导读 本文围示例工程隐变量能量模型EBM推理与训练全解析NYU-DLSP20 第 15 周精读隐变量能量模型EBM推理与训练全解析NYU DLSP20 第 15 周精读 本篇技术指南以 NYU DLSP20 第 15 周课程文档 docs/en/示例工程上一篇Polo终极指南如何从生产数据库安全生成开发样本数据下一篇JEECG-Boot微服务日志终极指南结构化日志与JSON格式输出配置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考