自学内容网 自学内容网

《MoCo:Momentum Contrast for Unsupervised Visual Representation Learning》中文校对版

系列文章目录



摘要

我们提出了用于无监督视觉表示学习的动量对比(MoCo)。从对比学习[29]作为字典查找的角度来看,我们构建了一个带有队列和移动平均编码器的动态字典。这使得能够在运行中构建大的且一致的字典,其促进对比无监督学习。MoCo在ImageNet分类的通用线性协议下提供了具有竞争力的结果。更重要的是,MoCo学习到的表示可以很好地转移到下游任务中。MoCo可以在PASCAL VOC,COCO和其他数据集上的7个检测/分割任务中优于其监督的预训练对手,有时甚至远远超过它。这表明,在许多视觉任务中,无监督表示学习和监督表示学习之间的差距已经基本消除。

1.简介

无监督表示学习在自然语言处理中非常成功,例如,[12]如图所示,[50]和[51]的BERT [12]。但监督式预训练在计算机视觉中仍然占主导地位,而非监督式方法通常落后。原因可能源于它们各自的信号空间的差异。语言任务具有离散的信号空间(单词,子单词单位等)。用于构建标记化词典,无监督学习可以基于该标记化词典。相比之下,计算机视觉还涉及字典构建[54,9,5],因为原始信号处于连续的高维空间中,并且未被构造成用于人类通信(例如,不像字)。
最近的几项研究[61,46,36,66,35,56,2]提出了使用与对比损失相关的方法的无监督视觉表征学习的有希望的结果[29]。尽管这些方法受到各种动机的驱动,但它们可以被认为是构建动态词典。字典中的“关键字”(标记)是从数据(例如,并且由编码器网络来表示。无监督学习训练编码器执行字典查找:编码的“查询”应该与其匹配的关键字相似,而与其他关键字不相似。学习被表述为最小化对比损失[29]。
在这里插入图片描述

动量对比度(MoCo)通过使用对比损失将编码的查询q与编码的关键字的字典进行匹配来训练视觉表示编码器。字典关键字{k 0,k1,k2,…}由一组数据样本动态地定义。字典构建为一个队列,当前的小批处理入队,最早的小批处理出列,使其与小批处理大小分离。键由缓慢前进的编码器编码,由查询编码器的动量更新驱动。该方法能够实现用于学习视觉表示的大且一致的字典。

从这个角度出发,我们假设希望建立这样的词典:(i)大的并且(ii)在训练期间随着它们的发展而一致。直观地,较大的字典可以更好地采样底层连续的、高维的视觉空间,而字典中的关键字应该由相同或相似的编码器表示,以便它们与查询的比较是一致的。然而,使用对比损失的现有方法可能在这两个方面中的一个方面受到限制(稍后在上下文中讨论)。
我们提出了动量对比度(MoCo)作为一种构建大型一致字典的方法,用于具有对比度损失的无监督学习(图1)。我们将字典维护为数据样本的队列:当前小批量的编码表示被入队,最早的被出列。队列将字典大小与迷你批处理大小分离,从而允许它变得更大。此外,由于字典关键字来自前几个小批量,一个缓慢进展的关键字编码器,实现为基于动量的移动平均查询编码器,提出了保持一致性。
MoCo是一种为对比学习构建动态词典的机制,可以用于各种借口任务。在本文中,我们遵循一个简单的实例判别任务[61,63,2]:如果查询是编码视图(例如,不同的作物)相同的图像。使用这个借口任务,MoCo在ImageNet数据集中的线性分类的常见协议下显示了竞争结果[11]。
无监督学习的主要目的是预先训练表示(即,功能),可以通过微调转移到下游任务。我们发现,在与检测或分割相关的7个下游任务中,MoCo无监督预训练可以超过ImageNet监督预训练,在某些情况下,可以超过非平凡的边缘。在这些实验中,我们探索了在ImageNet或10亿张Instagram图像集上预训练的MoCo,证明MoCo可以在更真实的世界中工作,十亿张图像规模,以及相对未经策划的场景。这些结果表明,MoCo在很大程度上缩小了许多计算机视觉任务中无监督和有监督表示学习之间的差距,并且可以在几个应用中作为ImageNet监督预训练的替代方案。

2.相关工作

无监督/自我监督1学习方法通常涉及两个方面:借口任务和损失函数。术语“借口”意味着正在解决的任务不是真正感兴趣的,而是仅仅为了学习良好的数据表示的真正目的而解决的。损失函数通常可以独立于托词任务来研究。MoCo侧重于损耗函数方面。接下来我们就这两个方面的相关研究进行探讨。
损失函数。定义损失函数的常见方式是测量模型的预测与固定目标之间的差,诸如重构输入像素(例如,自动编码器),或者将输入分类为预定义的类别(例如,八个位置[13]、颜色箱[64])。如下所述的其它替代方案也是可能的。
对比损失[29]衡量的是样本对在一个表示空间中的相似性。在对比损失公式中,目标可以在训练期间动态变化,并且可以根据网络计算的数据表示来定义,而不是将输入与固定目标相匹配[29]。对比学习是最近几部关于无监督学习的著作的核心[61,46,36,66,35,56,2],我们将在后面的上下文中对此进行详细阐述(第第3.1段)。
对抗性损失[24]衡量的是概率分布之间的差异。它是一种广泛成功的无监督数据生成技术。在[15,16]中探讨了用于表征学习的对抗方法。在生成对抗网络和噪声对比估计(NCE)[28]之间存在关系(见[24])。
代理任务。提出了一系列广泛的借口任务。示例包括在某些损坏情况下恢复输入,例如,去噪自动编码器[58]、上下文自动编码器[48]或交叉通道自动编码器(彩色化)[64,65]。一些借口任务形成伪标签,例如,单个(“样本”)图像的变换[17]、块排序[13,45]、跟踪[59]或分割视频中的对象[47]、或聚类特征[3,4]。
对比学习与代理任务。各种借口任务可以基于某种形式的对比损失函数。实例判别方法[61]与基于范例的任务[17]和NCE [28]相关。对比预测编码(CPC)[46]中的托词任务是上下文自动编码[48]的一种形式,而在对比多视图编码(CMC)[56]中,托词任务与着色[64]相关。

3.方法

3.1.作为字典查找的对比学习

对比学习[29]及其最近的发展,可以被认为是训练编码器进行字典查找任务,如下所述。
考虑编码查询q和编码样本集 { k 0 , k 1 , k 2 , . . . } \{k 0,k1,k2,...\} {k0k1k2...}。是字典的关键字。假设在q匹配的字典中存在单个关键字(表示为 k + k_+ k+)。对比损失[29]是一个函数,当 q q q与其正键 k + k_+ k+相似而与所有其他键(被认为是q的负键)不相似时,该函数的值较低。通过点积衡量相似性,本文考虑了一种称为InfoNCE [46]的对比损失函数形式:
L q = − log ⁡ exp ⁡ ( q . k + / τ ) ∑ i = 0 K exp ⁡ ( q . k i / τ ) \mathcal{L}_q=-\log\frac{\exp(q.{k_+}/\tau)}{\sum_{i=0}^K \exp(q.{k_i/\tau})} Lq=logi=0Kexp(q.ki/τexp(q.k+/τ)
其中 τ τ τ是根据[61]的温度超参数。总和是一个阳性样本和K个阴性样本的总和。直观地,该损失是试图将q分类为 k + k_+ k+的基于(K+1)路软极大值的分类器的对数损失。对比损失函数也可以基于其他形式[29,59,61,36],例如基于边际的损失和NCE损失的变体。
对比损失用作训练表示查询和密钥的编码器网络的无监督目标函数[29]。一般而言,查询表示是 q = f q ( x q ) q = f_q(x^q) q=fqxq,其中fq是编码器网络, x q x^q xq是查询样本(同样, k = f k ( x k k = f_k(x^k k=fkxk))。它们的实例化取决于特定的借口任务。输入 x q x_q xq x k x_k xk可以是图像[29,61,63]、补丁[46]或包括一组补丁[46]的上下文。网络 f q f_q fq f k f_k fk可以是相同的[29,59,63]、部分共享的[46,36,2]或不同的[56]。
在这里插入图片描述

三种对比损失机制的概念比较(经验比较见图3和表3)。这里我们举例说明一对查询和键。这三种机制的不同之处在于key的维护方式和key编码器的更新方式。(a):用于计算查询和键表示的编码器通过反向传播被端到端地更新(这两个编码器可以是不同的)。(b)从存储器组[61]中对key表示进行采样。©MoCo通过动量更新编码器对新key进行动态编码,并维护key队列(此图中未示出)。

3.2.动量对比度

 从上述角度来看,对比学习是一种在高维连续输入(如图像)上构建离散字典的方法。字典是动态的,因为密钥是随机采样的,并且密钥编码器在训练期间演变。我们的假设是,好的特征可以通过覆盖大量负样本的大字典来学习,而字典关键字的编码器尽管在进化,但仍尽可能保持一致。基于这一动机,我们提出了动量对比,如下所述。

字典作为队列。我们的方法的核心是将字典作为数据样本的队列来维护。这使我们可以重用之前的小型批处理中的编码密钥.队列的引入将字典大小与迷你批大小分离。我们的字典大小可以比典型的小批量大小大得多,并且可以灵活地和独立地设置为超参数。
 字典中的样本被逐步替换。目前的迷你批次会排入说明队列,而且队列中最旧的迷你批次会被移除。字典始终表示所有数据的采样子集,而维护该字典的额外计算是可管理的。此外,移除最旧的迷你批次可能是有益的,因为其经编码keys是最过时的且因此与最新keys最不一致。
动量更新。使用队列可以使字典变大,但是它也使得难以通过反向传播(梯度应当传播到队列中的所有样本)来更新密钥编码器。一个简单的解决方案是从查询编码器 f q f_q fq复制key编码器 f k f_k fk,忽略这个梯度。但这种解决方案在实验中产生的结果很差(第二节。第4.1段)。我们假设这种失败是由于快速变化的编码器降低了key表示的一致性而导致的。我们建议进行动量更新以解决此问题。
 形式上,将 f k f_k fk的参数表示为 θ k θ_k θk,将 f q f_q fq的参数表示为 θ q θ_q θq,我们通过以下方式更新 θ k θ_k θk
θ k ← m θ k + ( 1 − m ) θ q . \theta_{\bf k}\leftarrow m\theta_{\bf k}+(1-m)\theta_{\bf q}. θkmθk+(1m)θq.
这里 m ∈ [ 0 , 1 ) m ∈ [0,1) m[01是动量系数。仅参数θq通过反向传播更新。方程中的动量更新。(2)使得 θ k θ_k θk θ q θ_q θq演化得更平滑。因此,尽管队列中的键由不同的编码器(在不同的小批量中)编码,但这些编码器之间的差异可以变小。在实验中,相对大的动量(例如,m = 0.999,我们的默认值)比较小的值(例如,m = 0.9),这表明缓慢演进的密钥编码器是利用队列的核心。
与以前机制的关系。 MoCo是使用对比损失的一般机制。我们将其与图2中的两个现有通用机制进行比较。它们在字典大小和一致性上表现出不同的性质。
 通过反向传播的端到端更新是一种自然机制(例如,[29,46,36,63,2,35],图2a)。它使用当前mini-batch中的样本作为字典,因此键被一致地编码(通过相同的编码器参数集)。但字典大小与小批量大小相结合,受到GPU内存大小的限制。它也受到大型小批量优化的挑战[25]。一些最近的方法[46,36,2]基于由局部位置驱动的借口任务,其中字典大小可以通过多个位置变得更大。但是这些借口任务可能需要特殊的网络设计,例如修补输入[46]或定制感受野大小[2],这可能会使这些网络向下游任务的传输复杂化。
 另一种机制是[61]提出的内存库方法(图2b)。内存库由数据集中所有样本的表示组成。每个小批量的字典是从内存库中随机采样的,没有反向传播,因此它可以支持大的字典大小。然而,当最后一次看到时,存储体中的样本的表示被更新,因此采样的密钥基本上是关于在过去的历元中的多个不同步骤处的编码器的,因此不太一致。在[61]中,在存储器组上采用了动量更新。它的动量更新是在相同样本的表示上,而不是编码器上。这种动量更新与我们的方法无关,因为MoCo不会跟踪每个样本。此外,我们的方法是更有效的存储器,并可以在十亿规模的数据,这可能是难以处理的存储库训练。
 Sec 4 对这三种机制进行了实证比较。

3.3.前置任务

 对比学习可以驱动各种借口任务。由于本文的重点不是设计一个新的托词任务,我们使用了一个简单的托词任务,主要是在[61]中的实例判别任务之后,最近的一些工作[63,2]也与之相关。
 在[61]之后,如果查询和关键字源自相同的图像,则我们将其视为正样本对,否则视为负样本对。根据[63,2],我们在随机数据增强下取同一图像的两个随机“视图”以形成正对。查询和关键字分别由它们的编码器 f q f_q fq f k f_k fk编码。编码器可以是任何卷积神经网络[39]。
在这里插入图片描述
 算法1为该借口任务提供MoCo的伪代码。对于当前的mini-batch,我们对查询及其对应的键进行编码,形成正样本对。阴性样本来自队列。
技术细节。我们采用ResNet [33]作为编码器,其最后一个全连通层(在全局平均汇集之后)具有固定维输出(128-D [61])。该输出向量通过其L2范数来归一化[61]。这是查询或键的表示形式。方程中的温度τ(1)设置为0.07 [61]。数据增强的设置如下[61]:从随机调整大小的图像中截取224×224像素的裁剪,然后进行随机颜色抖动、随机水平翻转和随机灰度转换,所有这些都可以在PyTorch的torchvision软件包中获得。
洗牌批量归一化。我们的编码器fq和fk都具有与标准ResNet [33]中相同的批量归一化(BN)[37]。在实验中,我们发现使用BN会阻止模型学习良好的表示,如[35]中类似的报告(避免使用BN)。该模型似乎“欺骗”了借口任务,并很容易找到一个低损失的解决方案。这可能是因为样本之间的批内通信(由BN引起)泄漏了信息。
 我们通过洗牌批量归一化来解决这个问题。我们使用多个GPU进行训练,并针对每个GPU独立地对样本执行BN(如常见实践中所做的那样)。对于关键编码器 f k f_k fk,我们在GPU之间分配当前小批量中的样本顺序之前对其进行混洗(并在编码之后进行混洗);对于查询编码器 f q f_q fq,小批量的样本顺序不变。这确保了用于计算查询的批处理统计信息及其正键来自两个不同的子集。这有效地解决了作弊问题,并允许培训受益于批量归一化。
 我们在我们的方法及其端到端消融对应物中使用了重排BN(图2a)。它与内存条对应项(图2b)无关,内存条对应项不受此问题的影响,因为正密钥来自过去的不同小批量。

4.实验

 我们研究在以下情况下进行的无监督训练:
ImageNet-1 M(IN-1 M):这是ImageNet [11]训练集,在1000个类中有128万张图像(通常称为ImageNet-1 K;我们计算图像数量,因为类不被无监督学习利用)。该数据集在其类分布方面很平衡,其图像通常包含对象的图标视图。
Instagram-1B(IG-1B):继[44]之后,这是一个来自Instagram的10亿(9.4亿)公共图像的数据集。这些图像来自与ImageNet类别相关的1500个主题标签[44]。与IN-1 M相比,该数据集相对不完整,并且具有长尾、不平衡的真实世界数据分布。此数据集包含图标对象和场景级图像。
训练 我们使用SGD作为优化器。SGD的重量衰减为0.0001,SGD的动量为0.9。对于IN-1 M,我们在8个GPU中使用256(算法1中的N)的最小批大小,以及0.03的初始学习速率。我们训练了200个时期,在120和160个时期时学习率乘以0.1 [61],训练ResNet-50大约需要53个小时。对于IG-1B,我们在64个GPU中使用了1024的最小批量大小,以及0.12的学习速率,该速率在每62.5k次迭代(64 M个图像)后指数衰减0.9倍。我们训练了125万次迭代(约1.4个IG-1B的纪元),对于ResNet-50需要约6天。

4.1.线性分类协议

 首先,我们验证我们的方法通过线性分类冻结功能,遵循一个共同的协议。在本小节中,我们对IN-1 M执行无监督预训练。然后冻结特征并训练有监督的线性分类器(一个完全连通的层,后跟softmax)。我们针对100个时期,在ResNet的全局平均汇集特征上训练该分类器。我们在ImageNet验证集上报告了1-crop,top-1分类准确度。
 对于该分类器,我们执行网格搜索,并发现最佳初始学习率为30,权重衰减为0(类似于[56]中的报告)。对于本小节中列出的所有消融条目,这些超参数始终表现良好。这些超参数值意味着特征分布(例如,幅度)可能与ImageNet监督训练有很大不同,我们将在第4.2节中重新讨论这个问题。
消融:对比损失机制。我们比较了图2中所示的三种机制。为了关注对比性丢失机制的效果,我们在第二节中描述的同一个借口任务中实现了所有这些机制。3.3.节我们还使用InfoNCE的相同形式作为对比损失函数,Eqn。(一).因此,仅对三种机制进行比较。
 结果如图3所示。总的来说,所有三种机制都受益于较大的K。在[61,56]中,在存储器组机制下观察到了类似的趋势,而在这里,我们表明这种趋势更为普遍,并且可以在所有机制中看到。这些结果支持了我们建立一个大词典的动机。
 当K较小时,端到端机制的表现类似于MoCo。然而,由于端到端的要求,字典大小受到最小批大小的限制。在这里,一台高端机器(8伏32 GB GPU)所能负担得起的最大迷你批量是1024。更重要的是,大型小批量训练是一个公开的问题[25]:我们发现有必要在这里使用线性学习率缩放规则[25],没有它,精度会下降(对于1024个小批量,下降约2%)。但是,使用较大的小型批处理进行优化比较困难[25],并且即使存储器足够,趋势是否可以外推到较大的K值也是值得怀疑的。
在这里插入图片描述

图3.ImageNet线性分类协议下三种对比丢失机制的比较。我们采取同样的借口任务(第3.3节)并且仅改变对比损失机制(图2)。在内存库和MoCo中,负数的数量是K,在端到端中是K−1(偏移1,因为正数在同一个小批量中)。网络为ResNet-50。

 内存库[61]机制可以支持更大的字典大小。但它比MoCo差2.6%。这与我们的假设是一致的:存储库中的密钥来自过去时期的不同编码器,并且它们不一致。注意,58.0%的内存组结果反映了我们对[61]的改进。
消融:动量。下表示出了具有不同MoCo动量值的ResNet-50准确度(方程中的m)。(2))在预训练中使用(此处K = 4096):
在这里插入图片描述
当m在0.99 - 0.9999时,它表现得相当好,表明缓慢进展(即,相对大的动量)键编码器是有益的。当m太小时(例如,0.9),精度下降相当大;在没有动量的极端(m为0),训练损失振荡,无法收敛。这些结果支持了我们构建一致性词典的动机。
 与先前结果的比较。以前的无监督学习方法在模型大小上可能有很大的不同。为了进行公平和全面的比较,我们报告了准确性与#parameters3之间的权衡。除ResNet-50(R50)[33]外,我们还报告了其2倍和4倍宽(更多通道)的变体,如下[38]所示。4我们设定K = 65536和m = 0.999。表1是比较。
 采用R50的MoCo性能具有竞争力,准确率达到60.6%,优于所有相似型号尺寸(约24M)的竞争对手。MoCo受益于更大的模型,并使用R50w4×实现了68.6%的准确度。
 值得注意的是,我们使用标准的ResNet-50实现了具有竞争力的结果,并且不需要特定的架构设计,例如:零散的输入[46,35]、精心定制的感受野[2]或组合两个网络[56]。通过使用一个不是为借口任务定制的架构,可以更容易地将特征转移到各种视觉任务中并进行比较,这将在下一小节中进行研究。
 本文的重点是一般对比学习的机制,我们不探讨正交因素(如特定的借口任务),可能会进一步提高准确性。例如,“MoCo v2”[8]是该手稿的初步版本的扩展,在R50(从60.6%上升)下实现了71.1%的准确度,给出了数据增强和输出投影头的微小变化[7]。我们认为,这一额外的结果显示了MoCo框架的通用性和鲁棒性。
在这里插入图片描述

ImageNet上线性分类协议下的比较。该图显示了该表。所有这些都被报告为在ImageNet-1 M训练集上的无监督预训练,然后是在冻结特征上训练的监督线性分类,在验证集上评价。参数计数是特征提取器的参数计数。如果可用,我们将与改进的重新实现进行比较(在数字后引用)。符号:R101/R170是ResNet-101/170,去除了最后一个剩余阶段[14,46,35],R170更宽[35]; Rv 50是可逆网络[23],RX50是ResNeXt-50-32×8d [62]。

在这里插入图片描述

4.2.转移特征

 无监督学习的一个主要目标是学习可转移的特征。ImageNet监督的预训练在作为下游任务(例如,[21,第20、43、52页])。接下来,我们将MoCo与ImageNet监督的预训练进行比较,转移到各种任务,包括PASCAL VOC [18]、COCO [42]等。作为先决条件,我们将讨论涉及的两个重要问题[31]:规范化和时间表。
规范化。如第4.1,与ImageNet有监督预训练相比,由无监督预训练产生的特征可以具有不同的分布。但是用于下游任务的系统通常具有超参数(例如,学习速率)。为了缓解这一问题,我们在微调期间采用了特征归一化:我们使用经过训练(并在GPU之间同步[49])的BN进行微调,而不是通过仿射层冻结它[33]。我们还在新初始化的层中使用BN(例如,FPN [41]),这有助于校准幅度。
 我们在微调监督和无监督预训练模型时执行归一化。MoCo使用与ImageNet监督对应物相同的超参数。的功能,所以我们的实验是在受控的时间表,例如,COCO的1×(12个历元)或2×时间表[22],而[31]中的时间表为6× 19 ×。在像VOC这样的较小数据集上,训练时间可能不会赶上[31]。
 尽管如此,在我们的微调中,MoCo使用与ImageNet监督对应物相同的时间表,并提供随机初始化结果作为参考。
 总之,我们的微调使用与监督预训练对应物相同的设置。这可能会使MoCo处于不利地位。即便如此,MoCo仍具有竞争力。这样做还可以在多个数据集/任务上进行比较,而无需额外的超参数搜索。
在这里插入图片描述

与之前在PASCAL VOC trainval2007上微调的目标检测方法的比较。2007年评估正在测试中。ImageNet的监督对应部分来自相应的论文,并被报告为与相应的无监督预训练对应部分具有相同的结构。所有条目都基于C4主干。[14]中的型号是R101 v2 [34],其他型号是R50。RelPos(相对位置)[13]结果是多任务论文[14]中最好的单任务情况。Jigsaw [45]的结果来自[26]中基于ResNet的实现。我们的结果是9k次迭代微调,平均超过5次试验。括号中是与ImageNet监督的预训练对应物的差距。绿色为至少+0.5点的间隙。

4.2.1 PASCAL VOC对象检测

Setup.编码器为Faster R-CNN [52],具有R50-扩张-C5或R50-C4 [32]的骨架(详情见附录),BN调谐,在[60]中实现。我们对所有层进行了端到端的微调。图像比例在训练期间为[480,800]像素,在推断时为800像素。相同的设置用于所有条目,包括受监督的预训练基线。我们评估了AP 50的默认VOC指标(即IoU阈值为50%)以及COCO风格的AP和AP 75的更严格的指标。在VOC test 2007集上进行评估。
消融:主干。表2显示了在trainval 07 +12上微调的结果(约16.5k图像)。对于R50-dilatedC 5(表2a),在IN-1 M上预训练的MoCo与监督的预训练对应物相当,而在IG-1B上预训练的MoCo超过了它。对于R50-C4(表2b),使用IN-1 M或IG-1B的MoCo优于监督的对应物:高达+0.9 AP 50,+3.7 AP和+4.9 AP 75。
 有趣的是,传输精度取决于探测器的结构。对于C4骨干,默认情况下用于现有的基于ResNet的结果[14,61,26,66],无监督预训练的优势更大。预训练与检测器结构之间的关系在过去一直被掩盖,应该成为一个需要考虑的因素。
消融:对比损失机制。我们指出,这些结果部分是因为我们为对比学习建立了坚实的检测基线。为了确定在对比学习中使用MoCo机制所带来的收益,我们对使用端到端或内存库机制预训练的模型进行了微调,这两种机制都是由我们实现的(即,图3中最好的一个),使用与MoCo相同的微调设置。
 这些竞争对手表现良好(表3)。他们的AP和具有C4骨架的AP 75也高于ImageNet监督的对应物,c.f.表2b,但其他指标较低。它们在所有指标上都比MoCo差。这显示了MoCo的好处。此外,如何在更大规模的数据中训练这些竞争对手是一个悬而未决的问题,他们可能不会从IG-1B中获益。
与先前结果的比较。在竞争对手之后,我们使用C4主干对trainval 2007(约5 k个图像)进行了微调。比较结果见表4。
 对于AP 50度量,没有先前的方法能够赶上其相应的有监督的预训练对应物。在IN-1 M、IN-14 M(完整的ImageNet)、YFCC-100 M [55]和IG-1B中的任何一个上预先训练的MoCo都可以优于监督基线。在更严格的指标中可以看到较大的收益:高达+5.2 AP和+9.0 AP 75。这些增益大于trainval 07 +12中的增益(表2b)。

4.2.2 COCO对象检测和分割

Setup.该模型是在[60]中实现的具有FPN [41]或C4主干的掩码R-CNN [32],其中BN被调谐。图像比例在训练期间以[640,800]像素为单位,在推断时为800。我们对所有层进行了端到端的微调。我们对train 2017集(约118 k张图像)进行了微调,并在val 2017上进行了评估。在[22]中,时间表默认为1×或2×。
结果表5显示了具有FPN(表5a,B)和C4(表5c,d)骨架的COCO的结果。对于1×调度,所有模型(包括ImageNet监督的对应模型)都严重训练不足,如2×调度情况下的约2个点差距所示。在2×调度下,MoCo在两个骨干网的所有指标上都优于ImageNet监督的同类产品。

4.2.3更多下游任务

表6显示了更多的下游任务(附录中的实现细节)。总体而言,MoCo在ImageNet监督的预训练中表现出色:
 COCO关键点检测:有监督的预训练与随机初始化相比没有明显的优势,而MoCo在所有指标上都表现出色。
 COCO密集姿态估计[1]:MoCo大大优于监督预训练,例如,在这个高度定位敏感的任务中,在 A P 75 d p AP_{75}^{dp} AP75dp中提高了3.7分。
 LVIS v0.5实例分割[27]:该任务具有1000个长尾分布式类别。具体来说,在ImageNet监督基线的LVIS中,我们发现使用冻结BN(24.4 APK)进行微调比可调BN更好(详见附录)。因此,我们在这项任务中将MoCo与更好的监督预训练变体进行了比较。IG-1B的MoCo在所有指标上都超过了它。
 Cityscapes实例分割[10]:具有IG-1B的MoCo与 A P m k AP^{mk} APmk中的监督预训练对应物相当,并且在 A P 50 m k AP_{50}^{mk} AP50mk中更高。
 语义分割:在Cityscapes [10]上,MoCo比其监督的预训练对手高出0.9分。但是在VOC语义分割上,MoCo至少差了0.8分,这是我们观察到的一个负面情况。
摘要 总之,MoCo在7项检测或分割任务中优于ImageNet监督的预训练对手。5此外,MoCo在Cityscapes实例分割方面与之相当,但在VOC语义分割方面落后;我们在附录中展示了iNaturalist [57]上的另一个可比案例。总的来说,MoCo在很大程度上缩小了多视觉任务中无监督和有监督表征学习之间的差距。
 值得注意的是,在所有这些任务中,在IG-1B上预先训练的MoCo始终优于在IN-1 M上预先训练的MoCo。这表明MoCo可以在这个大规模,相对未经管理的数据集上表现良好。这代表了现实世界中无监督学习的一个场景。

5.讨论和结论

 我们的方法在各种计算机视觉任务和数据集中显示了无监督学习的积极结果。有几个悬而未决的问题值得讨论。MoCo从IN-1 M到IG-1B的改进一直很明显,但相对较小,这表明较大规模的数据可能没有得到充分利用。我们希望一个先进的借口任务将改善这一点。除了简单的实例识别任务[61]之外,还可以采用MoCo来进行借口任务,如掩码自动编码,例如,[12][14][15][16][17][18][19][19][19]我们希望MoCo能对其他涉及对比学习的借口任务有用。


原文地址:https://blog.csdn.net/buyaotutou/article/details/142678584

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!