赞
踩
以往基于自然语言监督的图像表示学习方法如ConVIRT,只在一二十万张图像的小规模数据集上训练,限制了该方法能发挥的性能。故本文研究了在大规模自然语言监督下训练的图像分类器的性能,具体有:
本文采用自然语言作为监督信号训练视觉模型,与其他训练方法相比,从自然语言中学习有几个潜在的优势:
本文构建了一个包含4亿对图像/文本的新数据集,这些数据从互联网中的各种公开来源收集。为了覆盖尽可能广泛的视觉概念集,进行了一系列互联网查询,每组查询都会构建20000个图像/文本对,其文本中包括500000个查询字符(queries,英文维基百科中出现至少100次的所有单词)中的一个。结果数据集的文本总token数与WebText数据集相似,此数据集称为WebImageText(WIT)。
本文实验了两种深度学习方法来构建CLIP。
首先采用类似于VirTex的方法,从头开始联合训练图像CNN和文本transformer来预测图像的标题,但这种方法对于训练更大尺度的模型存在困难,因为这种架构试图在预测每张图片所附文字的确切单词,而描述、评论一张图像的相关文本种类繁多,对每张图像都做这种训练,是一项非常艰巨的任务。如上图,使用了一个类似GPT的6300万参数的transformer作为文本编码器进行联合训练,在相同的imageNet预测任务下,比具有相似性能的词袋编码器的速度慢三倍。
故实验了对比学习架构,即预测文本与哪个图像配对,而不是预测该文本的确切单词。采用与联合训练相同的词袋编码基线,将预测目标换成上图中的对比目标后,ImageNet预测任务可提高了4倍的效率。故基于扩展性和时效性的考虑,本文采用对比学习框架。
给定
N
N
N个图像/文本对,CLIP被训练来预测batch中
N
×
N
N × N
N×N个图像/文本对的实际发生概率。为此,CLIP通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,最大化batch中
N
N
N个真实图像/文本对的嵌入的余弦相似度,同时最小化
N
2
−
N
N^2 - N
N2−N个错误对的嵌入的余弦相似度,并采用对称交叉熵损失来优化这些相似性分数。
上图即为CLIP的核心伪代码。由于预训练数据集很大,过拟合不是主要问题,故CLIP的训练细节得到了简化。本文采用随机初始化开始训练CLIP,并使用线性投影将每个编码器的表示映射到多模态嵌入空间。
相比于以往方法,本文没有采用文本转换函数 t u t_u tu,因为CLIP的预训练数据集中的许多图像/文本对只有一个句子。同时还简化了图像变换函数 t v t_v tv,从大小调整过的图像中随机进行正方形裁剪是在训练期间唯一使用的数据增强。另外,控制softmax中logits范围的temperature参数 τ τ τ在训练过程中被直接优化为对数参数乘性标量,以避免其变成超参数,进一步优化了训练效率。
本文实验了两种不同的图像编码器,分别有:
文本编码器采用了一个具有63M参数的Transformer,层数为12,注意力头数为8,宽度为512。并采用了词汇表大小为49152的BPE来编码文本,最大序列长度设置为76,文本序列前后会被分别插入[sos]和[eos]标记,transformer最高层在[eos]标记处的激活被视为文本的特征表示,并对其进行层归一化,然后线性投影到多模态嵌入空间。
对于ResNet图像编码器,使用EfficientNet提出的方法来缩放模型的宽度、深度和分辨率。对应的文本编码器也会等比例缩放模型宽度。
本文训练了5个ResNet和3个ViT。ResNet包括一个ResNet-50,一个ResNet-101,以及3个遵循EfficientNet缩放后的模型。三个EfficientNet的计算量分别为ResNet-50的大约4倍、16倍和64倍,分别记为RN50x4、RN50x16、RN50x64。ViT包括一个ViT-B/32,一个ViT-B/16和一个ViT-L/14。
所有模型都训练32个epoch,mini batch为32768,使用Adam优化器及weight decay优化参数,并使用余弦退火学习率方法。在训练1个epoch时,使用网格搜索、随机搜索和对baseline ResNet-50手动调整的组合方法对超参数初始化,根据计算约束,超参数将启发式地适用于更大的模型。可学习的temperature参数 τ τ τ初始化为0.07,并进行clipped以防止其超过100。
为了节省内存资源,使用混合精度来加速训练和节省内存,gradient checkpointing保存为FP32格式、Adam statistics和stochastically rounded text encoder weights保存为FP16格式。对于模型输出嵌入的相似性,每个gpu只计算其本地批嵌入所需的成对相似性子集。
最大的ResNet模型RN50x64在592个V100 gpu上训练了18天,最大的ViT在256个V100 gpu上训练了12天。 对于ViT-L/14,本文还以336像素分辨率进行了额外一个epoch的预训练,表示为ViT-L/14@336px。除非另有说明,本文报告的所有CLIP结果都使用实验中表现最好的模型。
计算机视觉领域,zero-shot学习通常指模型在图像分类任务中对未见过的物体类别进行泛化的研究。以往的无监督学习主要研究模型的特征提取能力,但对于下游任务,仍需进行微调。故本文主要研究模型对未见过的下游任务泛化的能力。
为了实验CLIP的zero-shot分类能力,采用一系列修改。对每个分类数据集,使用数据集中所 有类名作为潜在文本集,并使用CLIP 的编码器计算图像特征嵌入和文本集 特征嵌入,然后计算图像/文本嵌入之间的余弦相似度,特征通过 temperature参数 τ τ τ缩放,并通过softmax将结果归一化为概率分布。
该预测器可以解释为一个多项式逻辑回归分类器,其具有 l 2 l_2 l2归一化输入、 l 2 l_2 l2归一化权重,且无偏差和temperature缩放。图像编码器是计算图像特征表示的计算机视觉主干,而文本编码器是超网络,其根据指定文本生成线性分类器的权重。
对于zero-shot评估,一旦文本编码器计算出zero-shot分类器,就会将其缓存起来,并在所有后续预测中重用,这使其生成成本摊销到数据集中的所有预测中。
上表比较了Visual N-Grams与CLIP的zero-shot分类性能。观察到,CLIP将ImageNet的预测准确性从11.5%提高到76.2%,在没有任何监督标签的情况下与有监督ResNet-50的性能相匹配。此外,CLIP的top-5精度明显高于其top-1,具有95%的top-5精度,与Inception-V4相匹配。表明CLIP是迈向灵活和实用的zero-shot计算机视觉分类器的重要一步。
CLIP另外两个报告的数据集上也优于Visual N-Grams。在aYahoo上,CLIP的精度提高到98.4%,在SUN上,CLIP的精度是Visual N-Grams的两倍以上。
大多数图像分类数据集都使用数字id标注图像,并采用一个将这些id映射回其英文名称的文件,这使得基于自然语言的zero-shot迁移成为可能。但另一些数据集,如Flowers102和GTSRB,不存在这种映射,故难以实现zero-shot迁移。当类的名称是提供给CLIP的文本编码器的唯一信息时,由于缺乏上下文,文本编码器可能无法区分词义。在某些情况下,同一个单词的多个含义可能被包含在同一个数据集中的不同类别中。其次,在预训练数据集中,文本大多数情况是一个完整的句子,而不是一个单词。故为了在分类任务中弥合这种分布差距,实验发现使用prompt 模板如:“获取{label}的照片。“,可以很好的指定关于图像内容的文本,与只使用标签文本相比,可以提高性能。例如,在卫星图像分类数据集上,使用“{label}的卫星照片“。
实验发现集成多个zero-shot分类器,也可以提高性能。对分类器使用不同的prompt,再到嵌入空间进行平均得到文本嵌入。利用该方法,在ImageNet上集成80种不同的上下文prompt,比单个默认prompt下的zero-shot分类性能提高了3.5%。
综合上述方法,采用prompt工程和分类器集成可以将ImageNet的精度提高近5%。
上图可视化了CLIP与直接嵌入类名的无上下文baseline的性能。可以观察到prompt工程和集成如何改变一组CLIP模型的性能。
本节研究了CLIP的zero-shot分类器的各种属性。
上图为在27个数据集上对zero-shot CLIP和一个在有监督ResNet-50特征上拟合的逻辑回归分类器进行的比较。观察到,CLIP在27个数据集中的16个上取得更优的结果。在Stanford Cars和Food101上,zero-shot CLIP比基于ResNet-50特征的逻辑回归分类器的表现比高出20%以上,但在Flowers102和fgvcaaircraft上,zero-shot CLIP的表现比逻辑回归分类器低了10%以上,在OxfordPets和Birdsnap上,性能较为接近。在ImageNet、CIFAR10/100、STL10和PascalVOC2007等通用目标分类数据集上,zero-shot CLIP都略有优势,尽管CLIP没有使用其中的任何训练样本,但以及具备更先进的水平。在视频行为识别的两个数据集上,zero-shot CLIP也明显优于ResNet-50。 在Kinetics700上,CLIP比ResNet-50高出14.5%,在UCF101上,zero-shot CLIP比ResNet-50高出7.7%。
另外,zero-shot CLIP在一些特殊的、复杂的或抽象的任务上表现非常弱,如卫星图像分类(EuroSAT和RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、合成场景中的物体计数(CLEVRCounts)、自动驾驶相关任务,如德国交通标志识别(GTSRB)、识别到最近汽车的距离(KITTI距离)。这些结果证明了zero-shot CLIP在更复杂的任务上的性能较差,推测是由于模型没有在这些特殊分类任务情况下训练导致,同样的情况,对于没有任何经验的人类也很难进行有意义的评估。故更合理的评估应该是few-shot检测。
本实验研究zero-shot CLIP和few-shot逻辑回归在所有数据集上的平均性能,如上图为可视化的zero-shot CLIP与多种图像模型特征上的few-shot逻辑回归比较,包括ImageNet模型、自监督学习方法和CLIP本身。观察到, zero-shot CLIP与4-shot CLIP的逻辑回归的表现相似,zero-shot CLIP也与表现最好的自监督16-shot的BiT-M(ResNet-152x2)分类器的性能相当。同时,16-shot的CLIP逻辑回归表现出最好的性能,验证了上一节提出的猜想。
本实验研究了few-shot CLIP图像特征逻辑回归在单个数据集上的性能,如上图逻辑回归分类器在与zero-shot CLIP相同性能的情况下所需的每个类的shot 数量的估计。观察到,零样本迁移在每个数据集上的效率有很大的差异,最少每个类少于1-shot,最大每个类需184-shot。一半的数据集中每个类别所需shot数少于5个,中位数为5.4。整体数据集中,每个类别的平均shot为20.8。在ImageNet上,zero-shot CLIP与16-shot的CLIP图像特征线性分类器的性能相匹配。
假设全监督线性分类器的性能为zero-shot迁移可以达到的上限,则可进一步衡量zero-shot CLIP与跨数据集的全监督线性分类器的性能差距。如上图,若虚线
y
=
x
y=x
y=xzero-shot CLIP分类器与全监督线性分类器性能完全匹配,则对于大多数数据集,zero-shot CLIP分类器的性能比完全监督分类器低10%到25%,这表明仍然有很大的空间来提高CLIP的任务学习和zero-shot迁移能力。
另外,zero-shot CLIP和全监督线性分类器的性能之间存在0.82的正相关,表明CLIP的基础表示与zero-shot迁移之间有一致相关性,其中,零样本CLIP在CIFAR10、Food101、OxfordPets、STL10和Caltech101数据集上接近完全监督性能。在这些数据集上,zero-shot精度和完全监督精度都超过90%,表明基础表示是高质量的任务,CLIP在 zero-shot迁移中可能更有效。
在过去几年里,深度学习系统的实证研究表明模型的性能与训练计算量和数据集大小等重要量有关,如GPT模型家族证明,在训练计算增加1000倍的情况下,zero-shot性能可以得到一致的提高,故本实验检查了zero-shot CLIP的性能是否也遵循类似的缩放模式。如上图,绘制了5个ResNet CLIP模型在36个不同数据集的39次评估中的平均错误率,发现模型计算量增加44倍的情况下,CLIP的错误率呈对数线性缩放趋势,总体趋于平稳状态。
本节研究CLIP图像编码器的表示学习能力,用从模型中提取的表示来拟合一个线性分类器。存在许多方法来评估表示的质量,如线性分类或微调,但本文工作专注于开发一种数据集无关的预训练方法,而微调因为可以大程度的自适应数据集的表示,会掩盖预训练阶段学习通用和鲁棒表示的失败。相反,线性分类器在训练过程中会冻结主干网络,由于限制了其灵活性,可以在开发过程中突出预训练阶段的表示的缺陷。故本实验在27个不同的数据集上研究66个不同模型的线性评估。
如上图左,首先研究模型在12个数据集中的性能。观察到,基于线性评估设置,参数量较少的CLIP-ResNet小模型的性能优于其他在ImageNet-1K上训练的resnet(BiT-S和原始ResNet),但低于在ImageNet-21K上训练的resnet(BiT-M),同时也低于具有类似计算量的EfficientNet系列模型。但参数量较多的CLIP-ResNet-50x64在总得分和计算效率方面都略优于现有表现最好的模型(NoisyStudent-EfficientNet-L2),取得最好的结果。
CLIP-ViT的计算效率比CLIP-ResNets高约3倍,故可以使模型在计算预算内达到更高的整体性能。性能最好的CLIP-ViT-L/14-336px(在给定的数据集上以336像素的更高分辨率进行了额外的1个epoch的微调),在12个评估数据集中取得了比现有最好的模型平均+2.6%的性能。图右类似。
上图可视化了最优的CLIP模型和上述评估中与其他方法的最优模型NoisyStudent-EfficientNet-L2在27个数据集上的性能差异。观察到,CLIP在27个数据集中的21个上优于NoisyStudent-EfficientNet-L2,在OCR(SST2和HatefulMemes)、地理定位和场景识别(Country211、SUN397)以及视频中的活动识别(Kinetics700、UCF101)任务上有极大的改进,此外,CLIP在汽车和交通标志识别(Stanford Cars、GTSRB)上也表现更好,在GTSRB上,性能提升了14.7%。其次,CLIP在另外一些数据集上的表现逊于EfficientNet,但ImageNet是EfficientNet的训练数据集,而在CIFAR10和CIFAR100等低分辨率数据集中,相比于EfficientNet,CLIP缺乏基于规模的数据增强。另外在PatchCamelyon和CLEVRCounts上两者性能差异不明显。 证明了CLIP学习到的表示的通用性。
本实验在ImageNetV2、ImageNet Sketch 、Youtube-BB、ImageNet-vid、ObjectNet、ImageNet Adversarial和ImageNet Rendition这7个与ImageNet数据分布存在偏差的数据集上测量CLIP性能,以研究模型的性能在数据集分布变化时如何变化。这些数据集从各种来源收集的新图像组成,包括图像synthetic distribution shifts,如ImageNet-c,Stylized ImageNet,或通过以各种方式扰动创建的对抗性攻击图像。
本实验报告7个偏移数据集所有类别的平均精度和模型在ImageNet下的相应类子数据集的平均精度。对于YoutubeBB和ImageNet-Vid,使用pm-0和pm-10准确率的平均值评估。
上图为前一节提出的图像表示线性评估实验的模型在对应数据集上的鲁棒性评估。观察到,相比于CLIP,基于ImageNet训练的模型在其余数据集上性能相比ImageNet验证集中的性能大幅下滑,验证了CLIP的鲁棒性。
上图比较了zero-shot CLIP与现有基于ImageNet训练的模型在分布偏移数据集上的性能。观察到,相比于在ImageNet训练的模型,所有zero-shot CLIP模型大大提高了鲁棒性,在ImageNet精度和分布偏移数据集精度之间的差距比ImageNet模型缩小了75%。
CLIP的大型和多样化的预训练数据集或自然语言监督模块,可以产生更鲁棒的模型,但这并不一定意味着采用ImageNet监督的CLIP会更鲁棒。为了验证这个猜想,通过L2正则化逻辑回归分类器拟合ImageNet训练集上的CLIP特征,测量 CLIP模型在适应ImageNet分布后在其他数据集上性能的变化。如上图Adapt to ImageNet,适应ImageNet分布的CLIP使其在ImageNet上的精度整体提高了9.2%至85.4%,但在分布偏移数据集下的平均精度略有下降。其中适应了ImageNet的CLIP的性能在一个数据集ImageNetV2上有显著提高,但ImageNetV2跟ImageNet数据分布接近,这表明从监督自适应中获得的性能提高主要集中在ImageNet分布上。另外,在ImageNet-r上下性能降4.7%,在ObjectNet上下降3.8%,在ImageNet Sketch上下降2.8%,在ImageNet-a上下降1.9%。在其他两个数据集Youtube-BB和ImageNet Vid上,精度的变化较小,验证了上述推论。
本文还实验了用ImageNet监督的CLIP线性分类器直接对分布偏移数据集进行分类的鲁棒性。因为7个分布偏移数据集的类别无法与ImageNet的类别完美对齐,故对ImageNet的所有类别进行最大池化预测来实现对其他数据集的分类预测。例如,对于Youtube-BB中的person类,可以通过汇集ImageNet中的baseball player,bridegroom,scuba diver类来得到预测结果。 故根据此方法,对每个数据集的类别生成自定义zero-shot分类器。结果如上图Adapt to class shift,这种设置将偏移数据集的平均鲁棒性提高了5%,但改进主要集中在少数数据集上。
虽然zero-shot CLIP可以有效提高鲁棒性,但上述实验证明,对特定数据集进行监督拟合后,这种好处几乎完全消失,故本实验研究CLIP从zero-shot到完全监督的过程中鲁棒性的变化。结果如上图,观察到,虽然few-shot模型显示出比监督模型更高的鲁棒性,但随着训练数据的增加,这种优势逐渐消失。此外,zero-shot CLIP明显比few-shot模型更鲁棒。故得出结论,减小特定分布的训练数据量,可以提高的鲁棒性,但同时会降低模型在特定分布数据集上的性能。
本节实验人类在与CLIP类似的评估环境下的zero-shot表现,以及通过向人类展示一两个图像样本,人类的few-shot表现。
给选定的五名不同的人查看包括37个猫或狗品种的Oxford IIT Pets数据集的3669张图像,要求人类区分这些图像的类别。给定三种情况,在zero-shot情况下,研究人员不会给人类提供动物品种的样本图像,在one-shot实验中,会给人类每个动物品种的一个样本图像,在two-shot实验中,给人类每个动物品种的两个样本图像,并要求他们在没有互联网搜索的情况下,尽其所能地给图像贴上标签。
结果如上表,人类在one-shot实验环境下,相比于zero-shot,平均精度从54%上升到76%,但从one-shot到two-shot的边际收益很小。实验证明虽然CLIP是一种很有前途的zero-shot训练策略,但与人类从少数示例中的学习方法之间存在很大差异,仍有待改进算法以缩小机器和人类之间的差距。
上图为人类和zero-shot CLIP的准确性对比。观察到,对CLIP最困难的问题对人类来说也很难,但总体而言CLIP的表现高于人类水平。
线性检测使用了27个数据集,以评估模型在更广泛的分布和任务上的性能。包括MNIST,Facial Expression Recognition 2013,STL-10,EuroSAT,NWPURESISC45,German Traffic Sign Recognition Benchmark(GTSRB),KITTI,PatchCamelyon,UCF101 action recognition,Kinetics 700,以及CLEVR 、Hateful Memes 、ImageNet-1k的2500个随机样本。对于两个视频数据集(UCF101和Kinetics700),使用每个视频片段的中间帧作为输入图像。STL-10和UCF101分别有10和3种预定义的训练集/验证集/测试集划分比率,本文报告了所有划分方法的平均值。上表为所有数据集的详细信息和相应的评估指标。
此外,本文还创建了两个数据集Country211和Rendered SST2。Country211数据集旨在评估地理定位能力,通过过滤YFCC100m数据集找到了211个国家的图像(其中至少有300张照片具有GPS坐标)每个国家都采样了200张训练图像和100张测试图像,从而构建了具有211个类别的数据集。
Rendered SST2数据集旨在评估光学字符识别能力。为此,本文使用了Stanford Sentiment Treebank中的句子,并将其以448×448的分辨率渲染成图像。上图即为该数据集的两个示例图像。
结合上述数据集,本文以线性检测的方法评估了下列一系列模型。
验证过程中,除CLIP-ViT使用图像编码特征,其余所有模型都使用倒数第二层的图像特征,根据这些特征使用scikit-learn的L-BFGS训练一个逻辑回归分类器,最多迭代训练1000次,并报告模型在每个数据集的验证指标。通过在验证集上使用超参数扫描,以96个对数间隔的步幅,在 1 0 − 6 10^{−6} 10−6和 1 0 6 10^6 106的范围内确定 L 2 L_2 L2正则化强度 λ λ λ。
为了节省扫描所需的计算量,以 λ = [ 1 0 − 6 , 1 0 − 4 , 1 0 − 2 , 1 , 1 0 2 , 1 0 4 , 1 0 6 ] λ = [10^{−6} , 10^{−4} , 10^{−2} , 1, 10^2 , 10^4 , 10^6 ] λ=[10−6,10−4,10−2,1,102,104,106]为起始值,采用二分搜索算法迭代计算,直到达到每十倍的 λ λ λ值范围内,有8个不同的值。对于包含验证集的数据集,使用上述方法来执行超参数搜索,而没有提供验证集的数据集,则通过分割训练集来执行超参数搜索。
上表为本实验测试的模型的最后得分。观察到,表现最好的CLIP模型为使用336×336输入图像像素的ViT-L/14,其在27个数据集中的21个中实现了最先进水平。对于许多数据集,CLIP的表现也明显优于其他模型,表明了自然语言监督比传统的基于图像分类的预训练方法的优势。
上图为本实验提供的模型在所有数据集上的计算量/精度。
本节提供CLIP的zero-shot预测的定性实验总结。
上图给出了定性结果。观察到,zero-shot CLIP有效的学习到的任务非常广泛,包括地理定位、光学字符识别、面部情感识别和动作识别。
上表/图为CLIP的zero-shot分类对比基于ResNet的线性分类器在36个数据集性能分数。
Dataset Ablation on YFCC100M
为了研究WIT数据集对CLIP性能的影响,本文在YFCC100M数据集的筛选子集上训练了一个模型,并将其性能与在同等大小的WIT数据子集上训练的相同模型进行了比较。每个模型进行了32个epoch的训练。
结果如上表。YFCC和WIT下训练的模型在零样本和线性检测设置下的表现类似。但在特定的细粒度分类数据集上的性能差异很大,有时超过10%,推测这些性能上的差异反映了每个预训练数据集中相关数据的相对密度。例如, YFCC100M上包含许多鸟和花的照片,在其之上训练的模型在Birdsnap和Flowers102上可以获得更好的性能。而在WIT上预训练的模型,更擅长汽车和宠物的分类。
Radford, A. , Kim, J. W. , Hallacy, C. , Ramesh, A. , Goh, G. , & Agarwal, S. , et al. (2021). Learning transferable visual models from natural language supervision.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。