Dense Contrastive Learning for Self-Supervised Visual Pre-Training(基于密集对比学习的自我监督视觉预训练)2021

最前面是论文翻译,中间是背景+问题+方法步骤+实验过程,最后是文中的部分专业名词介绍(水平线分开,翻译word文件可以找我要,能力有限,部分翻译可能不太准确)

摘要:

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

        与基线方法MoCo-v2相比,我们的方法引入了可忽略不计的计算开销(只慢了<1%),但在转移到下游密集预测任务(包括对象检测)时,表现出了始终如一的优越性能,并且大大超过了最先进的方法。具体而言,在强大的MoCo-v2基线上,我们的方法在PASCAL VOC目标检测上取得了2.0%AP显著进步,在COCO目标检测上提高了1.1%AP,在COCO实例分割中提高了0.9%AP,在PASCAL VOC语义划分上提高了3.0%mIoU以及城市景观语义分割提高了1.8%mIoU。

图片1:通过对目标检测(a)和语义分割(b)数据集进行微调,对预先训练的模型进行比较。Sup.IN表示在ImageNet上进行的有监督的预训练。”“COCO”和“ImageNet”分别表示接受过在COCO和ImageNet训练的预训练模型。(a):在VOC trainval07+12上微调24k迭代的更快R-CNN检测器的目标检测结果,并在VOC test2007上进行评估;(b):FCN模型的语义分割结果在VOC train_aug2012上微调了20k次迭代,并在val2012上进行了评估。这些结果是5个独立试验的平均结果。                

1.简介:

        (有监督的)在许多计算机视觉任务中,预训练已经成为一种成熟的范例。在典型的预训练范例中,模型首先在大规模数据集上进行预训练,然后在训练数据较少的目标任务上进行微调。具体来说,有监督的ImageNet预训练多年来一直占据主导地位,模型经过预训练以解决图像分类问题,并转移到下游任务。然而,图像分类预训练和目标密集预测任务之间存在差距,例如目标检测和语义分割。前者侧重于为输入图像指定一个类别,而后者则需要对整个图像执行密集分类或回归。例如,语义分割旨在为每个像素指定一个类别,而目标检测旨在预测所有感兴趣的对象实例的类别和边界框。一个前瞻性的解决方案是直接对密集的预测任务进行预训练。然而,与图像级标记相比,这些任务的注释非常耗时,因此很难大规模收集数据来预先训练通用特征表示。

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

        受监督密集预测任务的启发。例如,语义分割是一种密集的逐像素分类方法,我们提出了一种用于自监督视觉预训练的密集对比学习(DenseCL)DenseCL将自监督学习任务视为密集的两两对比学习而不是全局图像分类。首先,我们引入了一种密集投影算法,该算法将骨干网络中的特征作为输入,生成密集的特征向量。与现有的全局投影头相比,我们的方法自然地保留了空间信息并构造了一种密集的输出格式,该投影头对主干特征应用全局池,并为每个图像输出一个单一的全局特征向量。其次我们定义每个局部特征向量的正样本提取视图之间的对应关系。为了构造一个无监督的目标函数,我们进一步设计了一个密集对比损失,它将传统的信息损失扩展到了密集范式。通过上述方法,我们使用完全卷积网络(FCN)密集地执行对比学习,类似于目标密集预测任务因此,我们的主要贡献总结如下。

  1. 我们提出了一种新的对比学习范式,即密集对比学习,它在像素(或局部特征)水平上进行密集的成对对比学习。
  2. 通过提出的密集对比学习,我们设计了一种简单有效的自监督学习方法,称为Densecl,这填补了自监督预训练和密集预测任务之间的差距。
  3. 当将预先训练好的模型转移到下游密集预测任务时,DenseCL的表现明显优于最先进的Moco-v2[3],包括对象检测(+2.0%AP)、实例分割(+0.9%AP)和语义分割(+0%mIoU),远远超过有监督的ImageNet预训练。

