赞
踩
SOTA计算机视觉系统经过训练,以预测一组固定的提前定义的目标类别。这种受限的有监督形式限制了它们的通用性和可用性,因为需要其他标签的数据来指定其他的视觉概念。直接从原始文本学习图像是一种有希望的替代方案,它利用了更广泛的有监督源。我们证明,基于从互联网爬取的4亿【图像-文本】对数据集,预测标题与哪个图像相关这一简单的预训练任务是一种有效且可扩展的方法,能够从头学习SOTA图像表示。在预训练之后,自然语言被用来作为学习的视觉概念的描述,使模型能zero-shot迁移到下游任务。我们在30多个不同计算机视觉数据集上研究了其性能,这些数据集涵盖了OCR,视频中动作识别,地理位置定位以及许多细粒度的目标分类。该模型会能转移到大部分任务,并且通常具有与有监督基线可比的性能,而无需任何特定数据集的训练。例如,我们在ImageNet zero-shot上达到了原始ResNet50的准确率,而无需在128万训练样例上进行训练。我们在https://github.com/OpenAI/CLIP上开源了代码和预训练的模型权重。
在过去的几年中,直接从原始文本中学习的预训练方法彻底改变了NLP领域。“text-to-text”作为一个标准输入-输出接口的开发,使任务无关的结构能够zero-shot迁移到下游数据集。现在,诸如GPT-3之类的代表性系统在许多具有定制模型的任务上都达到可比性能,而几乎不需要特定任务的训练数据。
这些结果表明,在网络规模的文本数据收集中,现代预训练方法可访问的总监督量超过了人工标注的高质量NLP数据集。但是,在其他领域(例如计算机视觉)中,基于人工标注的数据集(例如ImageNet)进行预训练仍然是标准操作。在计算机视觉领域直接从网络文本学习的预训练方法,也能得到相似的突破吗? 先前的工作得到了令人鼓舞的结果。
Joulin et al. (2016) 证明,经过训练以预测图像标题中的单词的CNN可以学习与ImageNet相当的表示形式。Li et al. (2017) 随后将这种方法扩展到除单个单词之外的n-gram短语上,并证明了该系统zero-shot迁移到其他图像分类数据集的能力。VirTex,ICMLM和ConVIRT采用了最新的架构和预训练方法,证明了基于transformer的语言建模,屏蔽语言建模以及从文本中学习图像表示的对比训练目标的潜力。
但是,上述模型的性能仍然低于当前的SOTA计算机视觉模型,例如Big Transfer和弱监督ResNeXt。一个主要差异是规模,银耳Mahajan et al. (2018) 和Kolesnikov et al. (2019) 采用了数百万到数十亿图像的训练,而Virtex,ICMLM和ConVIRT的训练仅在一两千张图像上训练。我们缩小了这一差距,并研究了大规模自然语言有监督训练的图像模型的行为。我们证明,ConVIRT从头开始训练的简化版本,我们称之为CLIP(Contrastive Language-Image Pre-training),是一种从自然语言有监督中学习的有效且可扩展的方法。我们发现,CLIP学会在预训练期间执行一系列任务,包括OCR,地理位置定位,动作识别和超过最好的公开可用的ImageNet模型,同时计算更高效。我们还发现,zero-shot CLIP模型比相同精度的有监督ImageNet模型更鲁棒。
我们工作的核心思想是从自然语言-图像对中有监督学习表示。在以下小节中,我们详细介绍了我们的具体方法。
现有工作主要使用了三个数据集:MS-COCO,Visual Genome和YFCC100M。虽然MS-COCO和Visual Genome是高质量的人工标注数据集,但按照现在的标准,它们却很小,每个数据集大约有100,000张训练照片。相比之下,其他计算机视觉系统在将近35亿个Instagram照片上进行训练。YFCC100M有1亿张照片,这是一种选择,但是每个图像的元数据稀疏且质量难以保证。许多图像使用自动生成的文件名(例如20160716_113957.jpg)作为“标题”或包含相机曝光设置的“描述”。在过滤仅包含具有自然语言标题和/或英语描述的图像之后,数据集缩减了6百万至1500万张照片。这与ImageNet大致相同。
自然语言有监督的主要动机是在互联网上存在公开可用的大量这种形式的数据。为了测试这一点,我们构建了一个新的4亿(图像,文本)对收集的新数据集,来自互联网上各种公开来源。为了涵盖尽可能宽的视觉概念,我们将搜索(图像,文本)对作为构建过程的一部分,其文本包括一组500,000个问题。每个问题最多包括20,000(图像,文本)对,以大致平衡类别结果。所得数据集的总单词数与用于训练GPT-2的WebText数据集类似。我们将此数据集称为WebImageText,即WIT。
我们的初始化方法类似于VirTex,从头共同训练一个图像CNN和文本transformer,以预测图像的标题。但是,我们遇到了难以有效扩展此方法的问题。在图2中,我们显示了具有6300万参数的transformer语言模型,该模型使用了ResNet50图像编码器参数的两倍,它学习识别ImageNet类的效率比类似于Joulin et al. (2016) 预测文本词袋的方法要低3倍。
对比表示学习的最新工作发现,对比目标要优于预测目标。基于这一发现,我们探索了一个训练系统,以解决可能更容易的代理任务,以预测整个文本与哪个图像匹配,而不是该文本的具体单词。从词袋编码基线开始,我们使用了对比目标进行替换,如图2所示,在ImageNet零样本迁移上观察到了近4倍的效率提升。
给定一批具有
N
N
N个(图像,文本)对的数据 ,对CLIP进行训练,以预测
n
×
n
n×n
n×n个可能的(图像,文本)对。为此,CLIP通过共同训练图像编码器和文本编码器来学习一个多模态的嵌入空间,以最大化当前批次中
N
N
N个正例对的图像和文本嵌入的余弦相似度,同时最小化
N
2
−
N
N^2-N
N2−N个不正确对的相似度。我们使用对称交叉熵损失来优化这些相似度分数。在图3中,我们展示了用于实现CLIP的伪代码。这种批处理技术和训练目标首先在multi-class N-pair loss中被引入,最近被Zhang et al. (2020) 用于医学成像领域进行了对比学习(文本,图像)表示。
由于过拟合不是本文讨论的主要问题,因此与Zhang et al. (2020) 相比,我们简化了训练CLIP的细节。我们从头开始训练CLIP,而不是用一个预训练权重初始化。我们移除了表示和对比嵌入空间之间的非线性投影。我们仅使用一个线性投影将每个编码器的表示映射到多模态嵌入空间。
我们同样移除了文本转换函数
t
u
t_u
tu,该函数从文本中均匀采样单个句子,因为CLIP预训练数据集中的(图像,文本)对仅是一个句子。我们还简化了图像转换函数
t
v
t_v
tv。在训练期间,仅使用缩放图像的square crop来作为数据增强。最后,在训练过程中直接将控制softmax的温度
τ
\tau
τ作为一个对数张量参数进行优化,以避免将其作为超参数而调整。
我们考虑了图像编码器的两个不同的结构。对于第一个结构,首先,由于被广泛采用和验证的性能,我们将ResNet50用作图像编码器的基本结构。然后,我们使用由 He et al. (2019) 改进的ResNetD和由Zhang (2019)提出的antialiased rect-2 blur pooling以对原始版本进行了一些修改。我们还用注意力池化机制代替了全局平均池化层。注意力池化被实现为单层类transformer的多头QKV注意力,其中query是以图像的全局平均池化表示为条件的。对于第二个体系结构,我们尝试了最近引入的Vision Transformer(ViT)。我们非常接近它们的实现,仅在transformer之前将添加了额外层归一化和位置嵌入,并使用略有不同的初始化方案。
文本编码器是一个Transformer,其结构基于Radford et al. (2019) 进行了修改。对于base大小,我们使用了具有8个注意力头的12层512维的模型。transformer在文本的小写字节对编码(BPE)表示上操作。文本序列用
[
S
O
S
]
[SOS]
[SOS]和
[
E
O
S
]
[EOS]
[EOS]字符来包围,并在最后一层用
[
E
O
S
]
[EOS]
[EOS]的输出作为文本的特征表示,然后进行层归一化,并线性投影到多模态嵌入空间。在文本编码器中使用了屏蔽自注意力,以添加语言建模作为一个额外辅助目标,尽管对此的探索是将来的工作。
虽然以前的计算机视觉研究通常通过单独增加宽度或深度来扩展模型,但对于ResNet图像编码器,我们采用了Tan & Le (2019)的方法,该方法发现同时增加宽度,深度以及分辨率,要远超单独增加其中一种。我们使用一个简单的变体,该变体将额外的计算平均分配给模型的宽度,深度和分辨率。对于文本编码器,我们仅扩展模型的宽度,该宽度与ResNet宽度计算增加成正比,并且不扩展深度,因为我们发现CLIP的性能对文本编码器不太敏感。
我们训练了具有5个ResNet和3个Vision Transformers的一系列模型。对于ResNet,我们训练ResNet50,ResNet101,然后训练3个遵循EfficientNet尺寸的模型,并使用ResNet50大约4倍,16倍和64倍的计算。它们分别表示为RN50x4,RN50x16和RN50x64。对于Vision Transformers,我们训练了ViT-B/32,ViT-B/16和ViT-L/14。最大的ResNet模型RN50x64花了18天的时间在592张V100 GPU上训练,而最大的Vision Transformer在256张V100 GPU上花费了12天。对于ViT-L/14,我们在较高的336像素分辨率上进心预训练,同时增加一个epoch,以提高类似于FixRes的性能。我们将此模型表示为ViT-L/14@336px。除非另有说明,否则本文中报告的所有CLIP结果都将基于我们发现的最佳模型。完整的模型超参数和细节在附录材料中。
CLIP被预训练,以预测WIT数据集中的一个图像是否和一个文本片段匹配。为了将CLIP应用于下游任务,我们重用此匹配能力,并研究在标准计算机视觉数据集上CLIP zero-shot迁移的性能。类似于Radford et al. (2019), 我们将这一点作为是衡量系统的任务学习能力的一种方式(与其表示学习能力相反)。对于每个数据集,我们将数据集中所有类的名称作为潜在的文本对集合,并根据CLIP预测最可能的(图像,文本)对。我们还尝试基于文本提示的CLIP以帮助特定任务,并结合多个模板以提高性能。但是,由于绝大多数无监督和自监督的计算机视觉研究都集中在表示学习上,因此我们还使用常见的线性探针协议对此进行了调查。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。