作者:Yann LeCun、Ishan Misra
编译:梦佳、贾伟
Facebook 今天宣布了一项重大突破: Facebook 的 自监督AI 模型 SEER 能够在没有人类帮助的情况下,从10亿张随机的、未标记的公共 Instagram 图片中学习,并且从这些信息中能够识别和分类照片中的主要对象,准确率达到84.2% ,比现有的自监督系统高出一个百分点。
Facebook AI 首席科学家 Yann Lecun 表示,希望人工智能能够像人类婴儿时期那样,通过观察前人的东西进行学习。
Facebook 在博客中写道: “ SEER 的表现表明,自监督学习能够在现实环境中胜任计算机视觉任务。这是一个重大突破,最终为未来更加灵活、准确和适应性更强的计算机视觉模型铺设了道路。”
由此,Yann LeCun和研究员 Ishan Misra撰文 Self-supervised learning: the dark matter of intelligence对自监督在NLP以及CV中的应用给出了框架性的解读。以下为全文内容。
近年来,人工智能领域,在开发人工智能系统方面取得了巨大进展,这些系统可以从大量精心标记的数据中学习。这种监督学习范式在训练专门的模型方面性能极好,在它们训练的任务上往往能够获得极高的性能表现。
但不幸的是,仅靠监督学习,人工智能领域难以走远。
监督学习在构建更智能的通用模型上存在本质上的瓶颈,例如处理多任务问题,或者通过大量存在的无标签数据学习新技能等。实际上,我们不可能对世界上一切事物都做标注;即使可以标注,但数量也可能并不足够,例如低资源语言翻译任务。
如果人工智能系统能够在训练数据集之外,对现实世界能够有更深入、更细致的理解,显然它们将更有用,最终也将使人工智能更接近人类层面的智能。
人类婴儿学习世界运作,主要是通过观察。我们会通过学习物体的持久性、重力等概念,从而形成关于世界上物体的广义预测模型。在随后的人生里,我们不断观察世界,然后对它进行作用,然而再观察作用的效果等等,通过反复尝试,从而建立假设,解释我们的行动如何能够改变我们的环境。
一种有效的假设是,人类和动物的生物智能,主要的成分是由关于世界的普遍知识或常识构成的,这种常识在生物智能中会被默认为自然而存在的背景。但对于人工智能来说,如何构建这种常识却一直是一个开放的挑战难题。在某种程度上,常识正是人工智能的暗物质。
常识可以帮助人们学习新技能,而无需为每项任务做大量的监督训练。
例如,我们只需要给小孩子看几张奶牛的图画,他们以后便可以轻松地识别出任何奶牛。相比之下,经过监督学习训练的人工智能系统,则需要许多奶牛的标注图像,即使这样,训练出的模型在一些特殊情况下,依然无法做出准确判断。
人类通过 20 个小时的练习,便能够学会驾驶汽车,但人类司机数千小时的数据却无法训练出一个很好的自动驾驶系统。
答案很简单:人类借助了他们以前获得的关于世界如何运作的背景知识。
我们如何让机器也能这样做呢?
我们认为,自我监督学习(self-supervised learning)是建立这种背景知识和近似人工智能系统中一种常识的最有前途的方法之一。
自我监督学习使人工智能系统能够从数量级更大的数据中学习,这对于识别和理解世界更微妙、更不常见的表示模式很重要。
长期以来,自我监督学习在推进自然语言处理(NLP)领域取得了巨大成功,包括 Collobert-Weston 2008 model,Word2Vec,GloVE,fastText 以及最近的BERT,RoBERTa,XLM-R等。通过这些方法训练的系统,会比以监督学习的方式训练的系统,性能要高得多。
我们最新的研究项目 SEER 利用 SwAV 和其他方法,在10亿张随机的未标记图像上预训练了一个大型网络,在各种视觉任务上获得了最高的精度。这一进展表明,在复杂的现实环境中,自监督学习也可以在 CV 任务中有出色表现。
在接下来的这篇文章中,我们将讲述,为什么自监督学习可能有助于解开智能暗物质,以及为什么它将是人工智能的下一个前沿。我们也将列出一些有前途的新方向,包括:在存在不确定性的情况下,基于能量的预测模型、联合嵌入方法、人工智能系统中用于自监督学习和推理的隐变量体系结构等。
01
自监督学习是一种预测学习
自监督学习从数据本身获得监督信号,通常会利用数据中的底层结构。自监督学习的一般技术是从任何未观察到的或隐藏的输入部分,预测观察到的或未隐藏的输入部分(或特性)。
例如,正如在 NLP 中常见的,我们可以隐藏句子的一部分,并从剩余的词中预测隐藏的词。
在视频中,我们也可以从当前帧(观测数据)中预测过去的或未来的帧(隐藏数据)。由于自监督学习利用数据本身的结构,它可以利用各种监督信号跨越共现形态(如视频和音频)或跨越大型数据集ーー所有这些都不需要依赖标签。
在自监督学习中,系统被训练为从可见的输入部分(绿色)预测隐藏的输入部分(灰色)。
因为自监督学习中涉及到监督信号,“自我监督学习”这个术语比以前使用的术语“无监督式学习学习”更为人们所接受。无监督式学习是一个定义不清且具有误导性的术语,这个词仿佛表明学习根本不需要任何监督。事实上,自监督学习并不是无监督的,因为这个过程使用的反馈信号远远多于标准的监督学习和强化学习的方法。
02
面向语言与视觉的自监督学习
自监督学习对 NLP 有着十分深远的影响。它允许我们在大规模未标记文本数据集上训练例如BERT、 RoBERTa、 XLM-R 等模型,并将这些模型应用于下游任务。这些模型在自监督阶段进行预训练,然后针对特定任务进行微调。
在自监督的预训练阶段,系统会显示一个短文本(通常是1000个词) ,其中一些词被遮挡或替换。训练之后,这个系统可以预测被遮挡或替换的词。在这个过程中,系统学会了表达文本的意思,这样它可以很好地填写出“正确的”词语,或者说在上下文中有正确表达含义的词语。
预测输入中缺失的部分是自监督学习预训练中一个比较标准的任务。要完成一个“ The (blank) chases the (blank) in The savanna”(xxx 在热带大草原上追逐着 xxx)这样的句子,系统必须知道狮子或猎豹可以追逐羚羊或角马;猫可以在厨房追逐老鼠,但却不是在热带大草原。作为训练的结果,系统学会了表达词的含义,词的句法角色,以及整个文本的意义。
然而,这些技术并不能很容易地扩展到新的领域,例如 CV领域。尽管早期的结果很有希望,自监督学习在计算机视觉方面还没有带来我们在 NLP 中看到的同样的改进(未来可能会有)。
主要原因是,在预测图像时要比预测文字时更难以表达不确定的事物。对于预测文字,如果无法准确预测被遮挡的词(是“狮子”还是“猎豹”?),系统可以将词汇表中所有可能的词与一个分数或概率联系起来。这样“ lion”、“ cheetah”或其他一些捕食者相关的词能够得分更高,而其他词的得分比较低。但图像却难以做到。
但是当我们预测视频中丢失的帧数或者图像中丢失的补丁时,我们不知道如何有效地表达不确定性。我们不可能列出所有可能的视频帧,并将其中的每一帧关联为一个分数,因为它们的数量是无穷尽的。这个问题限制了自监督学习在视觉方面的性能改进。但与此同时,新的自监督学习技术,例如 SwAV,正开始在视觉任务中打破SOTA记录。这在 SEER 系统中得到了最好的证明,该系统使用一个大型卷积网络,该网络利用十亿样本进行训练。
03
针对预测中的不确定性进行建模
为了更好地理解这一挑战,我们首先需要理解预测中的不确定性,以及与CV中相比,它是如何在 NLP 中建模的。
在 NLP 中,预测丢失的词,需要计算词汇表中每个可能的词的预测得分。尽管词表本身很大,预测一个缺失的词也会有一定程度的不确定性,但这问题不大,我们可以生成词表中所有可能的词的列表,以及该词在该位置出现的预估概率。
典型的机器学习系统可以将预测作为一个分类问题来处理,并使用一个巨大的所谓 softmax 层来计算每个结果的得分,这一层将原始得分转换为一个可能词的概率分布。使用这种技术,预测的不确定性,可以转化为对所有可能结果的概率分布,前提是可能结果的数量是有限的。
另一方面,在 CV 中,类似的任务是预测视频中的“缺失”帧、图像中的缺失补丁或语音信号中的缺失片段,这涉及到对高维连续物体的预测,而不是离散的结果。在给定视频片段之后,有无数可能的且合理的视频帧。
若想清晰表示所有可能的视频帧并将预测分数与它们关联起来,几乎是不可能的。事实上,我们可能永远没有技术来表示高维连续空间上合适的概率分布。
这似乎是一个棘手的问题。
04
自监督方法的统一观点
我们认为,可以使用基于能量的模型(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能够对下游的视觉任务产生良好的表征。
另一个成功的例子是稀疏建模,但它的使用仅限于简单的架构。似乎还没有比较完美的方法来限制隐变量的能力。
未来几年的挑战可能是,为基于能量的隐变量模型设计非对比方法,从而成功地生成图像、视频、语音和其他信号的好的表征,并在不需要大量标记数据的情况下在下游监督任务中获得最佳性能。
05
自监督学习应用于视觉的研究进展
最近,我们创建并开放了一个新的、具有10亿参数的自监督CV模型SEER,可以有效地处理复杂的高维图像数据。
SEER 基于应用于卷积网络架构(ConvNet)中的SwAV方法,可以从大量随机图像中训练,而不需要任何元数据或标注。ConvNet足够大,因此可以从这些庞大且复杂的数据中捕捉并学习每一个视觉概念。
在对10亿张随机的、未标注的,也没有做任何组织的instagram公开数据进行预训练,并对ImageNet进行有监督微调后,SEER的表现超过了目前最先进的自监督系统,在ImageNet上达到了84.2%的准确率。这些结果表明,我们可以将自监督学习范式迁移到计算机视觉当中。
06
Facebook如何用自监督学习
在Facebook,我们不仅通过基础的、开放的科学研究,在许多领域推进自监督学习技术,还将这种前沿工作应用到生产中,来提高我们产品内容理解系统的准确性,确保人们在我们平台上的安全。
自监督研究,就像我们预训练语言模型XLM,正在加速Facebook的一些重要应用——包括主动检测仇恨言论。我们已经部署了XLM-R,这是一个利用RoBERTa架构的模型,它可以改进我们在Facebook和Instagram上的多种语言的仇恨言论分类器。这将使那些即使训练数据很少的语言,对仇恨语音进行检测也成为了可能。
尽管要让这种方法帮助我们发现人工智能的暗物质还有很长的路要走,但近年来自监督的进步仍然让我们深受鼓舞。自监督是通往人类智力水平道路上的一步,但这一步背后肯定还有很多步骤。长期的成就,都是由一系列小的步伐累积出来的。这也是为什么我们致力于与更广泛的人工智能社区合作,来实现我们的目标,希望有一天,能够制造出具有人类智能水平的机器。我们的研究已经公开,并在顶级会议上发表;我们还组织了研讨会并发布了书籍,以帮助加速这一领域的研究。