近年来,大规模对比语言图像预训练(CLIP)因其令人印象深刻的zero-shot识别能力和良好的下游任务转移能力而引起了前所未有的关注。然而,CLIP非常需要数据,需要400M图像-文本对进行预训练。这项工作提出了一种新的训练范式(DeCLIP),以缓解这一限制。我们证明,通过仔细利用图像-文本对之间的广泛监督,我们的DeCLIP可以更有效地学习通用视觉特征。我们没有使用单一的图像-文本对比监督,而是通过使用
(1)每个模式内的自监督来充分利用数据潜力;
(2) 跨模式的多视角监督;
(3) 来自其他类似配对的最近邻监督。
得益于这些内在监督,我们的DeCLIP-ResNet50可以在ImageNet上实现60.4%的zero-shot top1精度,比CLIP-ResNet50高0.8%,同时使用7.1×fewer 的数据。当转移到下游任务时,我们的DeCLIP-ResNet50在11个视觉数据中有8个更优。
首先,每种模式本身都有丰富的结构信息(LeCun和Misra,2021)。我们可以调整句子/图像中的一些单词/像素,同时保留相似的语义。可以利用这种自我监督来学习每种模式的更多常识表示(Devlin等人,2018;He等人,2020;Chen等人,2020a)。此外,受图像中对比多种作物的启发(Caron等人,2020年),我们进一步将多视图1监控扩展到我们的多模态设置中。具体来说,每个图像与通过随机增强获得的多个文本描述配对,反之亦然。其优点是直观的:这种辅助多视图监控带来了更多不变和稳健的信息。
除了这些被忽略的监督之外,我们还提出了一种新的来自其他相似对的最近邻监督。这种神经网络监督主要基于一种直觉,即一幅图像可能在数据集中有其他类似的文本描述。如右图所示,带有文字“’going to see a lot of vintage tractors this week’ 的图像也可以用“vintage at tractors a gathering”来描述。因此,我们在嵌入空间中对神经网络进行采样,并将其用作额外的监控信号。综合这些监督导致了我们新的训练范式DeCLIP,即数据高效的对比语言图像预训练
大量实验表明了我们的DeCLIP的有效性和效率。如图1所示,使用ResNet50图像编码器和Transformer文本编码器,我们的模型可以在ImageNet上实现60.4%的zero-shot top1精度,比CLIP ResNet50高0.8%,同时使用7.1×更少的数据。仅使用88M图像-文本对,我们最好的ResNet50/ViT B32模型将零拍性能提高到62.5%和66.2%,比最好的高出近3.0%这两种架构的报告数量。我们进一步验证了我们的模型在下游任务上的可转移性。如图2所示,我们的DeCLIP-ResNet50在11个视觉数据集中有8个优于对应的数据集。此外,扩展模型和计算在我们的框架使用4.5×更少的数据,我们的DeCLIP-RegNetY-64GF实现了73.7%的zero-shot ImageNet top1精度,与CLIP-R50×64配对。
据我们所知,这是首次在百万尺度图像文本预训练任务中研究自监督和跨模式多视角监督。我们的工作开辟了一个新的方向,即充分利用多模态数据中的内在监督,而不是单纯地放大数据。
我们提出了一种新的跨模式最近邻监控(NNS)来利用来自其他类似对的信息。神经网络也可以被视为语义级的扩充。
2. RELATED WORK
预训练的关键思想是首先从大量数据中隐式提取一般知识,然后将知识转移到多个下游任务中。大型自然语言处理模型通过在互联网上学习大量语言数据和语言本身内部的免费监督,产生了前所未有的性能。在CV领域,在ImageNet上进行有监督的预培训仍然是标准做法。虽然在下游CV任务上取得了巨大成功,但这种监督方式很难扩展。为了应对这一挑战,我们的DeCLIP直接从互联网上丰富的图像-文本对中学习。更重要的是,通过利用配对内的广泛监督,我们的DeCLIP比现有技术更具数据效率。
2.1 SUPERVISION WITHIN DATA
大多数视觉语言模型使用一组跨模态transformer来融合和对齐文本和图像之间的信息。这些方法要么需要现成的对象检测器来提取区域特征,要么需要专用的跨模态转换层,这严重阻碍了它们的可扩展性。相比之下,我们的DeCLIP使用了一个简单但有效的two-tower框架,仅在顶部具有多模态交互。此外,这一系列模型可以执行zero-shot识别,适应没有可见标记数据的新类别。预训练CLIP模型可以显著地受益于下游VQA和图像字幕任务。我们的DeCLIP应该与更多模态兼容,例如声音信号(Akbari等人,2021)。包括的模态越多,预计将利用更多的相关监督
3. APPROACH
在本节中,我们首先回顾了CLIP,并指出了一些基本概念,例如图像-文本对比监督。接下来,我们将概述DeCLIP框架。然后,我们介绍了每种辅助监督:自监督(SS)、多视图监督(MVS)和最近邻监督(NNS)
对比语言图像预训练(CLIP)旨在直接从原始文本中学习图像。它们使用双编码器架构,如图4(a)所示。该模型由图像编码器或ViT和文本编码器(例如Transformer)或其变体组成,顶部具有多模式交互。图像和文本特征投影到同一维度,然后在交互之前进行L2归一化。在训练阶段,对比目标将匹配图像-文本对的嵌入推到一起,而将非匹配图像-文本对的嵌入推到分开。在一批N个图像-文本对中作为图像和文本的第i对。分别是第i个图像和第j个文本的归一化嵌入。CLIP使用InfoNCELoss,图像编码器的loss可以表示为。
这里,相似函数sim通过点积测量,τ是一个可学习的温度变量,用于缩放logit。图像和文本编码器是对称loss,因此整体loss函数是LI和LT的平均值。
关于InfoNCEloss的笔记:
1)对比学习常用的损失函数InfoNCE loss和cross entropy loss是否有联系?
(2)对比损失InfoNCE loss中有一个温度系数,其作用是什么?温度系数的设置对效果如何产生影响?
字典大小?
- 字典越大,key就越多,query去对比key的时候就有可能真的可以学到可以把物体区分开的特征
- 字典很小的话,模型就很有可能学到了一个捷径,从而导致预训练好的模型不可以很好地去泛化
- 关于一致性,字典里的这些key都应该由相同或者相似的编码器去得到,这样才能保证去和query对比的时候尽可能的一致
为什么要用队列?
队列可以设置的很大,每次都是一点一点更新队列,当用一个很小的batch_size的时候,现在这个batch的特征进入队列,最老的特征移出队列,所以队列的大小可以设置的很大,因为不是每一个iteration都需要更新的
为什么要用动量法更新?
因为比如当前batch是由当前的编码器得到的,而之前的key都是由不同时刻的编码器去抽取得到的特征,就导致编码器不一致了
当选择一个较大动量m的时候,θk的更新就很大权重由上一时刻的θk-1更新而来,更新速度就比较慢了,从而保证了字典里的key都是由相似的编码器抽取得到的,尽最大可能保证了一致性
假如我们的min-batch=1,所有的key,k1,k2,k3...都是由不同的编码器产生的,这样快速改变的编码器就会降低key之间的一致性
因此MOCO构建一个又大又一致的字典,从而无监督去学习得到一个视觉表征
缺点1.假设batch为三,第一轮是顺序抽样,都是由不同时刻query更新得到的特征去更新memory bank
缺点2.每一轮epoch中,采样不同,不同时刻
因此一致性非常的差
3.1 OVERVIEW OF DECLIP
如图4(b)所示,我们的DeCLIP有三个额外的监控信号。
我们首先使用现有方法在其模式内利用图像和文本自我监督(SS)。对于图像SS,我们采用了简单而有效的SimSiam。目标是最大化两个增强图像特征之间的相似性。对于文本SS,我们采用了MLM。
虽然SS只关注单一模式,但我们进一步提出了跨模式多视图监控(MVS)。我们对图像和文本应用随机数据增强,得到每个示例的两个相关视图1。然后,计算所有2×2对的图像-文本对比损失。值得一提的是,原始CLIP没有使用文本增强,仅使用随机平方裁剪图像增强,因此需要大量数据。这种延伸是本能和直接的。具体来说,我们对比了2×2对,从而增加了3×更多的监督。
我们还提出了在嵌入空间中挖掘的新的最近邻监督(NNS),以更好地利用数据集中的相似文本描述。具体来说,我们维护了一个先进先出的特征队列,它代表了整个数据分布。我们在嵌入空间中使用最近邻搜索来获得语义相似的文本描述。然后,我们使用图像文本对比损失来获得额外的监督。
3.2 SUPERVISION EXISTS EVERYWHERE
3.2.1 Self-Supervision within each modality
在SimSiam之后的每个模式中的自我监督,我们首先对每个图像有两个增强视图(xI,x~I)。这两个视图被发送到图像编码器(权重在视图之间共享)。我们还使用了推广的非线性预测模块(通常为2层MLP),以提高编码器中的表示质量得到pl。目标是最大限度地提高 x~I和pI之间的相似性,计算为负余弦相似性。为了避免琐碎的“崩溃”解决方案,我们遵循采用停止梯度技术。
如图5(b)所示,我们遵循BERT中的方法进行文本自我监督。具体来说,我们首先在每个序列中随机选择15%的令牌。然后将令牌替换为(1)80%时间的[掩码]令牌(2)10%时间的随机令牌(3)10%时间的未更改令牌。然后,使用相应令牌的语言模块的输出预测具有交叉熵损失的原始令牌
3.2.2 Multi-View Supervision
CLIP作者仅将原始文本与原始图像的单个“全局视图”进行对比。然而,图像的文本注释可能不会描述整个图片,而是描述该图像的一个小局部视图。
例如,如图4中文本为“可爱的白猫”的图像所示,中心概念(cat)仅占据图片的一小部分。
为了缓解这种差异,我们仔细观察了局部区域,并将其用作辅助监督,如图4(b)中的增强视图所示。这种直观的想法类似于图像SSL中成功的多作物转换(Caron等人,2020;Van Gansbeke等人,2021)。我们进一步将其扩展到作为ICLR 2022会议论文发布的多模式5。更具体地说,我们重用SS中引入的两个图像视图,其中包含RandomResizedCrop策略,以获得较小的局部视图。
对于文本,由于我们的目标是理解句子的整体语义,我们采用文本分类增强EDA来生成两个文本视图。
3.2.3 Nearest-Neighbor Supervision
如图3所示,一幅图像可能在数据集中有其他类似的文本描述。我们建议使用最近邻(NN)来获得更多样化的监督。更正式地说,我们的目标是在embedding space中找到文本特征zT的NN特征zt0。两个特征之间的距离可以通过简单的余弦相似性来测量。搜索NN是不可行的在整个百万规模的数据集中。因此,我们维护FIFO队列Q来模拟整个数据分布。在我们的实现中,Q的大小是64K。如图6所示,我们进一步得到了(zI,zT0)之间的对比损失。由于有两个增强的图像特征,我们还计算了(zɧI,zT0)之间的对比损失。