1.1相关工作

       自监督的预训练。一般来说,自监督学习的成功可归因于两个重要方面,即对比学习前置任务。在许多方法中,用于训练视觉表现的目标函数要么是基于重建的损失函数,或者衡量多种观点同时出现的对比损失。对比学习是大多数最先进方法的关键,在这种方法中,正视图对通常由同一图像(或其他视觉模式)的两个增强视图组成,而负视图由不同的图像组成。

       为了有良好的表现,人们探索了各种各样的前置任务。这些例子包括着色、上下文自动编码器、修复、拼图和辨别方向。这些方法在计算机视觉中取得的成功非常有限。突破性的方法是SimCLR,它遵循一个实例区分前置任务,类似于[41],将每个实例的特征从训练集中所有其他实例的特征中提取出来。内方差是从低级图像变换(如裁剪、缩放和颜色抖动)中编码的。对比学习和前置任务经常被结合起来形成一个表示学习框架。DenseCL属于自监督的预训练范式,我们自然会使框架对密集预测友好语义分割和目标检测等任务。

       密集预测任务的预训练。预训练在许多密集预测任务上取得了令人惊讶的结果,包括目标检测和语义分割。这些模型通常由ImageNet预训练模型进行微调,该模型是为图像级识别任务而设计的。之前的一些研究表明,在网络架构的背景下,ImageNet预训练和密集预测任务之间存在差距。YOLO9000建议对目标检测器进行分类和检测数据方面的联合训练。他们一些人证明即使我们在非常大的分类数据集(例如Instagram,比ImageNet大3000倍)上进行预训练,目标检测的传输改进也相对较小。最近的研究表明,与ImageNet预训练模型相比,使用对象检测数据和注释(例如MS COCO)的预训练模型可以在对象检测和语义分割方面取得更好的性能。尽管在DenseCL之前已经探索过密集预测任务的监督预训练,关于为密集预测任务设计无监督范式的工作很少。同时进行的和独立的研究也发现,局部特征层面的对比学习很重要。其中一个主要区别是,它们根据几何变换构造正对,这带来了以下问题。1) 不灵活的数据扩充。需要仔细设计各种数据增强,以保持密集匹配。2) 有限的应用场景。当两个视图之间的几何变换不可用时,它将失败。例如,从视频剪辑中抽取两幅图像作为正对,这是从视频流中学习表示的情况。相比之下,我们的方法与数据预处理完全分离。因此,能够快速灵活地进行训练,同时不知道使用何种增强以及如何对图像进行采样。

       视觉通信。视觉对应问题是计算来自同一场景的两幅图像的像素对,这对于许多应用至关重要,包括光流[8]、运动结构[35]、视觉SLAM[20]、三维重建[10]等。视觉对应可以表述为学习匹配补丁或点之间的特征相似性的问题。最近,人们提出了各种基于卷积神经网络的方法来测量图像中补丁(这里应该是指局部)之间的相似性,包括有监督的和无监督的。以前的工作通常利用明确的监督来了解特定应用程序的响应。DenseCL学习可在多个密集预测任务之间共享的通用表示。

2.理论

2.1背景

        对于自监督表现学习,突破性的方法是MoCo-v1/v2和SimCLR,它们都采用对比无监督学习从未标记数据中学习良好的表现。我们通过抽象一个常见的范例简要介绍了最先进的自监督学习框架

        管道(流程)。给定一个未标记的数据集,然后执行实例判别前置任务,将训练集中的每幅图像的特征与其他图像的特征分离出来。对于每幅图像,通过随机数据增强生成随机“视图”。每个视图都被送入一个编码器,用于提取对整个视图进行编码和表示的特征。编码器中有两个核心组件,即主干网和投影头。投影头连接到主干网络。主干是预训练后要转移的模型,而投影头将在预训练完成后丢弃。对于一对视图,它们可以由同一个编码器编码,也可以由编码器及其动量更新的编码器单独编码。编码器通过优化成对对比(dis)相似性损失进行训练,如下所述。整个管道如图2a所示。

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

        损失函数。根据MoCo的原则,对比学习可以被视为一项查字典的任务。对于每个编码查询q,都有一组编码键{k0,k1,…},其中一个正密钥k+匹配查询q。编码的查询和密钥从不同的视图生成。对于编码查询q,其正键k+编码同一图像的不同视图,而负键编码不同图像的视图。使用对比损失函数信息将q拉近k+,同时将其推离其他负键:

式中,τ表示温度超参数,如所示

