专栏名称: FightingCV
一个专注于分享计算机视觉、多模态机器学习方向前沿论文,解答常见科研问题,分享好用科研工具的公众号。努力努力再努力,瑞思拜!
目录
相关文章推荐
搜猪  ·  生猪现货日报|全国均价14.78元/公斤 ... ·  10 小时前  
51好读  ›  专栏  ›  FightingCV

ProtoCLIP:原型对比语言图像预训练

FightingCV  · 公众号  ·  · 2024-11-26 10:13

正文

摘要

对比语言图像预训练 (CLIP) 已经受到了广泛关注,因为它学习到的表征可以很好地迁移到各种下游任务中。 在 CLIP 模型的训练过程中,InfoNCE 目标函数对齐正样本图像-文本对,并分离负样本对。 我们展示了在此过程中潜在的表征分组效应:InfoNCE 目标函数通过随机出现的模态内锚点间接地将语义相似的表征分组在一起。 基于此理解,本文介绍了 原型 对比 语言 图像 预训练 (ProtoCLIP) 来增强这种分组,提高其效率并增强其对模态差距的鲁棒性。 具体来说,ProtoCLIP 在图像和文本空间之间建立了原型级别的判别,有效地迁移了更高层次的结构知识。 此外,提出了 原型 反向 翻译 (PBT) 来将表征分组与表征对齐解耦,从而在较大的模态差距下有效学习有意义的表征。 PBT 还使我们能够引入具有更丰富先验语言知识的额外外部教师。 ProtoCLIP 使用在线片段训练策略进行训练,这使得它可以扩展到无限量的数据。 我们在 Conceptual Captions 数据集上训练了我们的 ProtoCLIP,并实现了 +5.81% 的 ImageNet 线性探测改进和 +2.01% 的 ImageNet 零样本分类改进。 在更大的 YFCC-15M 数据集上,ProtoCLIP 在训练时间减少 33% 的情况下与 CLIP 的性能相匹配。

索引词:

视觉语言预训练,对比学习,自监督学习,多模态表征学习,K 均值聚类

I 引言

对比语言图像预训练 (CLIP) [1] 在从互联网收集的大规模图像-文本对中学习表征方面取得了令人印象深刻的性能。 它在预训练过程中优化了信息噪声对比估计 (InfoNCE) 目标 [2] ,但这种简单的目标如何得出有意义的图像-文本表示尚未得到充分研究。 直观地说,InfoNCE 目标创建了一个联合表示空间,其中成对的图像-文本表示被推近,不成对的表示被拉远。 此属性可称为 表示对齐 然而,仅满足这一点不足以获得完美的下游性能。 例如,图像-文本表示可以完美对齐 [3] ,同时随机分布。 在这种情况下,InfoNCE 目标仍然可以达到最小值,但下游性能会很差 [4]

图 1: 一维空间中表示分组的图示。 每个“ ”代表图像-图像 (a) 或图像-文本表示 (b)-(d) 对。

这种矛盾促使我们寻求对 CLIP 学习过程超越表示对齐的新理解。 我们发现最近的“增强重叠” [4] 理论对此特别有启发意义。 如图 1 (a) 所示,在对比视觉预训练(例如,SimCLR [5] )中,会随机应用积极的图像增强以生成不同的视图。 “增强重叠” [4] 理论表明,在这个过程中会出现难以区分的视图对(例如,两辆不同汽车的车轮,用绿色虚线框标注)。 当 InfoNCE 目标将不同的视图对齐在一起时,这些重叠的增强将把类内样本组合在一起(如绿色箭头所示)。 通过将不同的模态视为不同的视图,我们可以自然地将上述理论扩展到多模态设置。 如图 1 (b) 所示,现在图像-文本对的内在联系与图像增强起着类似的作用。 模态内部紧密配对(绿色虚线框标注)将会出现,并作为“锚点”来对另一模态中的对应表示进行分组。 例如,强大的视觉特征(例如,从不同角度识别猫)可以通过文本标题对中“猫”一词的共现来学习。

InfoNCE 的这种 表示分组 已被证明是有效的,但我们新的“锚点分组”理解揭示了它的两个主要弱点。 首先 ,分组是以一种 间接 的方式进行的,锚点很容易被不成熟的另一模态的“反应”拉开。 当图 1 (b)中的文本锚点将两张猫的图像推到一起(即,如预期的那样学习鲁棒的视觉表示,如图 1 (c)中的绿色箭头所示)时,这些不成熟的图像表示之间的较大距离会将文本锚点分开(例如,学习区分“图片”和“图像”这两个词,如图 1 (c)中的红色箭头所示)。 这种“反应”导致有效的锚点数减少,并产生较少的分组表示。 其次 ,随着模态差距的增大,锚点变得信息量减少。 模态差距 [6, 7] 定义为图像和文本空间中平均表示之间的范围。 如图 1 (d)所示,当两个表示空间没有整体对齐时,InfoNCE 目标将主要关注于对齐它们以最小化模态差距,而不是通过锚点分组来学习有意义的表示,因为较大的差距会淹没每个模态内的关系信息。 知识蒸馏领域 [8] 中已经很好地探讨了类似的问题,研究人员发现“绝对教师”对于表示空间转换(模态差距的单模态版本)并不鲁棒,并且会产生次优性能 [9] 不幸的是,在 CLIP 训练开始时,由于 CLIP 的两个编码器的独立初始化以及非线性深度神经网络固有的“锥形效应” [6] ,极有可能出现较大的模态差距。

我们提出了 Proto C ontrastive L anguage I mage P retraining (ProtoCLIP),它通过在图像文本空间上构建和动态更新原型,将实例级判别提升到原型级判别。 如图 2 所示,分配给同一原型的样本具有共享的语义,我们使用这些原型来 直接 监督另一模态。 这将带来更丰富的监督信号和更有效的表示分组。 原型监督相对更稳定,因为这些原型没有被拉开的风险。

