自监督论文阅读笔记 DenseCL:Dense Contrastive Learning for Self-Supervised Visual Pre-Training

        迄今为止,现有的大多数自监督学习方法都是为图像分类而设计和优化的。由于图像级预测和像素级预测之间的差异,这些预先训练的模型对于密集预测任务可能不是最优的。为了填补这一空白,本文的目标是设计一种有效的、密集的自监督学习方法,通过考虑局部特征之间的对应关系,直接在像素(或局部特征)水平上工作。我们提出了密集对比学习(DenseCL),它通过优化输入图像的两个视图之间的像素级的成对对比相似性(不相似性)损失来实现自监督学习

        与基准方法MoCo-v2相比,本文的方法引入的计算开销可以忽略不计(仅慢1%),但在迁移到下游密集预测任务(包括目标检测、语义分割和实例分割)时,性能始终保持卓越;而且远远超过了最先进的方法。具体而言,在较强的MoCo-v2基线上,本文的方法在PASCAL VOC目标检测上取得了2.0% AP、COCO目标检测上取得了1.1% AP、COCO实例分割上取得了0.9% AP、PASCAL VOC语义分割上取得了3.0% mIoU、Cityscapes语义分割上取得了1.8% mIoU的显著改进。

        引言:

                在许多计算机视觉任务中,预训练已经成为公认的范式。在一个典型的预训练范例中,模型首先在大规模数据集上进行预训练,然后用较少的训练数据在目标任务上进行微调。具体来说,监督ImageNet预训练多年来一直占主导地位,其中模型被预训练以解决图像分类并转移到下游任务。然而,图像分类预训练和目标密集预测任务之间存在差距,如目标检测[9,25]和语义分割[5]。前者侧重于为输入图像分配类别,而后者需要对整个图像执行密集分类或回归。例如,语义分割旨在为每个像素分配一个类别,而目标检测旨在为所有感兴趣的目标实例预测类别和边界框。一个直截了当的解决方案是直接对密集预测任务进行预训练。然而,与图像级标注相比,这些任务的标注是出了名的耗时,这使得难以收集大规模数据来预训练通用特征表示

        近年来,无监督视觉预训练吸引了很多研究关注,其目的是从大量未标记图像中学习合适的视觉表示。一些方法[17,2,3,14]显示了在下游任务中的有效性,与有监督的ImageNet预训练相比,这些方法获得了相当或更好的结果。然而,图像分类预训练和目标密集预测任务之间的差距仍然存在首先,几乎所有最近的自监督学习方法都将学习公式化为使用全局特征的图像级预测。它们都可以被认为是将每个图像分类到它自己的版本中,即实例辨别[41]。此外,现有方法通常在图像分类基准上进行评估和优化。然而,更好的图像分类并不能保证更准确的目标检测,如[18]所示。因此,为密集预测任务定制的自监督学习是需要的。至于无监督的预训练,不再需要密集标注。一种明确的方法是将预训练直接作为密集预测任务,从而消除预训练和目标密集预测任务之间的差距。

        本文提出了用于自监督视觉预训练的密集对比学习(DenseCL)。DenseCL将自监督学习任务视为密集的成对对比学习,而不是全局图像分类。首先,本文引入一个密集投影头,它将主干网络的特征作为输入,生成密集特征向量。与现有的全局投影头相比,本文的方法自然地保留了空间信息并构建了密集的输出格式,与现有的全局投影头将全局池化应用于主干特征并为每个图像输出单个全局特征向量相比。其次,本文通过提取视图间的对应关系来定义每个局部特征向量的正样本。为了构造无监督的目标函数,进一步设计了密集对比损失,这将传统的infoNCE损失[29] 扩展到密集范式。通过上述方法,本文使用全卷积网络(FCN) [26]密集地执行对比学习,类似于目标密集预测任务。

        Contributions:

                •  本文提出了一种新的对比学习范式,即密集对比学习,它在像素(或局部特征)级别上进行密集的成对对比学习

                •  利用提出的密集对比学习,本文设计了一种简单有效的适合密集预测任务的自监督学习方法,称为DenseCL,它填补了自监督预训练和密集预测任务之间的空白;

                •  在将预训练模型迁移到下游密集预测任务时,DenseCL明显优于最先进的MoCo-v2 [3],包括目标检测(+2.0% AP)、实例分割(+0.9% AP)和语义分割(+3.0% mIoU),并远远超过监督ImageNet预训练。

        Related Work:

                自监督的预训练。一般来说,自监督学习的成功[41,17,42,47,16,14]可以归因于两个重要方面,即对比学习和前置任务。在许多方法中用于训练视觉表示的目标函数或者是基于重建的损失函数[7,30,12],或者是测量多个视图的共现的对比损失[38]。对比学习是大多数最先进方法的关键[41,17,2,42],其中正样本对通常由同一图像(或其他视觉模式)的两个增强视图形成,而负样本对由不同图像形成。

                很多前置任务已经被探索,以学习一个好的表征。这些例子包括着色[46]、上下文自动编码器[7]、修复[30]、空间拼图[28]和辨别方向[11]。这些方法在计算机视觉中取得了非常有限的成功。突破性的方法是SimCLR [2],它遵循一个实例判别前置任务,类似于[41],其中每个实例的特征从训练集中所有其他实例的特征中分离出来。不变性是从诸如裁剪、缩放和颜色抖动等低级图像变换中编码的。对比学习和前置任务经常被结合起来形成一个表征学习框架。DenseCL属于自监督的预训练范式,该框架对语义分割和目标检测等密集预测任务友好。

        密集预测任务的预训练:

                预训练已经在许多密集预测任务上实现了令人惊讶的结果,包括目标测[34,32]和语义分割[26]。这些模型通常是从ImageNet预训练模型微调而来,该模型是为图像级识别任务设计的。之前的一些研究表明,在网络架构环境下,ImageNet预训练和密集预测任务之间存在差距。

                YOLO9000 [33]提出在分类和检测数据上联合训练目标检测器。He等人[18]证明,即使我们在非常大的分类数据集(例如,Instagram [27],比ImageNet大3000倍)上进行预训练,目标检测的迁移改进也相对较小。最近的工作[23,48]表明,与ImageNet预训练模型相比,利用目标检测数据和注释的预训练模型(例如,MS COCO[25])可以在目标检测和语义分割方面实现同等性能。虽然在DenseCL之前已经探索了用于密集预测任务的监督预训练,但是很少有工作设计用于密集预测任务的无监督范例。并行和独立的工作[31,1]也发现,在局部特征水平的对比学习很重要

