【自监督学习综述】A Survey on Contrastive Self-Supervised Learning

论文地址:https://arxiv.org/abs/2011.00362

摘要

自监督学习越来越受欢迎,因为它能够降低注释大规模数据集的成本。它能够采用自定义的伪标记来监督,并将学习的表示形式用于多个下游任务。

对比学习最近已成为用于计算机视觉,自然语言处理(NLP)和其他领域的自监督学习中的主要组成部分。它旨在加入相同样本的扩展版本,同时试图从不同样本中发现加入的样本。

本文对遵循对比方法的自监督学习进行了广泛的评论。这项工作解释了对比学习中常用的前置任务,以及迄今为止提出的不同架构。接下来,我们对图像分类、对象检测和动作识别等多个下游任务的不同方法进行性能比较。最后,我们总结了当前方法的局限性以及对进一步技术和未来方向的需求以取得有意义的进展。

1.介绍

深度神经网络 (DNN) 成为大多数计算机视觉 (CV) 任务(如图像分类、对象检测、图像分割和活动),以及自然语言处理 (NLP) 任务,如句子分类、语言模型、机器翻译等的常用方法。

监督学习存在的问题

(1)取决于昂贵的标记数据

(2)容易遭受了诸如概括错误,虚假相关性和对抗性攻击等问题;

(3)泛化性能差

最近,自监督的学习方法已经整合了生成和对比的方法,这些方法已经能够利用未标记的数据来训练学习。事实证明,自监督学习方法对图像修复、灰度图像着色、拼图游戏、超分辨率、视频帧预测、视听对应等任务有良好的效果。

2014年,提出生成式对抗网络(GAN)之后,生成模型获得了知名度,后来,这项工作成为许多成功架构的基础,例如Cyclegan,Stylegan,Pixelrnn,Text2Image,Discogan等。

但是,GAN也存在一些问题:

(1)不收敛——模型参数波动很大并且很少收敛; 

(2) 判别器过于成功以至于生成器网络无法创建类似真实的假货,因为无法继续学习;(3)生成器和鉴别器之间需要适当的同步,以防止鉴别器收敛和生成器发散。

与生成模型不同,对比学习 (CL) 是一种判别方法,旨在让相似的样本的距离更近,不同的样本距离更远。为了实现这一点,使用相似性度量来衡量两个输入的接近程度。

 图 1. 对比学习的基本远离:让原始图像和增强图像距离更近,让原始图像和负图像距离更远

对于计算机视觉任务,用从编码器中提取的图像特征表示来评估对比损失。例如,从训练数据集中获取一个样本,并通过应用适当的数据增强技术检索该样本的转换版本。在训练过程中,原始样本的增强版本被视为正样本,批处理/数据集中的其余样本被视为负样本。接下来,模型以一种学习区分正样本和负样本的方式进行训练,区分是在一些前置任务(pretext task)的帮助下实现的。

图2.自我监督训练的对比学习流程

早期工作将一些实例级的分类任务作为前置任务,最近的工作(SwAV、MoCo、SimCLR)使用一些改进的方法,取得了和SOTA的有监督方法相似的性能。

图3.针对Imagenet上的基线监督方法,不同对比度学习方法的TOP-1分类准确度。

2.前置任务

前置任务是使用伪标签学习数据表示的重要策略。这些伪标签是根据数据中找到的属性自动生成的。对于对比学习中的前置任务,原始图像充当锚点(anchor),其增强(转换)版本充当正样本,批处理或训练数据中的其余图像充当负样本。大多数常用的前置任务分为四大类:颜色变换、几何变换、基于上下文的任务、基于跨模态的任务

2.1颜色变换

颜色转换涉及对图像中颜色水平的基本调整,例如模糊,颜色失真,转换为灰度等。图4表示来自Imagenet数据集的示例图像上应用的颜色转换的示例。在这项前置任务中,网络学会了识别其颜色不变的相似图像。

图4.颜色转换的前置任务:(a)原图,  (b)高斯噪音,  (c)高斯模糊,  (d)颜色失真(抖动)

2.2几何变换