对于模态差距,我们进一步引入了一种简单而有效的 P rototype B ack T ranslation (PBT) 技术,以将表示分组与表示对齐解耦。 PBT 计算分配给共享原型的样本的模态内质心,然后将这些表示分组到质心。 使用 PBT,表示对齐不再是有效学习表示分组的先决条件。 基于从未对齐空间学习表示的能力,我们可以进一步引入具有更丰富先验知识的外部教师(例如,预训练的 RoBERTa [10] )。

图 2: :ProtoCLIP 识别的图像和文本原型。 每个原型代表一个高级语义单元。 :分配给相应原型的样本,它们与原型具有相似的语义。

此外,我们提出了对以前基于聚类的预训练方法的两个改进。 首先 ,DeepCluster [11, 12] 、SeLa [13] 、PCL [14] 、XDC [15] 、SeLaVi [16] 和 MCN [17] 在每个训练时期或几个连续的时期后更新聚类。 这种训练策略在中等规模的 ImageNet [18] 上可以很好地工作,但由于聚类更新频率低,因此无法扩展到更大的数据集(例如,YFCC [19] )。 为了更有效地训练 ProtoCLIP,我们设计了一种在线情景训练策略,这使得 ProtoCLIP 的训练可以扩展到无限量的数据。 其次 ,以前的工作 [11, 13, 15, 16, 14, 20] 学习单热伪标签作为硬目标,这忽略了聚类之间的结构关系。 例如,虽然“猫”和“虎”样本可能属于不同的聚类,但它们之间的距离应该比“猫”和“车”之间的距离更近。 为此,我们使用 softmax 将硬聚类分配转换为概率分数,以有效地转移这种关系知识。 总体而言,我们在本文中的主要贡献总结如下:

  • 我们提出了具有原型级别判别的 ProtoCLIP,它能够在大型视觉语言预训练中更有效地进行表示分组。 原型充当稳定的锚点,将语义相似的样本的表示分组在一起。

  • 我们设计了PBT将跨模态原型转换为模内质心。 PBT使ProtoCLIP能够学习未对齐空间之间的有意义的表示。 通过PBT,我们进一步引入了预训练的RoBERTa作为外部教师,以获得更丰富的监督。

  • 我们对之前的基于聚类的预训练方法提出了两项改进:1) 一种在线情景训练策略,可以提高聚类更新频率;2) 使用基于概率的软目标,可以转移结构关系知识。

  • Conceptual Captions 3M的实验结果表明,在ImagNet线性探测和零样本分类方面,ProtoCLIP分别比CLIP提高了+5.81%和+2.01%。 在更大的YFCC数据集上,ProtoCLIP以33%的训练时间成本匹配了CLIP的性能。 代码可在https://github.com/megvii-research/protoclip获取。

相关工作

二-A 视觉语言预训练。

最近的研究利用从大规模网络爬取的图像-文本数据中学习多模态表示,并显示出令人鼓舞的结果。 训练数据的数量可以扩展到数亿甚至数十亿个样本,这提供了强大的正则化作用,可以防止过拟合,并使模型能够学习开放词汇的视觉概念。 VLP模型可以分为单流和双流:

单流模型 [21, 22, 23, 24, 25] 基于注意力机制的优势 [26] 融合图像和文本,擅长多模态融合和理解,在视觉问答(VQA)和图像字幕等多模态高级任务中取得了令人印象深刻的性能。 不幸的是,单流模型的可迁移性较弱,因为它们没有可以迁移到单模态任务的独立编码器。

双流模型 建立了两个独立的编码器来对齐视觉和文本表示。 尽管该方法非常简单,但开创性工作 [1] 在结合海量训练数据和大型视觉Transformer [27] 时,取得了显著的成功。 一些后续工作从表示对齐的角度改进了CLIP。 例如,FILIP [28] 引入了更细粒度的表示对齐来增强多模态交互。 CLOOB [29] 引入了Hopfield网络来改进特征关联和共现的学习。 最近的研究重点是提高学习效率,因为CLIP训练成本很高。 为了提高学习效率,EfficientCLIP [30] 和SLIP [31] 分别将BERT [32] 风格和SimCLR [5] 风格的单模态自监督与CLIP结合。 DeCLIP [33] 进一步整合了多视图监督和最近邻监督。 RemoteCLIP [34] 将CLIP应用于遥感领域。

II-B 自监督视觉表示学习。

自监督学习(SSL) [35] 旨在无需人工监督的情况下学习有意义的表示。 早期SSL工作重点是探索预训练任务 [36] 在SimCLR [5] 证明了实例判别任务的有效性之后,对比学习成为主流。 SimCLR对齐不同数据增强的表示,这会创建 [4] 中所述的增强重叠,从而将类内样本分组在一起。 不幸的是,SimCLR依赖于极大的批量大小才能获得足够的负样本。 为解决这个问题,MoCo [37] 引入了动量对比,而BYOL [38] 和SimSiam [39] 则表明,无需负样本即可学习表示。 尽管这些工作有效地改进了自监督学习(SSL)学习的表示,但它们都存在一个根本性的弱点,即模型仅被鼓励学习增强不变的表示,而忽略了更高层次的语义关系。 基于最近邻的方法,例如NNCLR [40] 和MYOL [41] ,引入了更丰富的监督信号,但正样本对的方差仍然有限。

II-C 基于聚类的自监督学习。

自监督学习中一个很有前景的研究方向是基于聚类的方法。 DeepCluster [11] 和SeLa [13] 使用 K -Means或Sinkhorn Knopp算法分配伪标签,然后使用这些标签来监督模型训练。 SwAv [12] 对比了同一图像不同增强之间的聚类分配。 SwAV的聚类以在线方式进行,但它强制要求每个聚类的尺寸相等。 PCL [14] 和SCCL [20] 将聚类级对比与实例级对比相结合,并分别证明了其在图像SSL和文本SSL中的有效性。 在原型图对比学习(PGCL) [42] 中,引入了原型级对比学习用于图数据的SSL。 [43] 中,提出了元原型学习以改进少样本图像识别。

