A Tutorial on Energy-Based Learning
1 Introduction: Energy-Based Models
统计建模和机器学习的主要目的是编码变量之间的依赖关系。通过捕获这些依赖关系,模型可以用来回答给定已知变量值的未知变量值的问题。
基于能量的模型(ebm)通过将标量能量(兼容性的度量)与变量的每个configuration相关联来捕获依赖性。推理,即作出预测或决定,包括设定观察变量的值c和找出使能量最小化的剩余变量的值。学习包括找到一个能量函数,将低能量与其余变量的正确值联系起来,将高能量与错误值联系起来。一个损失函数,在学习过程中最小化,用于测量可用能量函数的质量。在这个通用的推理/学习框架中,能量函数和损失函数的广泛选择允许设计许多类型的统计模型,包括概率模型和非概率模型。
基于能量的学习为许多概率和非概率的学习方法提供了一个统一的框架,特别是对于图形模型和其他结构模型的非概率训练。基于能量的学习可以被看作是预测、分类或决策任务的概率估计的替代方法。由于不需要适当的归一化,基于能量的方法避免了与估计概率模型中的归一化常数相关的问题。此外,没有归一化条件,使得学习机的设计更加灵活。大多数概率模型可以看作是能量型模型的特殊类型,其中的能量函数满足一定的归一化条件,通过学习优化的损失函数具有特定的形式。
本章介绍基于能量的模型教程,重点介绍它们在结构化输出问题和序列标记问题中的应用。第1节介绍了基于能量的模型,并通过能量最小化描述了确定性推理。第二节介绍了基于能量的学习和损失函数的概念。描述了一些标准和非标准的损失函数,包括感知器损失、基于边际的损失和负对数似然损失。负对数似然损失可用于训练模型以产生条件概率估计。第3节展示了如何在EBM框架中建立简单的回归和分类模型。第4节涉及包含潜在变量的模型。第5节详细分析了各种损失函数,并给出了损失函数必须满足的充分条件,以使其最小化,从而使模型接近期望的行为。给出了“好”和“坏”损失函数的列表。第6节介绍了非概率因子图的概念,并非正式地讨论了有效的推理算法。第7节重点介绍序列标注和结构化输出模型。线性模型如最大边际马尔可夫网络和条件随机场在EBM框架中被重新制定。本文回顾了用于语音和手写识别的判别学习的文献,可以追溯到80年代末和90年代初。这包括整合了非线性判别函数(如神经网络)和序列对齐方法(如动态时间扭曲和隐藏马尔科夫模型)的全局训练系统。还回顾了ph transformer网络结构等层次模型。最后,在第8节中讨论了基于能量的方法、概率方法和基于抽样的近似方法(如对立分歧)的差异、共性和相对优势。
1.1 Energy-Based Inference
图1:一个模型使用能量函数E(Y,X)来测量观察到的变量X和要预测的变量Y之间的兼容性。例如,X可以是图像的像素,Y是描述图像中对象的离散标签。给定X,模型会产生能量E最小化的答案Y。
让我们考虑一个有两组变量X和Y的模型,如图1所示。变量X可以是一个矢量,包含一个对象的图像中的像素。变量Y可以是一个离散的变量,代表对象的可能类别。例如,Y可以取六种可能的值:动物、人形、飞机、卡车、汽车和 “以上都不是”。该模型被看作是一个能量函数,它可以衡量X和Y的每个可能配置的 “好”(或坏)。输出数可以解释为 X 和 Y 的值之间的兼容程度。在下文中,我们使用惯例,小的能量值对应于变量的高度兼容配置,而大的能量值对应于变量的高度不兼容配置。这种类型的函数在不同的技术界有不同的名称,它们可能被称为对比函数、值函数或负对数似然函数。在下文中,我们将使用能量函数一词,并将其表示为E(Y,X)。应该区分能量函数和损失函数(在第2节中介绍),前者是由推理过程最小化的,后者是由学习过程最小化的。
在模型最常见的用法中,给定输入X(从世界上观察到的),模型得出与观察到的X最相符的答案Y。
当 Y \mathcal Y Y很小时,对所有的 Y ∈ Y Y\in\mathcal Y Y∈Y计算E(X,Y)并选出最小值是容易的。
图2:EBM的几种应用。(a) 人脸识别。(a) 人脸识别:Y是一个high-cardinality的离散型人脸识别系统 变量;(b)人脸检测和姿势估计。(b) 人脸检测和姿势估计:Y是一个位置的向量集合 和每个可能的人脸的姿势;(c)图像分割。Y是一个图像,其中每个像素 是一个离散标签;(d-e)手写识别和序列标签。Y是一个序列 从一个高度结构化但可能是无限的集合(英语句子集)中提取符号。该 在自然语言处理和计算领域的许多应用中,情况是类似的。生物学;(f)图像修复。Y是一个高维连续变量(图像)。
然而,一般来说,选择最佳的Y可能并不简单。图2描述了几种情况,在这些情况下,Y可能太大,使穷尽搜索变得实际。在图2(a)中,该模型用于识别一张脸。在这种情况下,集合 Y \mathcal Y Y是离散的、有限的,但它的cardinality可能是数万个[Chopra等人,2005]。在图2(b)中,该模型用于寻找图像中的人脸并估计其姿势。
集合Y包含了每个位置的二进制变量,表示该位置是否有脸,以及一组连续变量,代表面的大小和方向[Osadchy等,2005]。在图2©中,该模型用于分割生物图像:每个像素必须被分为五类(细胞核、核膜、细胞质、细胞膜、外部介质)中的一类。在这种情况下,Y包含了所有一致的标签图像,即核膜包围着细胞核,细胞核和细胞质在细胞壁内等。该集合是离散的,但却难解的大。更重要的是,集合成员必须满足复杂的一致性约束[Ning等人,2005]。在图2(d)中,模型用于识别手写句子。这里Y包含英语中所有可能的句子,它是一组离散但无限的符号序列[LeCun等人,1998a]。在图2(f)中,模型用于恢复图像(通过清除噪声、提高分辨率或消除划痕)。集合Y包含所有可能的图像(所有可能的像素组合)。它是一个连续的高维集。
对于上述每一种情况,都必须采用一种称为推理过程的特定策略来寻找使E(Y,X)最小的Y。在许多实际情况下,推理过程会产生一个近似结果,它可能是或不是给定X的E(Y,X)的全局最小值。事实上,可能存在E(Y,X)有几个等价最小值的情况。使用的最佳推理程序通常取决于模型的内部结构。例如,如果 Y \mathcal Y Y是连续的并且E(Y,X)对于Y是平滑的并且表现良好,则可以使用基于梯度的优化算法。如果Y是离散变量的集合,能量函数可以表示为因子图factor graph,即依赖于不同变量子集的能量函数(因子)的总和,则可以使用因子图的有效推理程序(见第6节)[Kschischang等人,2001,MacKay,2003]。这种程序的一个流行例子是最小和算法。当Y的每个元素可以表示为加权有向无环图中的一条路径时,则特定Y的能量是沿特定路径的边和节点上的值之和。在这种情况下,可以使用动态编程(例如,使用Viterbi算法或A*有效地找到最佳Y)。这种情况经常发生在序列标记问题中,如语音识别、手写识别、自然语言处理和生物序列分析(如基因发现、蛋白质折叠预测等)。不同的情况可能需要使用其他优化程序,包括连续优化方法,如线性规划、二次规划、非线性优化方法,或离散优化方法,如模拟退火、图切割或图匹配。在许多情况下,精确优化是不切实际的,必须求助于近似方法,包括使用替代能量函数的方法(如变分方法)。
1.2 What Questions Can a Model Answer?
在前面的讨论中,我们已经暗示了模型要回答的问题是 “与这个X最匹配的Y是什么?”,这种情况在预测、分类或决策任务中会出现。然而,一个模型可以用来回答几种类型的问题。
-
预测、分类和决策。"Y的哪个值最符合这个X?这种情况发生在模型被用来做艰难的决策或产生一个动作时。例如,如果模型被用来驱动机器人并避开障碍物,它必须产生一个单一的最佳决策,如 “向左转”、"向右转 "或 “直行”。
-
排名。“是Y1还是Y2更符合这个X?” 这是比分类更复杂的任务,因为系统必须被训练成对所有答案进行完整的排名,而不是仅仅产生最好的一个答案。这种情况在许多数据挖掘应用中都会出现,在这些应用中,模型被用来选择最符合给定标准的多个样本。
-
检测。“Y的这个值是否与X兼容?” 通常情况下,检测任务,如检测图像中的人脸,是通过比较人脸标签的能量与阈值来完成的。由于系统构建时,阈值一般是未知的,因此必须对系统进行训练,使其产生的能量值随着图像看起来不太像人脸而增加。
-
条件密度估计。“给定X的 Y \mathcal Y Y的条件概率分布是多少?” 这种情况下,系统的输出不直接用于产生行动,而是交给人类决策者,或者反馈给另一个单独建立的系统的输入。
我们经常把X看作是一个高维变量(如图像),把Y看作是一个离散变量(如标签),但反过来的情况也很常见。当模型被用于图像还原、计算机图形学、语音和语言制作等应用时,就会出现这种情况。最复杂的情况是当X和Y都是高维的时候。
1.3 Decision Making versus Probabilistic Modeling
对于决策任务来说,比如机器人的转向,只需要系统给正确答案的能量最低即可。其他答案的能量是无关紧要的,只要它们的能量较大。然而,一个系统的输出有时必须与另一个系统的输出结合起来,或者反馈给另一个系统的输入(或人类决策者)。由于能量是未校准的(即以任意单位测量),组合两个单独训练的基于能量的模型并不简单:没有先验保证它们的能量标度是相称的。校准能量以允许这样的组合可以通过多种方式来完成。然而,唯一一致的方法是将所有可能输出的能量集合转化为标准化的概率分布。最简单也是最常用的方法是通过吉布斯分布(Gibbs distribution)将任意能量的集合变成0和1之间的数字集合,其总和(或积分)为1。
其中β是一个任意的正常数,类似于逆温度,分母称为配分函数partition function(与统计物理学中的类似概念类似)。吉布斯分布的选择似乎是任意的,但通过对能量函数的适当重新定义,可以获得(或近似)其他概率分布。用这种方法得到的数字是否是好的概率估计并不取决于能量如何转化为概率,而是取决于如何从数据中估计E(Y,X)。
应该注意的是,只有当积分 ∫ y ∈ Y e − β E ( y , X ) \int_{y\in\mathcal Y}e^{-\beta E(y,X)} ∫y∈Ye−βE(y,X)收敛时,上述能量到概率的转换才有可能。这在一定程度上限制了可以使用的能量函数和域 Y \mathcal Y Y。更重要的是,在许多实际情况下,计算配分函数是困难的(例如,当 Y \mathcal Y Y具有high cardinality时),或完全不可能的(例如,当 Y \mathcal Y Y是高维变量且积分没有解析解时)。因此,概率建模的代价很高,在应用程序不需要时应该避免。
2 Energy-Based Training: Architecture and Loss Function
EBM的训练包括寻找一个能为任何X产生最佳Y的能量函数。 最佳能量函数的搜索是在以参数W为索引的能量函数 ε \varepsilon ε族中进行的。
EBM的结构是参数化能量函数E(W,Y,X)的内部结构。在这一点上,我们对X、Y、W和 ε \varepsilon ε的性质没有特别的限制。当X和Y是实向量时, ε \varepsilon ε可以是基函数basis functions的线性组合(就像核方法一样),或者是一组神经网络结构和权值。当X和Y是可变大小的图像、符号或向量的序列或更复杂的结构对象时, ε \varepsilon ε可以表示相当丰富的函数类。第4、6和7节讨论了此类体系结构的几个示例。基于能量的方法的一个优点是它对 ε \varepsilon ε的性质几乎没有限制。
为了训练模型进行预测、分类或决策,我们给出了一组训练样本 S = { ( X i , Y i ) : i = 1... P } \mathcal S=\{(X^i,Y^i):i=1...P\} S={(Xi,Yi):i=1...P}。为了找到 ε \varepsilon ε族中的最佳能量函数,我们需要一种方法来评估任何特定能量函数的质量,仅基于两个要素:训练集和我们对任务的先验知识。这种质量度量称为损失函数(即函数的函数)并表示为 L ( E , S ) \mathcal L(E,\mathcal S) L(E,S)。为了简单起见,我们通常将其表示为 L ( W , S ) \mathcal L(W,\mathcal S) L(W,S),并简单地称之为损失函数。学习问题很简单,就是找到使损失最小化的W:
它是每样本损失函数在训练集上取的平均值,表示为 L ( Y i , E ( W , Y , X i ) ) L(Y^i,E(W,Y,X^i)) L(Yi,E(W,Y,Xi)),它取决于期望的标签 Y i Y^i Yi和通过保持输入样本固定和改变标签Y所获得的能量。
因此,对于每个样本,we evaluate a “slice” of the energy surface。R(W)是正则化器,可以用来嵌入我们关于家族中哪些能量函数优于其他函数的先验知识(在没有训练数据的情况下)。有了这个定义,损失在训练样本的排列组合和训练集的多次重复下是不变的。
自然,学习的最终目的是产生一个模型,对训练过程中未见的新输入样本给出好的答案。我们可以依靠统计学习理论的一般结果来保证,在样本的简单互换性条件和能量函数族(有限VC维度)的一般条件下,在训练集上最小化后的损失值与大的、独立的测试样本集上的损失值之间的偏差由一个量来约束,这个量随着训练集大小的增加而收敛为零[Vapnik,1995]。
2.1 Designing a Loss Functional
直观地说,每个样本的损失函数的设计方式应该是,将低损失分配给表现良好的能量函数:能量函数为正确答案提供最低的能量,为所有其他(不正确)答案提供更高的能量。相反,如果能量函数没有将最低的能量分配给正确的答案,则损失很大。损失函数(选择最佳能量函数的函数)的适当性的表征将在下面的章节中进一步讨论。
仅考虑到训练一个模型来回答第1类问题(预测、分类和决策)的任务,基于能量的方法的主要直觉如下。训练EBM包括塑造能量函数,因此对于任何给定的X,推理算法将产生Y的期望值 。由于推理算法选择能量最低的Y,因此学习过程必须shape the energy surface,使得期望的Y值具有比所有其他(不期望的)值更低的能量。图3和图4显示了在Y是离散变量和连续标量变量的情况下,给定输入样本Xi的能量作为Y函数的示例。我们注意到三种类型的答案:
图4:在连续情况下,能量面上的训练效果作为答案Y的函数。训练后,正确答案yi的能量低于错误答案yi的能量。
Y i Y^i Yi:正确答案
Y ∗ i Y^{*i} Y∗i:由模型产生的答案,即能量最低的答案。
Y ‾ i \overline Y^{i} Yi:最具攻击性的错误答案,即在所有错误答案中能量最低的答案。为了在连续情况下定义这个答案,我们可以简单地将 Y i Y^i Yi距离 ϵ \epsilon ϵ内的所有答案视为正确,而将距离以外的所有答案视为不正确。
不同的损失函数以不同的方式进行。第5节给出了损失函数必须满足的充分条件,以保证正确shape the energy surface。我们表明,一些广泛使用的损失函数不满足这些条件,而另一些则满足。
总结一下:给定一个训练集S,构建和训练一个基于能量的模型需要设计四个部分:
正确设计架构和Loss功能是至关重要的。我们对手头任务的任何先前知识都会被嵌入到架构和损失函数中(尤其是正则化器)。不幸的是,并不是所有架构和损失函数的组合都是允许的。对于一些组合,最小化损失不会使模型产生最佳答案。选择能够有效和高效学习的架构和损失函数的组合对于 基于能量的方法,因此也是本教程的核心主题。
因此,对立项拉高了每个答案的能量,其力量与模型下该答案的可能性成正比。不幸的是,有许多有趣的模型,对其计算Y上的积分是难以解决的。评估这个积分是一个主要的研究课题。人们在近似方法上做了大量的努力,包括 clever organization of the calculations, Monte-Carlo samplingmethods, and variationalmethods。虽然这些方法被设计成最小化NLL损失的近似方法,但它们可以在基于能量的框架中被视为选择能量将被拉起的Y的不同策略。
3 Simple Architectures
为了证实到目前为止所提出的观点,本节演示了如何将简单的分类和回归模型制定为基于能量的模型。这为讨论好的和坏的损失函数,以及讨论结构化预测的高级架构奠定了基础。
图6:被视为EBMs的简单学习模型:(a)a regressor:能量是回归函数 G W ( X ) G_W(X) GW(X)的输出和label Y之间的差异。最好的推理是 Y ∗ = G W ( X ) Y^*=G_W(X) Y∗=GW(X); (b) a simple two-class classifier:可能的答案是 { − 1 , 1 } \{-1,1\} {−1,1}。最好的推理是 Y ∗ = s i g n ( G W ( X ) ) Y^*=sign(G_W(X)) Y∗=sign(GW(X)) © a multiclass classifier:判别函数为三个类别中的每一个产生一个值。答案可以取三个值,它控制一个“开关”的位置,这个开关将判别函数的一个输出连接到能量函数。最佳推断是 G W ( X ) G_W(X) GW(X)最小输出分量的指标。
3.1 Regression
图6(a)显示了回归或函数近似的简单架构。能量函数是回归函数 G W ( X ) G_W(X) GW(X)的输出和要预测的变量Y(可以是标量或向量)之间的平方误差:
推理问题很琐碎:使E最小化的Y的值等于 G W ( X ) G_W(X) GW(X)。最小能量总是等于零。当使用这种架构时,能量损失、感知器损失和负对数似然损失都是等价的,因为感知器损失的对立项是零,而NLL损失的对立项是常数(它是一个方差不变的高斯积分)(具体看原文2.2 Examples of Loss Functions)。
这相当于均方误差的标准回归。
当G是参数的线性函数时,出现一种常见的回归形式:
ϕ k ( X ) \phi_k(X) ϕk(X)是N个特征的集合。
在简单的模型中,特征函数是由设计者手工制作的,或者从未标记的数据中单独训练出来的。在核方法的对偶形式中,它们被定义为 ϕ k ( X ) = K ( X , X k ) , k = 1... P \phi_k(X)=K(X,X^k),k=1...P ϕk(X)=K(X,Xk),k=1...P,其中K是核函数。在更复杂的模型中,例如多层神经网络和其他模型,φ本身可能是参数化的,并且需要学习,在这种情况下,回归函数不再是参数的线性函数,因此损失函数在参数中可能不是凸的。
3.2 Two-Class Classifier
图6(b)显示了一个简单的二分类器体系结构。要预测的变量是二进制的:Y={-1,+1}。能量函数可定义为:
其中 G W ( X ) G_W(X) GW(X)是由w参数化的标量值判别函数。推断很简单:
学习可以使用许多不同的损失函数来完成,包括perceptron loss, hinge loss, and negative log-likelihood loss。将等式32和33代入perceptron loss(等式7),我们得到:
…
3.3 Multiclass Classifier
图6(c)显示了3个类的多类分类体系结构示例。判别函数 G W ( X ) G_W(X) GW(X)产生输出向量 [ g 1 , g 2 , . . . , g C ] [g_1,g_2,...,g_C] [g1,g2,...,gC],每个C类有一个分量。每个 g j g_j gj可以解释为将X分配到第j类的 “惩罚”。一个离散的开关模块选择哪一个分量连接到输出能量。开关的位置由离散变量Y∈{1,2,…。,C},解释为类别。输出能量等于 E ( W , Y , X ) = Σ j = 1 C δ ( Y − j ) g j E(W,Y,X)=\Sigma^C_{j=1}\delta(Y-j)g_j E(W,Y,X)=Σj=1Cδ(Y−j)gj,其中 δ ( Y − j ) \delta(Y-j) δ(Y−j)是Kronecker delta function: δ ( u ) = 1 f o r u = 0 ; δ ( u ) = 0 o t h e r w i s e \delta(u)=1\ for\ u=0;\delta(u)=0\ otherwise δ(u)=1 for u=0;δ(u)=0 otherwise。推理是将Y设置为GW(X)最小分量的索引。
perceptron loss, hinge loss, and negative log-likelihood loss可以直接转化为多类情况。