几何变换是一种空间变换,对图像的几何形状进行修改,而无需更改其实际像素信息。转换包括缩放,随机裁剪,翻转(水平,垂直)等。如图5所示,通过该图5实现了全局视图预测。在这里,原始图像被视为全局视图,转换后的版本被视为本地视图。 Chen等。 在前置任务中进行此类转换以学习特征。

图5.几何转换:(a)原图, (b)裁剪和调整大小, (c)旋转(90°,180°,270°), (d)裁剪,调整大小和翻转

2.3基于上下文的任务

2.3.1拼图

传统上,解决拼图是以无监督的方式从图像中学习特征的重要任务。它涉及通过训练编码器来识别图像中各部分的正确位置(图6)。在对比度学习方面,原始图像是锚点,并且通过在原始图像中拼贴各部分而形成的增强图像作为正样本。数据集/批处理中的其余图像被认为是负样品

图6.(a)原始图像; (b)改组图像,原始图像是锚点,改组图像是正样品

2.3.2帧顺序

这种方法适用于随时间扩展的数据。比如传感器数据或一系列图像帧(视频)的情况。视频包含一系列语义相关的框架,这意味着附近相对于时间相近的帧密切相关,并且时间相隔远的帧不太可能相关。该任务使模型可以在试图恢复视频的时间连贯性的同时学习有用的视觉表示。在这里,(1)一个视频中将帧的顺序打乱后作为正样本,将数据集中其他视频作为负样本;(2)或者从一段长视频中随机截取两段长度相等的片段作为一对样本,(3)或者对每个视频片段采用空间增广。目的是利用对比度损失来训练模型,以使从同一视频中获取的剪辑更接近,而来自不同视频的剪辑更远中。

2.3.3 预测未来

最常见的数据策略之一是预测未来或丢失的信息。这通常用于顺序数据,例如感觉数据,音频信号,视频等。这类任务的目标是预测未来时间步长的高级信息。高维数据被压缩到紧凑的低维潜在嵌入空间中。强大的自回归模型用于总结潜在空间中的信息,并产生了上下文表示Ct(如图7)。预测未来信息时,目标(未来)和上下文表示Ct被编码为一种紧凑的分布式向量,以最大程度地保留原始信号的信息。

图7.对比预测编码:尽管该图将音频显示为输入,但可以将类似的设置用于视频,图像,文本等

2.4视图预测(基于跨模态的任务)

对于具有同一场景的多个视图的数据,视图预测任务是首选。锚点和正样本来自同一物体在不同视角下同一时刻的图像,负样本则为该图像其他时刻的图像。该模型通过尝试同时从不同角度识别帧之间的相似特征并尝试找出序列中稍后出现的帧之间的差异来学习。图 8 代表了视图预测方法。

 图8.从视频框架序列学习表示

2.5确定正确的前置任务

工作已经确定并证明,确定正确的前置任务非常重要,以使模型在对比度学习中表现良好。但是,通过这种增强引入的偏差可能是一把双刃剑,因为每次增强都会不断改变,在某些情况下可能是有益的,在其他情况下可能是有害的。例如,应用旋转可能有助于依赖视图的空中图像识别,但在尝试解决下游任务时可能会大大降低性能。同样,基于颜色的前置任务可能无法在图9所示的细粒分类中进行。

图9.这两张图像的形状大致相同的,但是低级统计数据是不同的(颜色和纹理)

同样,除旋转外,其他转换(例如缩放比例和变化)可能也不适合前置任务,因为它们会产生易于检测到的视觉伪像。他们还揭示了当目标数据集中的图像是由颜色纹理构造的,如DTD数据集,如图10所示,旋转无法正常工作。

 图10.来自DTD数据集的样本,为什么基于旋转的前置任务可能无法正常工作的一个示例

2.6 NLP中的前置任务

2.6.1中心和邻接词预测

在2013年,Word2Vec首先引入了自监督的方法来学习向量空间中的单词表示。该模型的bag-of-words模式使用“中心单词预测”作为前置任务,而连续的跳过格式模型实施了“邻接单词预测”任务。在中心词预测中,模型的输入是一系列单词序列,窗口大小固定,序列中心缺少一个单词。该模型的任务是预测序列中的丢失单词。另一方面,Skip-Gram模型中的输入是单个单词,该单词可以预测其邻居单词。通过执行这些特定的任务,该模型能够学习单词表示,可以进一步用于训练下游任务的模型。