基于聚类的多模态数据学习是一个新兴课题。 XDC [15] 和SeLaVi [16] 分别将DeepCluster [11] 和SeLa扩展到音频-视觉预训练 [13] XDC [15] 还对不同类型的监督(即单模态与多模态融合与跨模态)进行了广泛的比较。 他们发现所有这些方法都是有效的,并且当模型纯粹由相反的模态监督时,学习效果最佳。 受XDC启发,ProtoCLIP也以跨模态的方式创建跨模态监督。 我们通过实验证明,基于多模态融合的监督(即CDC [15] )会导致VLP性能显著下降。 初始随机文本表示的密度远高于图像表示的密度,这使得它主导伪标签生成,并且无法从图像表示中学习有用的知识。

ProtoCLIP与XDC [15] 有一些相似之处,因为它们都利用相反模态中的聚类作为监督。 然而,ProtoCLIP的目标是VLP,而不是仅需要表示分组的音频-视觉预训练——在VLP场景中,对于零样本分类和跨模态检索,也应该考虑表示对齐。 此外,与XDC的纯VLP版本相比,ProtoCLIP包含几个新颖的设计,包括PBT、情景训练、可学习温度和软目标的使用。

III 方法

III-A 原型对比语言图像预训练

让我们首先回顾一下原始CLIP [1] 使用的InfoNCE目标。 CLIP使用一个大型图像文本数据集 𝒟 = { ( x i I , x i T ) } i = 1 M 进行训练,该数据集包含总共 M 个训练样本。 目标是学习一个图像编码器 f I 和一个文本编码器 f T ,它们分别将 x i I x i T 编码到它们的潜在表示,即 f I ( x i I ) = z i I d z × 1 f T ( x i T ) = z i T d z × 1 学习到的表示应满足两个要求:表示对齐和表示分组:

表示对齐 是指成对图像和文本样本 z i I z i T 的高相似度 x i I , x i T ,以及不成对样本 z i I z j T ( i j ) 之间的低相似度 x i I , x j T 通常,完美的表示对齐会在跨模态检索任务上产生强大的下游性能。

表示分组 意味着语义相似的样本的表示被分组在一起,而不相似的样本的表示应该被分开。 完美的表示分组产生了强大的线性分类性能。

在同时满足完美的表示对齐和表示分组的同时,结合包含足够开放集概念的大型数据集,模型可以实现强大的零样本分类性能。 为实现此目标,CLIP 在每个批次中创建一个实例判别任务,并优化以下双向 InfoNCE 目标 [2] 以最大化配对图像和文本之间的互信息 [44]

其中, N 是批次大小, τ CLIP 是温度参数。 遵循 CLIP 论文,我们将其设置为可学习参数。 如第 I 节所示,表示分组是通过 InfoNCE 目标 间接 完成的。 在这里,我们希望通过 直接 进行表示分组来提高效率。 我们通过构建和更新原型将实例级判别提升到原型级判别。 原型是一组语义相似实例的表示 [14] 我们通过提出的原型损失 Proto 直接推动原型的表示进行分组。

ProtoCLIP 架构的示意图如图 3 所示。 为了获取原型,我们分别在 z i I z i T 之上应用 MLP 投影头 g I g T ,然后我们得到投影表示 g I ( z i I ) = h i I d h × 1 g T ( z i T ) = h i T d h × 1 原型是在投影表示空间( h i I h i T )中构建的,而不是在原始表示空间( z i I z i T )中构建的。 这样做有两个原因。 First, we want ProtoCLIP to hold the instance-level discrimination ability of CLIP by keeping the CLIP , so prototypical-level discrimination should be done elsewhere otherwise it will cause conflicts between CLIP and Proto . 其次,MLP 投影头 g I g T 可以将表示投影到低维空间(即 d h < d z ),从而可以显著降低构建原型的成本。

我们采用 K 均值聚类,因为它简单且可扩展。 此处也可以使用其他聚类方法。 具体来说,我们找到最小化以下 K 均值目标的原型 C I K × d h = [ c 1 I , c 2 I , , c K I ] C T K × d h = [ c 1 T , c 2 T , , c K T ]

图3: ProtoCLIP模型架构。 我们在实例级判别之上建立原型级判别。 我们使用投影头 g I g T 后的表示来构建原型。 原型用于指导相反模态的学习。 引入外部教师 E 以获得更丰富的监督,这将在第 III-C 节中详细介绍。

请注意,此过程是在分离的表示上进行的,因此网络不会接收任何梯度。 K 均值聚类之后,可以根据其表示与每个原型之间的接近程度,为每个样本生成伪标签(或聚类分配)。 先前的基于聚类的音频-视觉预训练方法XDC [15] 比较了不同类型的监督,并发现当模型完全由相反模态监督时,学习效果最佳。 受XDC启发,ProtoCLIP以跨模态的方式创建原型监督:我们使用相反模态中的原型来指导表示学习。 我们经验性地发现,基于多模态融合的监督(即CDC [15] )会使VLP的性能显著下降。 初始随机文本表示的密度远高于图像表示的密度,这使得它主导了伪标签的生成,并且无法从图像表示中学习有用的知识。 此外,DeepCluster [11] 和XDC [15] 等先前的方法会生成类索引,并使用交叉熵损失训练额外的参数分类器,这通常在传统的监督训练中进行。 然而,由于两个连续聚类分配之间没有映射关系,这种方法需要频繁地重新初始化分类器,这会中断训练过程。 相反,我们直接使用原型作为线性分类器 [12, 14] 如公式 3 所示,我们通过将原型分类器应用于跨模态表示来计算分类分数

S i T k × 1 S i I k × 1 ,然后通过softmax将分数归一化为概率:

其中 τ Proto 是温度超参数。 与DeepCluster-v2 [12] 中设置固定温度不同,我们将其设置为可学习参数,如 CLIP 所示,因为它产生了改进的结果。 现在,我们可以通过应用交叉熵损失函数得到 Proto