2.2DenseCL管道

        我们提出了一种新的针对密集预测任务的自监督学习框架,称为DenseCL。DenseCL将现有框架扩展并概括为一个密集的范例。与2.1中重新讨论的现有范例相比,核心区别在于编码器和损失函数。给定一个输入视图,由主干网络(例如ResNet或任何其他卷积神经网络)提取密集的特征映射,并转发到下面的投影头。投影头由两个平行的子头组成,分别是全局投影头和密集投影头。全局投影头可以被实例化为任何现有的投影头,如中的投影头,它将密集特征映射作为输入,并为每个视图生成全局特征向量。例如,[3]中的投影头由一个全局池层和一个MLP组成,MLP包含两个完全连接的层,它们之间有一个ReLU层。相比之下,密集投影头接受相同的输入,但输出密集的特征向量。

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

2.3密集对比学习

        我们通过将原始对比损失函数扩展到密集范式来进行密集对比学习。我们定义了一组编码密钥{t0,t1,…}。然而,在这里,每个查询不再代表整个视图,而是对视图的局部部分进行编码。具体地说,它对应于由密集投影头生成的sh×sw特征向量之一,其中sh和sw表示生成的密集特征地图的空间大小。注意,sh和sw可以不同,但我们使用sh=sw=s进行更简单的说明。每个负关键点t_是来自不同图像的视图的汇集特征向量。根据不同视图之间提取的对应关系分配正键t+,这是来自同一图像的另一视图的S2特征向量之一。现在,让我们假设我们可以很容易地找到正键t+。讨论推迟到下一节。密集对比损失定义为:

其中rs表示s2编码查询中的第s个。

总的来说,我们的DenseCL的总损失可以表示为:

其中λ作为平衡这两项的权重。λ设置为0.5,这通过第3.3节中的实验进行验证。

2.4视图之间的密集对应

        我们提取同一输入图像的两个视图之间的密集对应关系。对于每个视图,主干网络提取特征F∈ rh×W×K,密集投影头从中生成密集特征向量Θ∈ rsh×sw×E。请注意,sh和sw可以不同,但我们使用sh=sw=S进行更简单的说明。在两个视图(即Θ1和Θ2)的密集特征向量之间建立对应关系。我们匹配Θ1和Θ2使用主干特征映射F 1和F 2首先通过自适应平均池对f1和f2进行下采样,得到S×S的空间形状,然后计算余弦相似矩阵∆ ∈ rs2×s2。匹配规则是将一个视图中的每个特征向量与另一个视图中最相似的特征向量相匹配。具体来说,对于Θ1的所有s2特征向量,与Θ2的对应关系是通过对相似矩阵应用argmax操作获得的∆ 沿着最后一个维度。匹配过程可表述为:

        其中,fi是主干特征映射F1的第i个特征向量,f′j是f2的第j个特征向量。sim(u,v)表示余弦相似性,由两个变量之间的点积计算得出ℓ 归一化u和v(这里有一个公式)。得到的ci表示从Θ1到Θ2的s2匹配中的第i个,这意味着Θ1的第i个特征向量与Θ2的第ci个匹配,这意味着第i个特征向量Θ1与第ci个特征向量Θ2匹配。整个匹配过程可以通过矩阵运算有效地实现,从而引入可忽略的相关开销。

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

根据提取的稠密对应,在第2.3节介绍的稠密对比学习中,可以很容易地找到每个查询r的正键t+。

        请注意,如果没有全局对比学习项(即λ=1),则存在一个鸡和蛋的问题,即如果提取了不正确的对应关系,则不会学习到良好的特征,如果特征不够好,则无法获得正确的对应关系。在λ=0.5的默认设置中,没有观察到不稳定的训练。除了设置λ∈ (0,1)在整个训练过程中,我们介绍了另外两种解决方案,它们也可以解决这个问题,详见第3.4节。

3.实验

        我们采用MoCo-v2作为我们的基线方法,它显示了最先进的结果,并在下游目标检测任务上大大优于其他方法,如表1所示。它表明它应该起作用作为我们可以证明我们方法的有效性。

        技术细节。我们调整了[3]中的大多数设置。采用ResNet作为主干。以下全局投影头和密集投影头都有固定的尺寸输出。前者为每个输入输出一个128维特征向量,后者为每个输入输出一个128维特征向量输出密集的128-D特征向量。每个ℓ 2.正常化特征向量表示查询或键。对于全球在密集对比学习中,词典的大小设置为动量设为0.999。训练中使用了洗牌BN。方程式(1)和方程式(2)中的温度τ设置为0.2。数据扫描管道由224×224像素随机缩放、随机颜色抖动、随机灰度变换、高斯模糊和随机水平翻转组成。   