([31] Pedro Pinheiro, Amjad Almahairi, Ryan Y Benmaleck, Florian Golemo, and Aaron Courville. Unsupervised learning of dense visual representations. 2020.)

                一个主要的区别是,它们是根据几何变换来构造正对的,这就带来了以下问题。1)不灵活的数据增强。需要对每种数据增强进行仔细设计,以保持密集匹配。2)应用场景有限。当两个视图之间的几何变换不可用时,它将失败。例如,从一个视频片段中采样两幅图像作为正对,这是从视频流中学习表征的情况。

                相比之下,本文的方法与数据预处理完全分离,因此能够在不知道使用哪种增强以及如何对图像进行采样的情况下,快速灵活地进行训练。

        Visual Correspondence视觉相关性:

                视觉相关性问题是从来自同一场景的两幅图像中计算像素对[43],这对于许多应用来说是至关重要的,包括光流[8],结构-运动[35],视觉SLAM [20],3D重建[10]等。视觉相关性可以表述为学习匹配块或点之间的特征相似性的问题。最近,提出了各种基于卷积神经网络的方法来测量跨图像的块之间的相似性,包括监督的[4,21]和非监督的[45,15]。以前的工作通常利用显式监督来学习特定应用的相关性。DenseCL学习可以在多个密集预测任务之间共享的一般表示

        SSL流程:

                给定一个未标记的数据集,执行实例判别[41]前置任务,其中将训练集中每个图像的特征从其他图像的特征中分离出来。对于每个图像,随机的“视图”是通过随机数据增强产生的。每个视图被输入到编码器中,用于提取编码和表示整个视图的特征。编码器中有两个核心组件,即主干网络和投影头。投影头连接到主干网络。骨干是预训练后要迁移的模型,而投影头一旦完成预训练就要扔掉。对于一对视图,它们可以由同一个编码器编码[2],或者分别由一个编码器和它的动量更新编码器编码[17]。如下所述,通过优化成对对比相似性(不相似性)损失来训练编码器。整个流水线如图2a所示。

        图2:表征学习的两种对比学习范式的概念阐释。为了简化说明,图中使用了一对查询query和键key。主干可以是任何卷积神经网络。(a)在全局特征级别,计算全局投影头输出的单个特征向量之间的对比损失;(b):在局部特征级别上,在由密集投影头输出的密集特征向量之间计算密集对比损失。对于两种范例,两个分支可以是相同的编码器或不同的编码器,例如,编码器和其动量更新的编码器。

        损失函数:

                遵循MoCo [17]的原则,对比学习可以被认为是一项查字典的任务。对于每个编码的查询q,有一组编码的关键字{k0,k1,...},其中单个正密钥k+ 匹配 查询q。编码的查询和密钥是从不同的视图生成的。对于一个编码的查询q,它的正键k+编码同一图像的不同视图,而负键编码不同图像的视图。对比损失函数InfoNCE [29]用于将q拉向k+,同时将其推离其他负键。

        DenseCL 流程:

                本文提出了一个新的适合密集预测任务的自监督学习框架,称为DenseCL。DenseCL将现有的框架扩展和推广到一个密集范例。与2.1中回顾的现有范例相比,核心区别在于编码器和损失函数。给定输入视图,密集特征图由主干网络提取,例如ResNet [19]或任何其他卷积神经网络,并被转发到随后的投影头。投影头由两个子头并行组成,分别是全局投影头密集投影头。全局投影头可以被实例化为任何现有的投影头,例如[17,2,3]中的投影头,其将密集特征图作为输入,并为每个视图生成全局特征向量。例如,[3]中的投影头由一个全局池层和一个MLP组成,后者包含两个全连接层,其间有一个ReLU层。相反,密集投影头采用相同的输入,但输出密集的特征向量

                具体来说,全局池层被移除,MLP被相同的1×1卷积层取代[26]。事实上,密集投影头与全局投影头具有的参数量。通过在全局特征和局部特征两个级别上优化 联合成对对比相似性损失,对主干和两个平行投影头进行端到端训练

        本文通过将原始对比损失函数扩展到密集范式来执行密集对比学习。本文为每个编码的query r 定义了一组编码密钥{t0,t1,...} 。但是,这里每个查询不再代表整个视图,而是对视图的局部进行编码。具体来说,它对应于由密集投影头生成的Sh × Sw特征向量之一,其中Sh和Sw表示生成的密集特征图的空间大小。注意,Sh和Sw可以不同,但是为了更简单的说明,我们使用Sh = Sw = S。每个负键t- 是来自不同图像的视图的池化特征向量。正键t+根据跨视图提取的对应关系来分配,该对应关系是来自同一图像的另一视图的S2特征向量之一。

                密集对比损失定义为:

        DenseCL 的总损失为:

  

         本文提取同一输入图像的两个视图之间的密集对应。对于每个视图,主干网络提取特征映射F ∈ RH×W ×K,密集投影头从中生成密集特征向量θ。在来自两个视图,即θ1和θ2的密集特征向量之间建立对应关系。F1和F2首先通过自适应平均池化被下采样为具有S × S的空间形状,然后用于计算余弦相似性矩阵δ∈rs2×S2。匹配规则是一个视图中的每个特征向量与另一个视图中最相似的特征向量相匹配。具体地,对于θ1的所有S2特征向量,通过沿着最后一个维度对相似性矩阵δ应用argmax运算来获得与θ2的对应关系。匹配过程可以表述为:

         整个匹配过程可以通过矩阵运算有效地实现,从而引入可以忽略的等待时间开销。

        对于S = 1的最简单情况,匹配退化为全局对比学习中的匹配,因为在两个全局特征向量之间自然存在单一对应。

        在没有全局对比学习项(即λ = 1)的情况下,存在先有鸡还是先有蛋的问题,即如果提取了不正确的对应,则不会学习到好的特征,并且如果特征不够好,则不会获得正确的对应。在我们的默认设置中,λ = 0.5,没有观察到不稳定的训练。

        本文选择 MoCo v2作为强基线。采用ResNet [19]作为主干。后面的全局投影头和密集投影头都有固定维度的输出。前者为每个输入 输出单个128维特征向量,而后者输出密集的128维特征向量。

        COCO和ImageNet代表两种图像数据。前者更加自然和真实,包含了野外的各种场景。对于目标级和像素级识别任务,如目标检测和实例分割,这是一个广泛使用且具有挑战性的数据集。而后者是经过精心策划的,为图像级识别而精心构建的。

        当在COCO上进行预训练时,本文的DenseCL比MoCo-v2基准高出2% AP。DenseCL在很大程度上有助于提高定位精度

        在表4中报告了不同λ的结果。它显示了当我们增加λ时检测性能提高的趋势。尽管进一步将其增加到0.7仍然在检测性能上给出微小的改进(0.1% AP),但是分类结果从82.9%下降到81.0%。考虑到权衡,我们在其他实验中使用λ = 0.5作为默认设置。

        DenseCL是专门为密集预测任务设计的。

        匹配策略:通过根据主干特征F1和F2提取密集对应来获得最佳结果。

        网格越大,性能越好。我们使用网格大小7作为默认设置,因为当S超过7时,性能变得稳定。

        本文使用全局平均池化特征作为负样本,因为它在概念上更简单。

        DenseCL提取了比其基线更多的高相似性匹配。从同一图像的两个视图中提取的局部特征应该是相似的。

        图4显示了对应关系如何随着训练时间而变化。随机初始化的模型提取一些随机噪声匹配。随着训练时间的增加,匹配变得更加准确

        Conclusion:

                本文开发了一个简单有效的自监督学习框架DenseCL,它是为密集预测任务设计和优化的。提出了一种新的对比学习范式,在像素(或局部特征)级进行密集的成对对比学习。本文的方法在很大程度上弥合了自我监督预训练和密集预测任务之间的差距,并在各种任务和数据集上显示出显著的改进,包括PASCAL VOC目标检测、COCO目标检测、COCO实例分割、PASCAL VOC语义分割和Cityscapes语义分割。本文期望所提出的有效和高效的自我监督预训练技术可以应用于更大规模的数据,以充分实现其潜力,并希望DenseCL预训练模型可以在计算机视觉的许多密集预测任务中完全取代监督预训练模型。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值