III-B 从软目标学习

在公式 4 中, y i T k × 1 y i I k × 1 是k路伪目标分数。 以前的基于聚类的方法 [11, 13, 14, 15, 16] 将类索引转换为作为目标的独热向量。 这种独热目标创建了一个一对多学习任务:表示 被推向其分配的原型,并 同样 被推离其他原型。 为了学习更结构化的知识,我们使用基于概率的软目标来替换硬独热分配:

公式 5 中的分数是通过测量“真实”原型 c k I , c k T 和所有原型 C I , C T 之间的点积相似度来计算的。 “真实”原型与其自身具有最高的相似度(例如,“猫”和“猫”),与其相邻原型具有相对较高的相似度(例如,“猫”和“老虎”),并且与较远原型具有较低的相似度(例如,“猫”和“汽车”)。 当这种关系知识嵌入到目标 y k I , y k T 中时,ProtoCLIP可以学习更结构化的知识。 最后,ProtoCLIP被训练以联合最小化 Proto CLIP

III-C 从未对齐空间学习表示分组

我们在图 4 (a)和(b)中比较了 CLIP Proto 之间的差异。 虽然 Proto 提高了表示分组效率,但它仍然存在 模态差异 问题。 在图 4 (b)中,为了将学生空间中的所有三个数据点与教师空间中的原型对齐,这三个数据点将被推到右侧。

图4: 使用PBT比较 CLIP Proto Proto 我们的PBT根据原型分配将跨模态原型( C T )转换为模内质心( C PBT I T )。 由于这两种损失在图像和文本空间之间都是双向的,因此我们在这里只可视化从文本(作为教师)到图像(作为学生)的监督。

III-C 1 原型回译 (PBT)

模态差异问题的核心原因是 Proto 强制学生表示严格锚定在教师空间中其原型的位 置。 我们引入了一种简单而有效的技术,称为原型回译 (PBT),以避免此问题。 如图 4 (c)所示,对于教师空间中的每个原型,我们检索所有分配给它的样本,然后计算学生空间中相应表示的质心。 我们将获得的图像和文本质心表示为 C PBT I T C PBT T I ,并在计算 Proto 时使用它们替换原始原型 C T C I 具体来说, C PBT I T 的计算涉及以下两个步骤:

  1. 1.

    C T 每个 c k T 检索分配的图像样本 k :对于 C T 每个原型 c k T ,识别分配给该原型的图像样本集 k

  2. 2.

    计算 k 的质心 c PBT I , k T :计算学生图像空间中分配的图像样本 k 表示的质心 c PBT I , k T 质心计算为各个表示的平均值:

这里, h i I 表示图像样本 i 的投影表示。 此质心 c PBT I , k T 用作计算原型损失 Proto 中原始原型 c k T 的替代。 文本空间中 C PBT T I 的计算步骤类似。

PBT能够在未对齐的表示空间之间进行知识转移,因为学生表示直接分组到其模态内的质心,而不是被推向其跨模态原型。 我们注意到, Proto + PBT 相比于普通的 Proto 的优势类似于关系知识蒸馏 (RKD) [45, 9] 相比于传统知识蒸馏 (KD) [8] 的优势。 但是,RKD以每样本对的方式转移关系知识,而PBT通过具有更高语义层次的原型转移知识。 此外,PBT与用于图像文本检索的RACG模型 [46] 有一些相似之处,该模型还明确地从模态间表示关系中学习细粒度的语义对应关系。

III-C 2 从外部教师学习

由于表示分组与表示对齐解耦,我们现在可以集成多个教师来指导学生表示的学习。 例如,除了图像和文本空间之间最初的相互知识转移外,我们还可以进一步引入外部教师编码器 E ,以将更丰富的知识蒸馏到ProtoCLIP中。 如图 3 所示,编码器 E 可以编码图像 x i I 或文本 x i T ,然后可以通过执行 K -Means聚类(如前所述)在生成的表示空间中构建外部原型 C external 我们使用PBT将原型 C external 转换为模态内的质心 C PBT I external C PBT T external ,然后可以通过应用获得的原型分类器,取softmax,然后以类似的方式计算交叉熵损失来添加额外的损失项 Proto external

其中 p i I , external p i T , external 是通过将原型分类器应用于投影图像和文本表示而获得的分数,而 y i external 表示原型分配的“真实值”。 在实践中,我们使用预训练的 RoBERTa large 作为外部教师编码器 E 。在训练期间, E 的权重被冻结,以便我们可以使用一个 epoch 的前向传递来缓存教师特征以降低计算成本。 使用外部教师,ProtoCLIP 的损失函数变为:

III-D 集成训练

以前基于聚类的 [11, 13, 14, 15, 16, 17] 方法在整个训练 epoch 之后更新聚类。 这种方法在中等规模的 ImageNet [18] 数据集上效果很好,因为模型可以训练数百个 epoch,从而导致数百次聚类更新。 但是,CLIP 通常训练的 epoch 数量要少得多(例如,32 [47] ),这使得 epoch 级的更新频率不足。 我们提出了一种 集成训练 策略。 集成 是通过从整个数据集中随机选择 m M 个样本构建的。 然后,依次执行 1)特征提取、2)原型更新和 3)模型训练,然后构建一个新的集成。 集成训练使原型更新频率与数据集大小 M 无关,从而使 ProtoCLIP 能够扩展到无限量的训练数据。 为了使用传统训练的其他模型对基于集成训练的 ProtoCLIP 进行基准测试,集成的总数 n episode 定义为 n episode = n epoch × M m 集成大小 m 是一个重要的超参数。 更小的 m 会导致更高的原型更新频率,但太小的 m 会增加一个集成内表示的稀疏性。 在这种情况下,分配给相同原型的样本可能具有不同的语义,这会降低原型的可靠性。

IV 实验

IV-A 实现细节

IV-A 1 模型架构