3.1实验环境

        数据集集合:预训练实验在两个大规模数据集上进行:MS COCO和ImageNet。在预训练期间仅使用训练集,分别为118K和128万张图像。COCO和ImageNet代表两种图像数据。前者更自然、更真实,包含了不同的野外场景。对于对象级和像素级的识别任务,它是一个广泛使用且具有挑战性的数据集,例如目标检测和实例分割。后者则精心策划,精心打造,以满足图像级识别。一个清晰和定量的比较是感兴趣对象的数量。例如,COCO有一个总计123k图像和896k标记对象,平均每个图像7.3个对象,远远超过ImageNetDET数据集的每个图像1.1个对象。

        预训练前设置对于ImageNet预训练,我们严格遵循MoCo-v2,并使用相同的训练参数。对于COCO预训练(包括基线和我们的),我们使用0.3的初始学习率,而不是原来的0.03,因为在COCO预训练时,前者在MoCo-v2基线中表现更好。我们采用SGD作为优化器,设置其权重和衰减动量为0.0001和0.9。每个预训练模型在8个GPU上进行优化,具有余弦学习率衰减计划和256个小批量。我们为Coco训练了800轮,总共约368k次。对于ImageNet,我们训练了200轮,总共100万次迭代。

        评估协议。我们通过端到端微调目标密集预测任务来评估预训练的模型。针对不同的目标任务,采用具有挑战性和流行性的数据集对主流算法进行微调,即VOC目标检测、COCO目标检测、COCO实例分割、VOC语义分割和城市景观语义分割。在评估目标检测时,我们遵循通用协议,即按照[40]中的标准2x时间表,在VOC trainval07+12集合上微调更快的R-CNN检测器(C4主干),并在VOC test2007集合上进行测试。此外,我们使用COCO train2017 split(∼ 118k图像),标准1×时间表,并在COCO 5k val2017 split上进行评估。对于语义分割,FCN模型[26]在VOC train aug2012集合(10582幅图像)上进行了20k次迭代,并在val2012集合上进行了评估。我们还通过训练train_fine集(2975张图像)上的FCN模型,用于40k迭代,并在val集上进行测试。详细设置见补充说明。

3.2主要结果

        PASCAL VOC目标检测。在表1中,我们报告了PASCAL VOC的目标检测结果,并将其与其他最先进的方法进行了比较。当接受COCO预训练时,我们的DenseCL比MoCo-v2基线高出2%。当在ImageNet上进行预训练时,MoCo-v2基线已经超过了其他最先进的自监督学习方法。DenseCL的AP改善率仍为1.7%,这有力地证明了我们方法的有效性。这三个指标的收益都是一致的。值得注意的是,与在AP 50上相比,我们在更严格的AP 75上实现了更大的改进,这表明DenseCL在很大程度上起到了帮助作用提高定位精度。与有监督的ImageNet预训练相比,我们获得了显著的4.5%的AP增益。

        表2:目标检测在PASCAL VOC上微调。“CC”和“IN”表示训练前的模型COCO和ImageNet。模型预先训练相同的数据集具有相同的训练时间,即800COCO的时代和ImageNet的200个时代。“*”方法重新实施。其他方法的结果来自他们的论文或第三方实施。所有探测器在trainval07+12上接受24k次迭代的训练,并在test2007上进行评估。指标包括VOC指标AP 50(即IoU阈值为50%)和COCO风格的AP和AP 75。这些结果是5个独立试验的平均结果。

        COCO目标检测与分割。给出了基于COCO的目标检测和实例分割结果如表2所示。对于目标检测,DenseCL的表现优于MoCo-v2在COCO和ImageNet上进行预训练时,AP分别降低1.1%和0.5%。例如,在实例分割的收益率分别为0.9%和0.3%。请注意,使用COCO预训练的模型对COCO进行微调并不是典型的情况。但这些明显的改进仍然显示出了有效性。

        表2:在COCO上优化的对象检测和实例分割。”“CC”和“IN”分别表示在COCO和ImageNet上训练的训练前模型。所有探测器均在2017年列车上接受训练,默认为1×时间表,并在val2017上进行评估。度量包括边界框AP(AP b)和掩码AP(AP m)。

        PASCAL VOC语义切分。我们展示了语义分割方面最大的改进。如表3所示,当对COCO进行预训练并对VOC语义细分的FCN进行微调时,DenseCL产生3%的mIoU收益。COCO预训练的DenseCL达到了与ImageNet预训练的MoCo-v2相同的67.5%mIoU。请注意,与200轮ImageNet预训练相比,800轮 COCO预训练仅使用∼ 1/10图像和∼ 1/3迭代。在ImageNet上进行预训练后,DenseCL始终能带来1.9%的mIoU收益。应该指出的是ImageNet预训练的MoCo-v2与监督的MoCo-v2相比,没有显示出传输优势(67.5%对67.7%mIoU)。但DenseCL在很大程度上优于有监督的预训练,即1.7%的mIoU。

        城市景观语义分割。城市景观是一个基准,与上述VOC和COCO有很大不同。它聚焦于城市街道场景。然而,在表3中,我们观察到DenseCL同样的性能提升。即使是COCO预训练的DenseCL也可以超过监督ImageNet预训练模型1.9%的mIoU。

        表3:PASCAL VOC和Cityscapes的语义分割。”“CC”和“IN”分别表示在COCO和ImageNet上训练的训练前模型。指标是常用的平均IoU(mIoU)。结果是5个独立试验的平均值。

