自监督方法的统一观点 我们认为,可以使用基于能量的模型(energy-based model,EBM)作为自监督学习的统一框架。能量模型是这样一个可训练系统:给定两个输入,x 和 y,告诉我们它们之间是多么不兼容。例如,x 是一个短视频片段,y 可以是另一个视频片段,机器会告诉我们 y 在多大程度上是 x 的好延续。为了表示 x 和 y 之间的不兼容性,机器会产生一个数字,称为能量。如果能量低,则认为 x 和 y 是相容的;如果能量高,则认为它们是不相容的。基于能量的模型(EBM)用来衡量观测值 x 和预测值 y 之间的相容性。如果 x 和 y 是相容的,那么能量就是一个小数; 如果 x 和 y 是不相容的,那么能量就是一个大数。训练一个能量模型包括两个部分: (1)向它展示兼容的 x 和 y 的样例,并训练它产生较低的能量;(2)找到一种方法,确保对于一个特定的 x,与 x 不兼容的 y ,相比与 x 兼容的 y,会有更高的能量。第一种是简单的,第二种是困难所在。对于图像识别,我们的模型采用两幅图像,x 和 y 作为输入。如果 x 和 y 是同一张图像的轻微变形,则训练出的模型会输出一个较低的能量。举例来说,x 可以是一张汽车的照片,y 可以是同一辆汽车在一天中不同时间或不同视角位置拍摄的照片。
联合嵌入,孪生神经网络
一个特别适合这样做的深度学习架构,是所谓的孪生神经网络或联合嵌入架构。这个想法可以追溯到20世纪90年代早期,以及2000年中期Geoff Hinton 实验室和 Yann LeCun 团队的论文。在相当长的一段时间里,它相对来说都被忽视了。但自2019年底以来,这种方法得到了复兴。联合嵌入体系结构由同一网络的两个相同(或几乎相同)副本组成。一个网络输入 x,另一个网络输入y。网络会分别产生两个代表 x 和 y 的嵌入向量。第三个模块,在头部联合这两个网络,计算一个能量,作为两个嵌入向量之间的距离。当给模型输入一个图像的两个变形图片时,网络的参数会做调整,使得输出的距离能够更接近。这种方式可以确保网络能够产生几乎相同的表征/嵌入,不管输入对象原来是图像还是文本。联合嵌入结构。位于顶部的函数 c 产生一个标量能量,用于测量由具有相同参数的两个同卵双生网络产生的表示向量(嵌入)之间的距离(w)。当 x 和 y 是同一图像的不同版本时,系统被训练为产生低能量,这迫使模型为两幅图像产生相似的嵌入向量。困难的部分是训练模型,以便为不同的图像产生高能量(即不同的嵌入)。难点在于当 x 和 y 是不同的图像时,确保网络产生高能量,即不同的嵌入向量。如果没有特定的方法,这两个网络会忽略它们的输入,且总是产生相同的输出嵌入。这种现象被称为坍缩。当坍缩发生时,不匹配的 x 和 y 的能量并不比匹配的 x 和 y 的能量高。有两类技术可以避免坍缩: 对比方法和正则化方法。
基于能量的对比自监督学习方法
对比方法的基本思想是构造不相容的 x - y 对,并调整模型的参数使得相应的输出能量较大。用对比方法训练能量模型,包括同时从训练集中压缩兼容(x,y)对的能量(用蓝点表示) ,同时压缩以绿点表示的精心选择的(x,y)对的能量(用绿点表示)。在这个简单的例子中,x 和 y 都是标量,但在实际情况中,x 和 y 可能是一个具有数百万维度的图像或视频。找出不相容的x-y对,从而以适当的方式塑造能量,从计算上讲是具有挑战且昂贵的。通过遮盖或替换某些输入词来训练 NLP 系统的方法属于对比法的范畴。但是它们没有采用联合嵌入结构。相反,它们使用一种预测结构,在这种结构中,模型直接为 y 生成预测。一开始是一段完整的文本 y,然后破坏它,例如通过遮盖一些词来生成观察 x。破坏的输入会被输入到一个大型神经网络中进行训练,来重现原始文本 y。将一个没有破坏的文本,重建为自身,这时为低重建错误;而将一个破坏的文本重建,这时或得到一个较大的重建错误。如果将重建错误解释为能量,它将具有所期望的特性: 正常的文本,能量较低;被破坏的文本,能量较高。 训练一个模型,对一个被损坏的输入进行恢复,这项技术被称为去噪自动编码器。虽然这个想法最早可以追溯到20世纪80年代,但2008年蒙特利尔大学Pascal Vincent等人重新提出这个模型,随后由Collobert 和 Weston把它引入到 NLP 当中,后通过谷歌发表的 BERT 论文流行起来。掩码语言模型是去噪自动编码器的一个实例,本身就是对比自监督学习的一个实例。变量 y 是一个文本片段;x 是文本中某些词被屏蔽的版本。网络经过训练可以重构未被破坏的文本。正如我们前面所指出的,这种类型的预测架构只能对给定的输入产生单个预测。因为模型必须能够预测多种可能的结果,所以预测不是一组词,而是一系列词汇表中每个缺失词位置的得分。但是我们不能对图像使用这个技巧,因为我们不能枚举所有可能的图像。这个问题有解决办法吗?简单来说,答案是否定的。在这个方向上有很多有趣的想法,但是它们还没有产生和联合嵌入结构一样好的结果。一个有趣的途径是隐变量预测架构。 一种隐变量预测结构。给定一个观测值 x,该模型必须能够产生一组由图中 s 形带状符号的多重兼容预测。由于隐变量 z 在一个集合中变化,由一个灰色正方形表示,输出随着一组似是而非的预测而变化。隐变量预测模型包含一个额外的输入变量(z)。它被称为latent,因为它的值从来没有被观察到。在一个训练好的模型中,当隐变量在给定集合中变化时,输出预测会随着与输入 x 相容的合理预测集合的变化而变化。隐变量模型可以用对比方法进行训练。一个很好的例子就是生成对抗性网络(GAN)。鉴别器可以看作在计算一个能量,表明输入 y 是否看起来不错。生成器会产生对比样本,训练鉴别器会与高能量联系在一起。但是对比方法有一个主要的问题: 它们训练起来效率很低。在图像这样的高维空间中,有许多方式可以使一个图像与另一个图像不同。找到一组能够涵盖它们与给定图像的所有不同方面的对比图像几乎是不可能的任务。套用列夫 · 托尔斯泰的《安娜 · 卡列尼娜》中的一句话:“幸福的家庭都是相似的,不幸的家庭各有各的不同。”这似乎适用于任何一类高维物体。如果有可能确保不相容对的能量高于相容对的能量,而不明确去提高不相容对的能量,那会怎样呢? 基于能量的非对比自监督学习 应用于联合嵌入架构的非对比方法(Non-contrastive methods)可能是当前视觉自监督学习研究的热点。这一领域在很大程度上还是一篇荒芜,不过也包含了极大的希望。非对比的联合嵌入方法包括DeeperCluster, ClusterFit, MoCo-v2, SwAV, SimSiam, Barlow Twins, DeepMind的BYOL等。它们使用各种技巧,如对相似图像的组进行计算虚拟目标嵌入(DeeperCluster, SwAV, SimSiam),或通过架构或参数向量使两个联合嵌入架构略有不同(BYOL, MoCo)。Barlow Twins 尝试最小化嵌入向量各个分量之间的冗余。也许从长远来看,一个更好的选择是,设计一种带有隐变量预测模型的非对比方法。这里主要的困难是,它们需要一种方法来最小化隐变量的容量。隐变量可以在其上变化的集合的体积,限制了使用低能量的输出的体积。通过最小化这个体积,我们就能自动地塑造能量。这种方法的一个成功例子是变分自编码器(VAE),它将隐变量“模糊化”,从而限制了其能力。但是,目前还没有研究表明VAE能够对下游的视觉任务产生良好的表征。另一个成功的例子是稀疏建模,但它的使用仅限于简单的架构。似乎还没有比较完美的方法来限制隐变量的能力。未来几年的挑战可能是,为基于能量的隐变量模型设计非对比方法,从而成功地生成图像、视频、语音和其他信号的好的表征,并在不需要大量标记数据的情况下在下游监督任务中获得最佳性能。