遵循CLIP [1] ,我们使用改进的ResNet-50骨干网络作为图像编码器,与原始ResNet-50 [48, Li2022Survey] 相比,它有三个不同之处:1)使用三个3 × 3卷积作为“stem”而不是单个7 × 7卷积 [49] ,“stem”之后进行平均池化而不是最大池化;2)改进的ResNet-50执行抗锯齿rect-2模糊池化 [50] ;3)最终的全局平均池化层被基于多头自注意力 [26, 1] 的池化所取代。 我们使用Transformer [26, 1] 作为文本编码器,它包含12层、8个注意力头,宽度为512。 最大序列长度设置为76。 对于图像和文本投影头,我们使用与SwAV [12] 相同的架构,这是一个具有ReLU激活函数、2048个隐藏单元和128个输出单元的2层MLP。 其他超参数总结在表 I 中。

IV-A 2 训练配置

ProtoCLIP是在基于PyTorch的OpenCLIP [51] 代码库上实现的。 我们采用自动混合精度 [52] 来降低训练成本。 与CLIP [1] 相同,我们使用带有解耦权重衰减正则化的Adam优化器 [53] [54] 梯度裁剪的最大范数为1e5,以防止模型崩溃。 可学习温度 ( τ CLIP , τ Proto ) 初始化为 0.07,并根据 CLIP [1] 进行裁剪,最大值为 100。 这些温度不应用权重衰减。 采用预热和余弦学习率调度器 [55] 与 XDC [15] 一样,我们采用提前停止来防止过拟合。 在 32 个 epochs 中的第 16 个 epoch 时,图像编码器的学习率降为零,然后对剩余的 16 个 epochs 执行锁定图像调优 [56]

IV-A 3 原型构建

我们采用 Faiss [57] 实现的 K -Means 进行聚类。 我们将每个 episode 中 200,000 个样本的 128 维投影表示(即 h I , h T )聚类到 K =20,000 个聚类中,并使用生成的聚类中心作为原型。 K -Means 优化迭代次数为 20 次,我们发现这足以收敛。 我们使用预训练的 RoBERTa large 1 作为外部教师。 我们离线提取 RoBERTa large 表示以加快 ProtoCLIP 训练速度,并通过 PCA 将表示维度从 1024 降到 64 以节省内存成本。

表 I: ProtoCLIP 超参数。
Section Hyperparameter Value
Episodic Training Batch size 512
Episode size 200,000
Warm-up Episodes 40
Prototype Construction Number of clusters in K -Means 20,000
K -means Iterations 20
Optimization Optimizer Adam
Adam β 1 , β 2 , ϵ 0.9, 0.999, 1e-8
Learning Rate 5e-4, cosine decay
Weight decay 0.5
Maximum gradient norm 1e5
Model Architectures Image Encoder ResNet-50/ResNet-101
Image Resolution 224 × 224
Text Encoder Transformer
Text vocabulary size 49408
Initial and maximum temperature ( τ CLIP , τ Proto ) 0.07, 100
Representation dimension ( d z ) 1024
Projected Representation dimension ( d h ) 128
External Teacher RoBERTa large


IV-B 预训练数据

IV-B 1 概念字幕

[58] 它是一个从网络收集的高质量图像文本数据集,包含3,318,333个样本对。 该数据集于2018年由谷歌公开发布 2 不幸的是,由于图像链接过期,可访问的图像数量持续下降。 视觉语言预训练领域的一些最新工作 [29, 33, 51] 也指出了这个问题。 在这项工作中,由于我们只能收集到2,643,718张图像,我们从中随机抽取了2,500,000个子集(完整CC3M的75%)来训练我们的ProtoCLIP。 考虑到概念字幕中图像链接的可访问性下降,我们呼吁在未来的基准测试中使用此数据集大小(250万),以提高可比性。

IV-B 2 YFCC

它通过过滤YFCC100M [19] 来创建,过滤条件是包含英文自然语言描述和/或标题的图像。 我们使用了OpenAI [1] 过滤后的“YFCC15M-v1”。 由于链接中断,我们从总共1500万个样本中获得了大约1400万个样本,并使用其中的14,000,000个样本训练ProtoCLIP。

IV-B 3 数据增强

近期视觉语言预训练(VLP) [31, 33, 28] 方面的进展表明,应用随机数据增强可能是有益的。 然而,我们发现图像自监督学习(SSL)中常用的数据增强策略在VLP场景中过于激进。 如图 5 所示,标准 SimCLR [5] 增强在应用于 Conceptual Captions 数据集的非标志性图像时,更改语义的机会更高 3 . 这种语义不一致性给图像文本表示对齐带来了额外的困难。 为此,我们设计了一种更轻量级的数据增强方法来训练ProtoCLIP,对SimCLR增强参数进行了两处修改:1)图像随机调整大小和裁剪,比例范围为50%到100%,而不是8%到100%;2)应用颜色抖动的概率从0.8降低到0.2。 如图 5 所示,这种数据增强比SimCLR增强保持了更高的语义一致性。

我们注意到,通过应用随机数据增强,我们提出的情景训练策略和PBT可以隐式地为图像表示创建额外的对比监督。 回想一下,情景训练包括三个步骤:1)特征提取,2)原型构建,和3)模型训练。 由于第一步和第三步是独立进行的,因此不同的增强会被提取并应用于同一图像。 在模型训练步骤中,图像的表示被推向在特征提取步骤中构建的其另一个视图的指定和转换后的质心,从而产生额外的对比监督。

这种隐式对比与SwAV和DeepCluster-v2有一些相似之处,它们通过“对比聚类分配” [12] 来学习视觉表示。 然而,它们使用聚类分配来建立模态内的监督,而ProtoCLIP的隐式对比是通过文本表示空间完成的。 最近的SLIP [31] 和DeCLIP [33] 也应用了基于数据增强的对比来提高VLP性能。 然而,它们通过在每个训练步骤中向前传递图像的额外视图来显式地对比图像表示,这导致内存占用显着增加,并且最大允许批量大小减小。 4 在我们的ProtoCLIP中,在特征提取和模型训练期间分别构建了用于隐式对比的两种视图。 尽管这会导致额外的耗时,但最大允许的批次大小不受影响。