3.3消融研究

        我们进行了广泛的烧蚀实验,以展示每种成分对DenseCL的贡献。如第3.1节所述,我们通过COCO预训练和VOC0712目标检测微调报告消融研究。所有检测结果均为5次独立试验的平均值。我们还提供了VOC2007支持向量机分类的结果,然后训练线性支持向量机在VOC train2007上使用从冻结主干提取的特征进行拆分,并在test2007拆分上进行评估。

        损失权重λ。方程(3)中的超参数λ用作平衡两个对比损失项的权重,即全局项和稠密项。

我们在表4中报告了不同λ的结果。结果表明,随着λ的增加,检测性能有提高的趋势。

对于基线法,即λ=0,结果为54.7%AP。当λ=0.3时,AP为56.2%,这将基线改善1.5%AP。将λ从0.3增加到0.5会带来另外0.5%的AP增益。虽然进一步将其增加到0.7仍会对检测性能产生轻微改善(0.1%AP),但分类结果从82.9%降至81.0%。考虑到权衡,我们在其他实验中使用λ=0.5作为默认设置。应该注意的是,当λ=0.9时,与MoCo-v2基线相比,分类性能迅速下降(-4.8%mAP),而0.8%AP的检测性能提高。DenseCL是专为密集预测任务设计的,这与我们的意图是一致的。(结论)

        表4:重量λ的烧蚀研究。λ=0是MoCo-v2基线。λ=0.5表示检测之间的最佳权衡和分类。“*”表示热身训练,如第3.4节讨论。

        匹配策略。在表5中,我们比较了三种不同的匹配策略来提取跨视图的对应关系。

1) “随机”:来自两个视图的密集特征向量随机匹配;

2) “max simΘ”:使用密集投影头生成的密集特征向量Θ1和Θ2提取密集对应;

3) “max simF”:根据主干特征f1和f2提取密集对应关系,如等式4所示。与MoCo-v2相比,随机匹配策略也可以实现1.3%的AP改进,同时分类性能下降0.9%的mAP。可能是因为

1) 密集输出格式本身就有帮助,

2)部分随机匹配在某种程度上是正确的。

通过密集投影头(即Θ1和Θ2)的输出进行匹配,没有明显的改善。根据主干特征F 1和F 2提取密度响应可获得最佳结果。

表5:消融匹配策略研究。根据主干特征F 1和F 2提取密集对应关系的效果最好。

        网格大小。在默认设置中,所采用的ResNet主干输出的功能为步幅32。对于224×224像素的裁剪,主干特征F的空间大小为7×7。我们默认将密集特征向量的空间大小Θ设置为7×7,即S=7。但是,S可以灵活调整,F将通过自适应平均池合并到指定的空间大小,如第2.4节所述。我们在表6中报告了使用不同数量网格的结果。对于S=1,它与MoCo-v2基线相同,只是有两个不同。