2.6.2下文和相邻句子预测

在“下文句子预测”中,该模型预测了两个输入句子是否可以是连续的句子。在这种情况下,一个正样本将是遵循原始句子的样本,而负样本是随机文档的句子。 Bert使用此方法大大提高了需要理解句子关系(例如问题答案和语言推论)的下游任务的性能。同样,给定一个句子,模型必须在邻接句子中预测其上下句,他使用类似于Skip-gram方法(用句子代替单词)。

2.6.3自回归语言模型

此任务涉及通过给定单词预测下一个单词。首先,提供了文本文档中的一系列单词,该模型试图预测遵循改序列的下一个单词。该技术已被多种N-Gram模型和神经网络(例如GPT及其最新版本)使用。

2.6.4句子排列

最近的一篇被称为BART的论文使用了前置任务,其中将来自语料库的连续文本分解为多个句子。句子的位置被随机改组,模型的任务是预测句子的原始顺序。

3.架构

对比学习方法依赖于产生高质量表示的负样本的数量。访问负样本可以看作是字典查找任务,其中字典有时是整个训练集,有时是数据集的一些子集。我们将方法分为四个主要体系结构,如图11所示。

 图11.对比学习的不同架构:(a)对两个编码器端到端训练,其中一个为正样本生成表示形式,另一个为负样本生成了表示。 (b)使用存储库存储和检索负样本的编码。 (c)使用动量编码器,该编码器充当动态词典查找,用于训练过程中负样品的编码。 (d)使用端到端体系结构使用从两个编码器中获得的表示形式的交换预测来实现聚类机制。

3.1端到端学习

端到端学习是一个复杂的学习系统,它使用基于梯度的学习,其设计方式使得所有模块都是可区分的 。这种架构更适合大批量来积累更多的负样本。除了原始图像及其增强版本外,批次中的其余图像都被认为是负样本。该架构使用两个编码器:一个查询编码器 (Q) 和一个密钥编码器 (K),如图 11 所示。这两个编码器可以不同,并且在训练期间通过反向传播进行端到端更新。分别训练这些编码器的主要思想是生成相同样本的不同表示。使用对比损失,它会收敛以使正样本更靠近原始样本,而负样本则远离原始样本。在这里,查询编码器 Q 在原始样本上进行训练密钥编码器 K 在其增强版本(正样本)以及批处理中的负样本上进行训练。从这些编码器生成的特征 q 和 k 用于使用相似度度量计算各个输入之间的相似度(稍后在第 5 节中讨论)。大多数时候,使用的相似度度量是余弦相似度,它只是两个向量的内积,归一化为长度为 1,如公式 (2) 中所定义。

SimCLR中提出了成功的端到端模型,其中使用4096的批次大小,训练了100轮。发现大batch size和更多的轮数对模型效果都有提升是大的batchsize一方面需要更大的GPU内存,一方面会遇到优化问题。

图12.线性评估模型(RESNET-50)进行了不同的批次大小和轮数的训练。每个条代表从头开始的单一运行。 

3.2使用存储库

使用存储库的目的是积累大量样本的特征表示,这些样本在训练过程中被用作负样本。为此,创建了一个字典库,该字典库会定期存储和更新样本。存储库(M)包含数据集D中每个样本I的特征表示Mi,并将每个epoch中对其使用指数平滑进行更新。通过这种方法,可以不再需要负样本采样,而直接使用存储库中的表示

在最后一次看到时,记忆库中样本的表示会更新,因此,采样键本质上是关于过去时期各个不同步骤的编码器。 但是,在训练期间使用存储库可能是一项复杂的任务。这种方法的潜在缺点之一是需要大量的计算来实时memory bank中的特征表示。

 图13.在PIRL中使用存储库:存储库包含用于对比学习的所有负样本的的特征表示均值

3.3使用动量编码器进行对比学习