图5: 不同数据增强的可视化。 在Conceptual Captions中,ProtoCLIP增强保持了非图标图像更高的语义一致性。

IV-C 评估指标

IV-C 1 零样本分类

我们使用图像和文本编码器提取的1024维L2归一化表示(即 z I , z T )进行零样本分类。 类别名称和提示模板与CLIP [1] 一致,尽管对某些类别进行了一些小的解释,例如,添加了“风筝” “风筝(猛禽)”,遵循CLOOB [29] 总共采用了14个数据集:包括ImageNet [18] 、DTD [62] 、Food101 [63] 、Oxford-IIIT Pet [64] 、RenderedSST2 [1] 、Birdsnap [65] 、Country211 [1] 、Flowers102 [66] 、GTSRB [67] 、UCF101 [68] 、Stanford Cars [69] 、CIFAR10、CIFAR100和STL10,其详细信息总结在表 II 中。 与Conceptual Captions数据集类似,Birdsnap数据集也面临链接失效的问题。 与CLIP [1] 和CLOOB [29] 相同,我们使用撰写本文时可在线获取的资源。

表II: 用于零样本分类评估的数据集。
Dataset Classes Testset Size Description
ImageNet 1,000 50,000 1000 categories of objects
DTD 47 1,880 47 categories of texture patches
Food101 101 25,250 101 categories of food dishes
Oxford-IIIT Pet 37 3,669 37 breeds of cats and dogs
RenderedSST2 2 1,821 2 classes of positive or negative movie reviews rendered as text
Birdsnap 500 1,855 500 categories of North American bird species
Country211 211 21,100 211 countries represented by geo-tagged images
Flowers102 102 6,149 102 species of common UK flowers
GTSRB 43 12,630 43 categories of German traffic signs
UCF101 101 11,213 101 categories of human actions using the middle frame of each clip
Stanford Cars 196 8,041 196 categories of cars (make, model, and year)
CIFAR10 10 10,000 10 categories of animals and vehicles
CIFAR100 100 10,000 100 categories of animals, vehicles, plants, objects, scenes, people
STL10 10 8,000 10 categories of animals and vehicles

IV-C 2 线性探测

归一化之前的1024维冻结图像表示( z I )用于线性探测。 对于小型CIFAR10、CIFAR100和STL10数据集,我们使用scikit-learn的L-BFGS实现训练了一个逻辑回归分类器,迭代次数最多为1000次,遵循CLIP [1] 对于更大的ImageNet数据集,我们遵循MoCo [37] 、SwAV [12] 和SLIP [31] 采用基于PyTorch的SGD优化,以利用GPU效率。 具体来说,我们使用批量大小为256、学习率为0.3和权重衰减为1e-6的线性分类器训练100个epoch。 应用具有0.9动量的SGD优化器和余弦学习率调度器。

IV-C 3 K-NN分类

遵循DINO [70] ,我们应用K-NN分类来评估图像表示的质量。 我们基于训练集表示构建K-NN分类器,然后测量测试集上的top-1分类精度。 与线性探测相比,K-NN对超参数不太敏感,我们对所有数据集都设置K=20 [70]

IV-C 4 图像-文本检索

图像-文本检索任务包括图像到文本检索和文本到图像检索。 性能在零样本设置(即,无需微调)下在MS-COCO [71] 基准上进行评估。 使用L2归一化后的1024维图像和文本表示的点相似度( z I , z T )进行排序。 我们报告了recall@1、recall@5和recall@10以及它们的平均值(平均召回率)。

IV-C 5 目标检测

图像编码器被迁移用于执行目标检测。 我们采用了Mask R-CNN检测器 [72] ,并在MS-COCO数据集上对预训练编码器进行了12轮微调,遵循DenseCLIP [73]

IV-D ProtoCLIP超参数消融研究

本节验证了ProtoCLIP超参数的影响。 使用了Conceptual Captions (CC) [58] 数据集的百万级子集。 为了避免测试集超参数微调,这里采用CIFAR10、CIFAR100和STL10数据集进行验证。 其他下游数据集的基准测试将在 IV-E 节和 IV-F 节中报告。这里的总训练量(episode size × n episode )设置为相当于20个epochs。 ProtoCLIP的默认设置包括episode size m = 0.2 M,无软目标,每个原型10张图像,无外部教师,无数据增强。 K -Means使用最大迭代次数限制为20步,我们发现这足以收敛。

IV-D 1 剧集大小

III-D 节所示,原型可靠性和更新频率之间存在权衡。 在这里,我们尝试找到一个最佳的episode大小,通过使用不同的episode大小训练ProtoCLIP(不使用 CLIP )来同时满足这两方面。 如图 6 (a)所示,episode大小为0.2M时性能最佳。 最右边的红色条形图(episode大小=1M)相当于在整个训练周期结束后更新聚类,这与之前的方法 [11, 13, 14, 15, 16, 17] 中所做的一样。 使用最佳的episode大小值,我们的分段训练策略带来了+2.86%的改进。

IV-D 2 目标温度

接下来,我们转向选择最佳的目标温度 τ y 虽然较高的 τ y 值可以迁移结构关系知识,但过大的 τ y 会使目标分数过度平滑。 6 (b)显示 τ y =0.01时性能最佳。 与之前基于聚类的SSL方法 [11, 13, 15, 16, 14, 20] 中使用的one-hot标签(hardmax,最左边的红色条形图)相比,从软目标学习带来了+1.58%的改进。

IV-D 3 每个原型的图像数量

用于ImageNet预训练的基于聚类的SSL通常将聚类的总数设置为几千个(例如,对于SwAV [12] K = 3000 )。 我们发现,对于未经整理的图像-文本数据集,应该更保守地选择这个超参数。 原因是未经整理的图像-文本数据集包含比经过整理的数据集更多的概念 [74] 降低 K 会增加每个簇内的噪声。 我们使用 Proto + CLIP 训练我们的模型。 6 (c)显示,每个原型10张图像(即,对于0.2M的episode大小, K = 20 k)产生了最佳性能。