1) 密集投影头的参数与全局投影头的参数无关。

2) 密集的对比学习维护着一部独立的词典。

结果与MoCo-v2基线的结果相似。

这表明额外的参数和字典并没有带来改进。随着网格大小的增加,性能也会提高。我们使用网格大小7作为默认设置,因为当S增长超过7时,性能变得稳定。

表6:网格尺寸S的烧蚀研究。结果随着S的增大而增大。我们在其他实验中使用的网格大小为7,因为当S超过7时,性能变得稳定。

        消极样本。我们使用全局平均池特征作为否定,因为它在概念上更简单。除了共享,采样也是一种替代策略。为了保持相同数量的底片,可以从不同的图像中随机采样局部特征。

采用抽样策略的COCO预训练模型在VOC检测上达到56.7%的AP,这与采用的池策略相同。

        训练时间表。我们在表7中展示了使用不同训练计划的结果。随着训练时间的延长,成绩不断提高,从200轮提高到1600轮。

请注意,1600 轮COCO预训练的DenseCL甚至超过了200 轮 ImageNet预训练的MoCO-v2(57.2%的AP和57.0%的AP)。

与200个epoch ImageNet预训练相比,1600个epoch COCO预训练仅使用∼ 1/10图像和∼ 7/10迭代。

在图3中,随着训练时间的延长,我们进一步提供了与基线的直观比较。它表明,DenseCL始终以至少2%的AP超过MoCo-v2。

        表7:训练计划的消融研究。随着训练时间的延长,成绩不断提高。虽然1600 epoch的训练计划好于0.5%,但我们在其他实验中使用了800 epoch的训练计划来加快训练速度。

        图片3:COCO的不同训练前时间表。对于每个预先训练的模型,更快的R-CNN检测器在VOC trainval07+12上进行24k次迭代微调,并在test2007上进行评估。指标为COCO-style。结果是5个独立试验的平均值。

        预训练时间。在表8中,我们比较了DenseCL和MoCo-v2的训练时间。当分别在COCO和ImageNet上进行预训练时,DenseCL每轮只慢1秒和6秒。管理费用不到1%。这有力地证明了我们方法的有效性。

        表8:训练前时间比较。报告每个历元的训练时间。我们在同一台8-GPU机器上测量结果。DenseCL引入的训练时间开销小于1%。

3.4. 关于DenseCL的讨论

        为了进一步研究DenseCL是如何工作的,在本节中,我们对DenseCL中学习到的密集通信进行了可视化。还讨论了训练中的鸡和蛋问题。

        密集通信可视化。我们从两个方面对密集的对应关系进行了可视化:比较从不同预训练方法中提取的最终对应关系,即MoCo-v2与DenseCL,以及不同训练状态的比较,即从随机初始化到良好训练的DenseCL。        

给定同一图像的两个视图,我们使用预先训练的主干提取特征f1和f2。对于f1中的每个特征向量,我们在f2中找到对应的具有最高余弦相似性的特征向量。如果相同的匹配从F2到F1进行,匹配将继续进行。每个匹配都被分配一个平均相似性。在[39]中,我们将高相似性匹配(即相似性)可视化≥ 0.9). DenseCL提取的高相似度匹配比它的基线要高得多。这与我们的意图一致,即从同一图像的两个视图中提取的局部特征应该相似。

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

        图片4:从随机初始化中提取的密集对应与经过良好训练的DenseCL的比较。通信使用ImageNet预训练模型在同一图像的两个视图之间提取。所有匹配都是可视化的,没有阈值化。

        鸡和蛋的问题。在我们的试点实验中,我们观察到,如果将λ设置为1.0,即移除全局对比学习,仅应用密集对比学习,则训练损失不会收敛。这可能是因为在训练开始时,随机初始化的模型无法在视图之间生成正确的对应关系。因此,如果提取不正确的对应关系,就无法学习到好的特征,如果特征不够好,就无法获得正确的对应关系,这是一个鸡和蛋的问题。

如图4所示,随机初始化的大多数匹配都不正确。核心解决方案是在训练开始时提供指导,从而打破僵局。我们介绍三种不同的解决方案来解决这个问题。

1) 用预训练模型的权重初始化模型;

2) 在开始时设置预热期,在此期间λ设置为0;

3) 在整个训练期间设置λ∈ (0,1)。