为了解决上一节中解释的存储库问题,存储库被动量编码器所取代。动量编码器将字典生成为编码密钥队列,当前批量的特征入队列,最老的批量特征出队列。字典的密钥是在训练期间由批处理中的一组数据样本动态定义的。动量编码器与查询编码器Q共享相同的参数,如图11所示。它不会在每次传递后反向传播,而是根据查询编码器的参数进行更新,如等式(1)所示。在此等式中,m∈[0,1)是动量系数,仅通过后向传播来更新参数θq,这种动态更新θk比θq更平稳。

θk ← mθk + (1 − m)θq                                                   (1)

这种方法的优点:(1)不需要同时训练两个不同的编码器;(2)不再需要维护一个高计算量和内存使用的存储库。

3.4聚类特征表示

上面介绍的三个架构都集中在使用相似性度量的进行比较,该架构遵循一种端到端的方法,有两个共享参数的编码器,利用聚类算法进行分类。

下图指出了其他基于实例的对比学习架构与基于聚类的方法之间的差异。目标是在将一对正样本相互靠近的同时,希望其他样本中相似特征可以相互聚类。例如,在图像空间中,猫的特征应更接近狗的特征(因为两者都是动物),但应远离房屋的特征(因为两者都是不同的)。

图14. SWAV中特征表示的传统对比实例学习与特征表示的对比聚类。

在基于实例的学习中,每个样本都被视为数据集中的离散类。这种方法的问题是:假设正样本是一只猫,负样本中有别的猫,也有别的类别的图像,该方法会让这两只猫的特征也相互远离,但是并不合理。基于聚类的方法隐含地解决了这个问题。

4.编码器

编码器在任何自监督的学习中都起着不可或缺的作用,因为它们负责将输入样本映射到潜在空间。图15反映了编码器在自监督的学习中的作用。对比学习中的大多数都利用了Resnet模型的某些变体。在其变体中,Resnet-50由于兼顾了网络大小和网络学习能力而被最广泛使用。为了训练动作识别的模型,从一系列图像帧中提取特征的最常见方法是将3D-Resnet用作编码器。

图 15.训练编码器并转化知识以完成下游任务

5.训练

为了训练编码器进行前置任务,该任务利用对比度损失进行反向传播。实现此目的的一种方法是使用一个相似性度量测量两个样本之间的相似程度。最常见的相似性度量是余弦相似性:

对比学习的重点是将输入与噪声对比估计(NCE)函数进行比较,该函数被定义为 :

其中q是原始样品,K+代表一个正样本,而K_表示负样本。 τ是大多数方法中使用的超参数,称为温度系数。 SIM( )函数可以是任何相似性函数,但通常使用等式(2)中定义的余弦相似性。 NCE背后的最初想法是执行非线性逻辑回归,区分观察到的数据和一些人为产生的噪声。

如果负样品的数量较大,则使用等式(4)中表示的NCE变体。对比学习在训练过程中,通过最小化损失函数来学习编码器网络的参数。公式中ki代表负样本。

随机梯度下降(SGD)具有最流行的优化算法之一。它是梯度下降优化的随机近似,因为它用从随机选择的数据子集计算得出的估算值,替代了实际梯度(从整个数据集计算)。 SGD算法的关键超参数是学习率。 

自适应学习率优化算法(ADAM)中动量直接作为一阶力矩的估计。此外,Adam还包括对一阶矩的估计和二阶矩的偏差更正,以解释其在原点的初始化。

为了稳定训练,引入了层次的自适应速率缩放(LARS)优化器以及余弦学习率。 LARS和其他自适应算法(例如Adam)之间有两个主要区别:首先,Lars对每一层都使用不同的学习率,从而提高了稳定性。其次,更新的幅度基于权值规则,以更好地控制训练速度。此外,采用阶段性warm restart的余弦学习率,在每个重新启动中,学习率初始化为一定值,并计划随着时间的推移降低。

6.下游任务