IV-D 4 外部教师

最后,我们比较了不同的外部教师。 我们考虑预训练CLIP (ViT/B-32) [1] 的文本编码器和预训练的RoBERTa [10] 6 (d)显示,这两个外部教师都有益于ProtoCLIP,而RoBERTa带来了更大的改进。

图6: 基于Conceptual Captions 1M数据集的ProtoCLIP消融实验(20个epoch)。 我们报告了CIFAR10、CIFAR100和STL10的平均线性探测精度(%)。 详细结果见附录 IV-C

IV-E Conceptual Captions预训练

图7: CLIP的性能随着数据集大小稳定地提高。

使用选择的超参数,我们现在在完整的 CC 数据集上训练 ProtoCLIP。 原始的 CC 数据集 [58] (收集于 2018 年)包含超过 330 万个样本。 不幸的是,由于链接中断,越来越多的图像变得无法访问。 为了便于未来的基准测试,我们使用 CC 中的 2,500,000 个样本 (CC2.5M) 来训练我们的模型。 此规模远小于原始 CLIP [1] 的规模。 但是,如图 7 所示,我们使用不同大小的数据集训练 CLIP,并发现 CLIP 模型(蓝色)的下游性能随着数据集大小稳定地(接近对数地,如红色虚线所示)稳步提高。 Ilharco 等人 [51] 也证明了这一点。 因此,CC2.5M 的数据集大小已经能够准确地反映 VLP 模型的有效性。 我们继续采用 ResNet-50 [48] 和 Transformer [26] 作为图像和文本编码器。 使用单节点 4 × 2080Ti 机器,在完整的 CC2.5M 上训练 ProtoCLIP 32 个 epochs 大约需要 64 个小时。

IV-E 1 下游评估

我们在 ImageNet、CIFAR 和 STL 上进行了线性探测和零样本分类。 我们注意到,CLIP 模型通常在更多样化的下游数据集上进行评估。 然而,由于 CC 数据集无法为开放词汇视觉概念提供足够的覆盖范围 [74] ,因此在这些多样化数据集上的下游性能极低(例如, < 10 % ),不同方法之间的性能差异微乎其微,难以根据指标得出可靠的结论。 相反,当模型使用更大的 YFCC 数据集进行训练时,我们将把在多样化数据集上的综合评估留到第 IV-F 节。 此外,还报告了MS-COCO [71] 跨模态检索的平均召回率,以评估表示对齐。

IV-E 2 各组件的有效性

我们首先验证了每个ProtoCLIP组件在CC2.5M上的有效性。 我们在CC2.5M上训练ProtoCLIP 8个epochs,并将其零样本分类和线性探测性能与CLIP以及ProtoCLIP的消融实验进行比较。 报告了ImageNet上的分类准确率以及CIFAR10、CIFAR100和STL10上的平均准确率。 我们首先移除外部教师RoBERTa,然后分别消融1) PBT,2) 软目标,3) K -Means优化和4) 数据增强。 如表 III 所示,完整的ProtoCLIP总体上取得了最佳性能。 其他所有比较都产生了性能下降,这表明每个组件的有效性。 对于ImageNet线性探测精度,引入PBT带来了+1.83%的改进,而引入外部教师带来了+1.76%的改进。 所有这些ProtoCLIP的消融实验在大多数指标上都优于CLIP基线。

IV-E 3 ProtoCLIP的基准测试

接下来,我们通过在CC2.5M上训练ProtoCLIP标准的32个epochs来进行基准测试,并进一步将ProtoCLIP的epochs减半或将CLIP基线的epochs加倍,以比较训练效率。 IV 总结了主要结果。 使用相同的32个训练epochs(第2行与第3行),ProtoCLIP在ImageNet线性探测上的性能优于CLIP +5.81%,在ImageNet零样本分类上的性能优于CLIP +2.01%。 由于ProtoCLIP在训练过程中增加了额外的步骤(特征提取, k -Means聚类等),我们也通过“相对轮数”(Rel.)来报告绝对训练时间 ,以此与一个标准CLIP轮数进行比较。 比较前两行,使用67%的训练时间(ProtoCLIP 21.5 Rel. / CLIP 32.0 版本。 ),ProtoCLIP在ImageNet零样本Top-1、Top-5和线性探测方面优于CLIP,并在检索方面与CLIP的性能相当。 类似地,比较第三行和第四行(ProtoCLIP 43.1 Rel. CLIP 64.0 版本。 ),也可以得到类似的观察结果。 这些比较证明了ProtoCLIP的效率。 有趣的是,ProtoCLIP还显示出改进数据效率的潜力,即使这不是我们的主要设计目标。 使用250万数据,ProtoCLIP实现了20.39%的ImageNet零样本分类精度,略高于使用额外0.4M数据的CLIP模型(20.33%,见 [29] )的精度。 同时,ProtoCLIP的这一结果是通过使用大约2/3的训练时间实现的(ProtoCLIP 21.5 Rel. CLIP 31轮)。

表三: 基于Conceptual Captions 2.5M数据集(8个epoch)的ProtoCLIP消融实验。

Method

ImageNet
zero-shot


ImageNet
linear


CIFAR & STL
zero-shot Avg.


CIFAR & STL
linear Avg.


CLIP 9.89 41.30 38.77 67.32
ProtoCLIP 11.96 46.55 42.74 70.96
ProtoCLIP w/o RoBERTa 11.91 44.76 42.81 69.45

- w/o PBT 11.23 42.93 42.32 68.89

- w/o soft target 11.28 44.22 42.66 69.18

- w/o K -means 11.62 44.27 38.67 67.22

- w/o augmentation 11.17 44.39 38.67 68.75


表IV: Conceptual Captions预训练基准。 ”表示相应论文报告的结果。