他们都很好地解决了这个问题。第二种情况如表4所示,在第一次10k迭代后,λ从0变为1.0。为了简单起见,我们采用最后一个作为默认设置。      

4.结论

        在这项工作中,我们开发了一个简单有效的自监督学习框架DenseCL,该框架针对密集预测任务进行了设计和优化。本文提出了一种新的对比学习范式两两对比学习在像素级(或局部特征)。我们的方法在很大程度上缩小了自监督预训练和密集预测任务之间的差距,并在各种任务中显示出显著的改进,包括PASCAL VOC对象检测、COCO对象检测、COCO实例分割、PASCAL VOC语义分割和城市景观语义分割。我们期望所提出的有效且高效的自监督预训练技术能够应用于更大规模的数据,以充分发挥其潜力,同时也希望DenseCL预训练模型能够在计算机视觉中的许多密集预测任务中完全取代监督预训练模型。




1.背景:

        大多数现有的自监督学习方法针对图像分类进行了设计和优化。由于图像级预测和像素级预测之间的差异,这些预先训练的模型对于密集预测任务可能是次优的

2.目标与做出的工作:

        为了填补这一空白,我们想设计一种有效、密集的自监督学习方法,通过考虑局部特征之间的对应关系,直接在像素水平(或局部特征)工作。我们提出了密集的对比学习(DenseCL),该学习通过在输入图像的两个视图之间的像素水平上优化成对的对比(不相似)损失来实现自监督学习