通常,采用自监督学习的计算机视觉涉及执行两个任务:前置任务和下游任务。下游任务是特定于应用程序的任务,它利用了前置任务中学到的知识。图16表示知识如何转移到下游任务的概述。学到的参数用作验证的模型,并通过微调转移到其他下游计算机视觉任务。在这些高级视觉任务上进行迁移学习的表现证明学习特征的能力。如图17所示,计算机视觉中的某些常见下游任务是分类,检测,细分,未来预测等。为了评估以自监督的方法学习特征的有效性,通常使用可视化卷积核,特征图可视化和基于最近邻的方法等。

图16.图像下游任务的概述

图17.计算机视觉中的下游任务,图像分类,目标定位,检测和分割

6.1可视化卷积核和特征图

 在这里,比较了经过自监督(对比)和监督方法的编码器的第一层卷积核,这有助于估计自监督方法的有效性。同样,可以使用编码器不同层产生的特征图来评估方法是否有效。

 图18.训练的Alexnet网络生成的特征图。左图一组表示有监督的方法,右图像代表了一种自监督的方法。这些图像代表了应用于不同卷积层的特征,(a)Conv1 27×27,(B)Conv3 13×13和(C)Conv5 6×6的。

6.2最近邻检索

通常,属于同一类的样本在潜在空间中彼此接近。使用最近邻方法,对于给定的输入样本,可以使用数据集中样本的TOP-K检索来分析自监督的方法是否按预期执行。

7.基准

最近,已经提出了一些针对计算机视觉任务的自监督的学习方法。在本节中,我们根据评估它们的下游任务来比较这些方法的性能。对于图像分类,大多数方法都使用了两个流行的数据集ImageNet和Places。同样,为了检测目标,Pascal VOC数据集经常被用于评估这些方法的表现。为了进行动作识别和视频分类,使用了UCF-101,HMDB-51和Kinetics等数据集。

表1. Imagenet数据集上的性能:使用自监督对比方法在Imakenet上的TOP-1和TOP-5精确度。表的后半部分(最右边的两列)显示了来自Imagenet的1%和10%的标签后,这些方法的性能(前5个精度)。

表2.用ImageNet预训练,然后在Places数据集上的分类准确率

这些方法不仅在图像分类方面表现出色,而且在目标检测和动作识别等其他任务上也表现出色。如表3所示,SwAV 在Pascal VOC7数据集中的线性分类和目标检测中优于最新的监督模型。对于线性分类,表中显示的模型在VOC7上进行了预估计,并采用了用于训练线性分类模型的功能。同样,对于对象检测,使用更快的RCNN在VOC7+12上进行了微调。对于视频分类任务,对比度学习方法已在诸如UCF101,HMDB51和动力学等数据集中显示出令人鼓舞的结果,如表4所示。 

表3.(1)线性分类在frozen特征上的TOP-1精度(2)使用更快的CNN在VOC7+12上的目标检测

表4.视频分类的准确性。所有提出的方法均以其提出的基于对比度的方法进行了预估计,并使用线性模型进行验证。模型中的R3D表示3D-RESNET。 †表示该模型已在另一个数据集上进行了训练,并通过特定数据集进行了细微调整。 k代表Kinetics数据集。

8. NLP上的对比学习 

2013年,Mikolov等人首先对自然语言处理使用了对比学习。作者通过将共同出现的单词用作语义上相似的点和学习词嵌入的负样本,提出了一个基于对比的学习框架。负采样算法使用逻辑回归将单词与噪声分布区分开,并有助于简化训练方法。 Arora等提出了一个对比学习的理论框架,该框架从未标记的数据中学习有用的功能表示形式,并引入了潜在类,以形式化语义相似性的概念。它的性能与WIKI-3029数据集上的最新监督方法相媲美。

近年来,对比学习已经开始在几项NLP任务上越来越受欢迎。它显示出对NLP下游任务的显着改善,例如跨语言预训练,语义理解和文本表示学习。 Infoxlm是一种跨语言预训练前模型,它基于两个输入序列之间的最大化相互信息提出了跨语义预训练任务,并学习使用对比学习来区分输入序列的机器翻译。与TLM 不同,该模型旨在最大程度地提高跨语言机器翻译对之间的相互信息,并改善各种下游任务中的跨语言可迁移性,例如跨语义分类和问答系统。表5显示了NLP下游任务的最新对比学习方法。