Batch
Size
Data Epoch (Rel.) Method

ImageNet
zero-shot top-1


ImageNet
zero-shot top-5


ImageNet
linear


retrieval
mean recall


512 2.5M 16 (21.5) ProtoCLIP 20.39 40.02 50.47 36.01
32 (32.0) CLIP 19.46 38.42 49.41 36.48
32 (43.1) ProtoCLIP 21.47 40.84 55.22 35.69
64 (64.0) CLIP 20.34 39.21 51.14 37.61
512 2.9M 31 CLOOB [29] 23.97 - - -
CLIP 20.33 - - -
1024 3M 32 DeCLIP [33] 27.2 - - -
CLIP 20.6 - - -


IV-F YFCC预训练

我们在YFCC-100M [19] 子集YFCC-15M(由OpenAI [1] 过滤)上训练ProtoCLIP,该子集包含约1500万个图像-文本对。 我们使用了ResNet-50 [48] 以及更大的ResNet-101主干网络。 OpenCLIP [51] 发布的CLIP检查点(YFCC-15M,32个epoch)被用作基线。

下游性能总结在表 V 中。令人印象深刻的是,ProtoCLIP的性能与CLIP相当,预训练时间成本约为其1/3,这表明ProtoCLIP显著提高了表示学习效率。 各个数据集的零样本准确率见表 VI ,该表显示ProtoCLIP在14个数据集中的9个数据集上优于CLIP。 与线性探测相比,ProtoCLIP在K-NN分类中具有更多优势。 线性探测测量图像表示的线性可分性,而K-NN测量语义上相似的样本是否被正确聚类。 我们认为ProtoCLIP在K-NN分类中的优势源于原型对比和高效的表示分组。 IV-G 3 节中的聚类评估进一步证明了这一特性。 ProtoCLIP图像表示的质量通过目标检测的迁移学习得到证实:8个epoch(10.8 Rel.)。 ProtoCLIP 的结果与 32 个 epoch 的结果匹配(相对值 32.0) CLIP。 有趣的是,我们发现 ProtoCLIP 在检索方面取得了显著的改进,这似乎与 Conceptual Captions 预训练的观察结果相矛盾。 我们将把对这种现象的研究留待未来的工作。

表 V: YFCC 预训练结果摘要。 零样本/线性/K-NN 分类和 COCO 检索的性能比较。 “IN”:ImageNet,“14/9 Avg.”:跨数据集的平均分类准确率。 ProtoCLIP 的性能与 CLIP 相匹配,预训练时间成本约为 1/3。




Zero-shot Linear K-NN Retrieval
Arch. Model Data Epcoh (Rel.) IN 14 Avg. IN 9 Avg. IN 9 Avg. Mean Recall

CLIP 15M 32 (32.0) 32.7 31.1 61.5 65.8 56.0 57.8 40.9
RN50 ProtoCLIP 14M 8 (10.8) 32.0 31.9 62.1 65.4 56.7 58.3 42.7


-0.7 +0.8 +0.6 -0.3 +0.8 +0.5 +1.8

CLIP 15M 32 (32.0) 34.8 32.9 63.1 66.2 57.9 59.0 43.2
RN101 ProtoCLIP 14M 8 (10.8) 33.8 33.0 62.9 65.4 58.0 59.0 44.7


-1.0 +0.1 -0.2 -0.8 +0.2 +0.1 +1.5

我们在此还展示了零样本分类(表 VI )、线性探测和 K-NN 分类(表 VII )、零样本图像文本检索(表 VIII )以及 MS-COCO 目标检测(表 IX )的完整结果。 这些结果是表 VI 中的详细结果。

表 VI: 零样本分类 YFCC 预训练评估结果。

Arch. Method Data Epcoh (Rel.)

Birdsnap


CIFAR10


CIFAR100


Country211


DTD


Flowers102


Food101


GTSRB


OxfordIIITPet


RenderedSST2


StanfordCars


STL10


UCF101


ImageNet


14 Dataset Avg.


RN50 CLIP 15M 32 (32.0) 21.81 49.12 20.32 6.34 17.55 50.24 42.80 9.57 27.45 49.92 3.99 79.14 24.32 32.72 31.09
ProtoCLIP 14M 8 (10.8) 19.92 53.95 24.60 7.14 20.00 50.51 38.61 7.19 23.88 50.08 4.68 86.13 27.84 32.02 31.90




-1.88 +4.83 +4.28 +0.80 +2.45 +0.28 -4.19 -2.38 -3.57 +0.16 +0.68 +6.99 +3.52 -0.70 +0.80
RN101 CLIP (32.0) 15M 32 22.94 52.99 22.94 6.82 18.24 50.40 44.18 9.41 30.25 49.92 3.69 86.68 27.44 34.84 32.91
ProtoCLIP 14M 8 (10.8) 19.49 57.23 26.50 7.92 19.68 52.02 39.60 7.34 25.78 50.03 5.04 88.75 28.26 33.80 32.96




-3.45 +4.24 +3.56 +1.10 +1.44 +1.63 -4.58 -2.07 -4.47 +0.11 +1.34 +2.08 +0.82 -1.04 +0.05


表 VII: 线性探测和 K-NN 分类 YFCC 预训练评估结果。

Arch. Method Data Epcoh (Rel.) CIFAR10 CIFAR100 DTD Food101 OxfordIIITPet RenderedSST2 StanfordCars STL10 ImageNet 9 Dataset Avg.
Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN Linear KNN
RN50 CLIP 15M 32 (32.0) 83.65 78.31 62.41 54.11 66.60 62.13 72.82 64.02 66.50 43.12 55.96 51.84 28.26 17.52 94.16 93.34 61.54 55.96 65.77 57.82
ProtoCLIP 14M 8 (10.8) 82.84 78.07 61.28 53.95 69.73 65.69 69.62 60.13 67.10 45.52 54.48 51.46 27.67 19.67 94.16 93.28 62.13 56.72 65.45 58.28






请到「今天看啥」查看全文