3.常见问题

        问题1监督学习ImageNet预训练,得到的模型在解决图像分类问题方面与目标密集预测任务之间存在差距。(例如目标检测语义分割,语义分割旨在为每个像素指定一个类别,而目标检测旨在预测所有感兴趣的对象实例的类别和边界框。

        解决办法一个前瞻性的解决方案是直接对密集的预测任务进行预训练

        弊端与图像级标记相比,这些任务的注释非常耗时,因此很难大规模收集数据来预先训练通用特征表示

        问题2与有监督的ImageNet预训练相比,这些方法取得了类似或更好的结果监督视觉预训练效果比有监督好一些(介绍监督与非监督)。然而,图像分类预训练和密度预测任务之间仍然存在差距

        差距首先,最近几乎所有的自监督学习方法都使用全局特征将学习描述为图像级预测。它们都可以被认为是将每个图像分类为自己的版本,即实例识别。此外,现有的方法通常是在图像分类基准上进行评估和优化。然而,更好的图像分类并不能保证更准确的目标检测。因此,为密集预测任务定制的自监督学习是随需应变的。至于无监督的预训练,不再需要密集注释。

        解决办法:一个明确的方法是直接将预训练作为密集预测任务,从而消除预训练目标密集预测任务之间的差距。

启发:受监督密集预测任务的启发。我们提出了一种用于自监督视觉预训练的密集对比学(DenseCLDenseCL自监督学习任务视为密集的两两对比学习而不是全局图像分类
 

4.方法步骤:

方法(贡献):

        1.提出一种新的对比学习范式,即密集对比学习,它在像素(或局部特征)水平上进行密集的成对对比学习。

        2.根据提出的密集对比学习设计了一种简单有效的自我监督学习方法,称为DenseCL,这填补了自监督预训练和密集预测任务之间的差距并在各种任务和数据集上做出可观改进    

对比学习步骤

        1.我们引入了一种密集投影算法,该算法将骨干网络中的特征作为输入,生成密集的特征向量。

        2.我们定义每个局部特征向量的正样本提取视图之间的对应关系。

        3.为了构造一个无监督的目标函数,我们进一步设计了一个密集对比损失,它将传统的信息损失扩展到了密集范式

具体过程:(我们通过抽象一个常见的范例简要介绍了最先进的自监督学习框架

        Pipeline:给一个未标记的数据集,执行实例判别前置任务,将训练集中的每幅图像的特征与其他图像的特征分离出来。对于每幅图像,通过随机数据增强生成随机视图。每个视图都被送入一个编码器,用于提取对整个视图进行编码和表示的特征。编码器中有两个核心组件,即主干网和投影头。投影头连接到主干网络。主干是预训练后要转移的模型,而投影头将在预训练完成后丢弃。对于一对视图,它们可以由同一个编码器编码,也可以由编码器及其动量更新的编码器单独编码。编码器通过优化成对对比(dis)相似性损失进行训练,如下所述。整个管道如图2a所示。

通过上述方法,我们使用完全卷积网络(FCN)密集对比学习,类似于目标密集预测任务。

        损失函数。根据MoCo的原则,对比学习可以被视为一项查字典的任务。对于每个编码查询q,都有一组编码键{k0k1…},其中一个正密钥k+匹配查询q。编码的查询和密钥从不同的视图生成。对于编码查询q,其正键k+编码同一图像的不同视图,而负键编码不同图像的视图。使用对比损失函数信息将q拉近k+,同时将其推离其他负键:

式中,τ表示温度超参数

        DenseCL PipelineDenseCL将现有框架扩展并概括为一个密集的范例。与2.1中重新讨论的现有范例相比,核心区别在于编码器两个核心组件,即主干网投影头损失函数

        1.  给一张图片,由主干网络(例如ResNet或任何其他卷积神经网络)提取密集特征,并转发到下面的投影头由两个平行的子头组成,分别是全局投影头和密集投影头。全局投影头可以被实例化为任何现有的投影头

        2.全局池层被移除密集投影头与全局投影头具有相同数量的参数通过在全局特征和局部特征水平上优化联合成对对比相似性/不相似损失,对主干和两个平行投影头进行端到端训练。进行密集特征的调整

        3. 损失函数(全局对比损失对于每个编码查询q,都有一组编码键{k0k1…},其中一个正密钥k+匹配查询q。编码的查询和密钥从不同的视图生成。对于编码查询q,其正键k+编码同一图像的不同视图,而负键编码不同图像的视图。使用对比损失函数信息将q拉近k+,同时将其推离其他负键

q表示当前图像特征;

 k+表示当前图像的正样本对图像特征

k- 表示当前图像的负样本对图像特征

τ表示一个温度参数(本文实际操作时τ设置为0.2

        4.  我们通过将原始对比损失函数扩展到密集范式来进行密集对比学习。(具体细节在2.3中),每个查询不再代表整个视图,而是对视图的局部部分进行编码密集对比损失定义为对密集特征计算对比损失

其中rs表示s2编码查询中的第s(实际操作温度τ设置为0.2

总的来说,我们的DenseCL的总损失可以表示为

λ作为平衡这两项的权重。λ设置为0.5

        5. 视图之间的密集特征匹配(提取同一输入图像的两个视图之间的密集对应关系具体在2.4)我们使用主干特征映射F 1F 2匹配Θ1和Θ2特征。首先通过自适应平均池对f1f2进行下采样,得到S×S的空间形状;接着计算余弦相似矩阵

匹配

 fi是主干特征映射F1的第i个特征向量,f′jf2的第j个特征向量sim()表示余弦值

整个匹配过程可以通过矩阵运算有效地实现




知识点:

图像语义分割的目标是将图像的每个像素所属类别进行标注。因为是预测图像中的每个像素,这个任务通常被称为密集预测。

  • AP(平均精度)衡量的是学出来的模型在每个类别上的好坏
  • IoU:交并比
  • MIOU:为语义分割的标准度量。其计算所有类别交集和并集之比的平均值.
  • ImageNet:是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。
  • Self-supervised:自监督学习是无监督学习的一种特殊方式
  • pretext tasks:前置任务。(该任务不是目标任务,但是通过执行该任务可以有助于模型更好的执行目标任务。)
  • downstream tasks:下游任务就是利用预训练的模型在当前数据集的效果
  • Representation Learning(表示学习)
  • 图像分类:图像分类就是对图像判断出所属的分类。
  • 目标检测:简单来说就是图片里面有什么?分别在哪里?(把它们用矩形框框住)
  • 语义分割:就是需要区分到图中每一点像素点,而不仅仅是矩形框框住了(用颜色区分)。但是同一物体的不同实例不需要单独分割出来。(是精细化识别、图像理解的可靠方式。但费人力物力)语义分割只能判断类别,无法区分个体。
  • Instance segmentation(实例分割):其实就是目标检测语义分割的结合。相对目标检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割需要标注出图上同一物体的不同个体(羊1,羊2,羊3)目前常用的实例分割算法是Mask R-CNN。
  • 池化层模拟的人的视觉系统对数据进行降维,使用数据更高层次的特征维度进行学习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值