大多数流行的语言模型,例如Bert和GPT,在token上进行了预测,因此可能不会捕获句子级的语义。为了解决这个问题,提出了使用对比学习在句子级别上预训练模型的CERT。该模型分为两个步骤:(1)使用反向翻译进行句子增强,(2)通过微调预训练的语言模型来预测两个增强版本是否来自同一句子(例如,Bert和Bart )。 CERT还对GLUE基准中的11种不同自然语言理解任务进行了评估,在GLUE基准测试中,它在七个任务上的表现优于Bert。 Dectrutr是学习通用句子嵌入的自监督模型。该模型的表现优于Infersent,这是一种流行的句子编码方法。已经根据嵌入式基准上的句子质量对其进行了评估。

表5. NLP中的最新对比学习方法以及它们的数据集以及各自的下游任务。

9.讨论和未来的方向

9.1缺少理论基础

尝试研究对比目标函数的泛化性时,发现架构设计和采样方法对性能有深远的影响。Tsai等人从多视角的角度提供了信息理论框架来理解鼓励自监督学习的性质,说明了不同方法高度依赖前置任务的选择,有必要对对比学习框架中不同模块的理论分析。

9.2选择数据增强和借口任务

Pirl 强调了产生一致结果的方法,而与SIMCLR和MOCO-V2和Tian等人相似,证明选择健壮的前置任务以及合适的数据增强可以高度提高表示形式的质量。最近,SWAV 通过使用多样的增强方式击败其他自监督方法。

9.3训练期间适当的负抽样

在训练过程中,将原始样本与其负样本进行比较,其负样本有助于训练模型的对比损失。在原始样本和负样本之间的相似性非常低的情况下,对对比损失的贡献很小。这限制了模型快速收敛的能力。为了获得更有意义的负样本,自监督方法要么增加批次大小或保持非常大的存储库。

9.4数据偏差

在任何自监督的学习任务中,数据都提供监督。实际上,使用自监督目标所学的表示形式受到基础数据的影响。随着数据集的增加,这种偏见很难最小化。

10.总结

本文回顾了最近表现最佳的自监督方法,这些方法遵循视觉和NLP任务的对比学习。我们清楚地解释了对比学习流程中的不同模块。从选择正确的前置任务到选择架构设计,到使用学习的参数进行下游任务。基于对比度学习的作品已在几个下游任务上显示出令人鼓舞的结果,例如图像/视频分类,对象检测和其他NLP任务。最后,这项工作结束了,讨论了尚未解决的当前方法的一些开放问题,需要新技术和规范来解决这些问题。

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对比式自监督学习是一种无监督学习的方法,旨在通过通过训练模型来学习数据的表示。这种方法在计算机视觉领域中得到了广泛的应用。 对比式自监督学习的核心思想是通过将数据例子与其在时间或空间上的某种变形或扭曲版本对比,来训练模型。这种对比鼓励模型捕捉到数据的关键特征,从而学习到更好的表示。 对比式自监督学习的一个常见应用是图像的自学习。通过将图像进行旋转、剪切、缩放等变形,来构建一个正样本(原始图像)和负样本(变形图像)对。然后将这些对输入到一个深度神经网络中进行训练,以学习图像表示。训练过程中,网络被要求将正样本和负样本区分开,从而学习到图像的特征。 对比式自监督学习有许多优点。首先,它不需要标注数据,使其适用于大规模的无标签数据。其次,由于数据自动生成,可以轻松地扩展到大数据集。另外,对比式自监督学习的模型可以用于其他任务的迁移学习,使得模型更通用。 然而,对比式自监督学习也存在一些挑战和限制。首先,生成变形样本的过程可能会降低数据的质量,从而降低学习效果。其次,选择合适的变形方式和参数也是一个挑战。另外,对于某些领域和任务,对比式自监督学习可能不适用或效果不佳。 总之,对比式自监督学习是一种有效的无监督学习方法,可用于数据表示学习。它在计算机视觉领域有着广泛的应用,并具有许多优点。然而,仍然需要进一步的研究和发展来克服其中的挑战和限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值