论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision

Paper:Learning Transferable Visual Models From Natural Language Supervision

Code:https://github.com/OpenAI/CLIP

引言:利用自然语言的监督信号去训练一个迁移效果很好的视觉模型,文字+图片多模态。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第1张图片

  • 其中,标签可以更改,不仅限于imageNet中的一千个类,可以换为任意的单词,图片也可以为任意的图片。

  • 彻底摆脱了分类标签这个性质,不论训练还是推理都不需要有提前定义好的类别。

  • 不仅能识别新的物体,而是真的把视觉和文字的语义联系到了一起,学到的特征语义性极强,迁移效果也很好。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第2张图片

在ImageNet数据集上训练的ResNet101准确率为76.2,与clip zero-shot迁移之后效果一样,再换到其他数据集以后,之前按照1000类分类头训练的模型效果下降很快,而clip效果稳定。

摘要:

    其他的分类方法用到的数据集类别固定,本身限制了其泛化性,对于新的类别如果收集新的类别从头训练代价巨大且无法泛化。直接从文本了得到监督信号,涵盖范围广泛化性好,本文作者构建了一个极大的数据集,涵盖4亿图片文本对,利用这个数据集预训练一个大模型,并在超过30个数据集上做zero-shot迁移,效果很好,且在ImageNet上与有监督学习训练的ResNet50效果相同。

引言:

  • 以前的很多方法效果差的原因主要是与clip相比在数据与模型的规模上有差异。(VirTex,ICMLM、ConVIRT)

  • 迁移学习效果基本与模型的大小呈正相关。

方法:

利用自然语言的监督信号去训练一个视觉模型,有以下几个优点:

  1. 不用再去标注数据,只需下载文字图片的配对,数据规模很容易变大,且监督信号为文本,模型输入输出自由度更大。

  2. 输入时将图片文字绑定,学到的特征不单单为视觉特征,而是多模态特征,更容易去做zero-shot迁移。zero-shot:是指零样本学习,在别的数据集上学习好了,直接迁移做分类。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第3张图片

伪代码

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第4张图片

  • 在文本方面就是Transformer;在图像方面选择了5种ResNets(ResNet-50,ResNet-101,3个EfficientNet的变体,ResNet-50x4,ResNet-50x16,ResNet-50x64)和三种VIT(分贝是VIT-B/32,VIT-B/16,VIT-L/14)

  • 为什么要用 prompt engineering and ensembling?

    由于一个word 具有多义性,图片和文字匹配容易出错,不同语境下词语含义可能不同,所以作者将word放在语境中,来提高匹配度;且用一个单词做prompt的话经常会遇到歧义性。如果提前知道一些信息,就可以给更多的提示,比如前后加形容词,就可以很大程度缩小解空间,加入这个prompt engineering and ensembling准确度上升了1.3%;最后在CLIP中,总共用了80个prompt template之多;

实验:

  • 大范围数据集结果:做了27个数据集的分类任务,baseline是ResNet-50,ResNet-50是有监督模型在各个数据集上训练好的, 然后两个模型在其他数据集上zero-shot;在大多数分类任务,给车、食物等做分类的问题上CLIP都表现的很好, 但是在DTD这种纹理进行分类或CLEVRCounts给物体计数的任务,对于CLIP无监督模型来说就很难了。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第5张图片

  • 所以作者认为在这些更难的数据集做few-shot可能比zero-shot更好;因为很多任务或领域需要先验知识才行,所以作者做了few-shot与zero-shot的对比few-shot也是将back-blone冻住,训练分类头。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第6张图片

    横坐标是指在每个类别中选出了几个训练样本,纵坐标就是模型的准确率了(在20个数据集上的平均结果,因为有7个数据集中有些训练样本不足16个);因为别的模型不是多模态的,所以只能从1-shot开始;其中,BiT-M是google中bit transfer的一个模型,专门为迁移学习量身定做的,而zero-shot的CLIP直接与few-shot的BiT-M打成平手;而CLIP可以从zero-shot开始;可以看出当学习样本很少的时候CLIP few-shot的表现还不如zero-shot;

  • Representation Learning

    为了证明Pre-Train的成功,CLIP将预训练好的模型在下游任务中做了Linear probe,就是模型主体冻住,只调Linear分类头,因为这样不用太多的调参,也能证明模型的特征学的好不好;其中横坐标是一次前向过程的计算量,纵坐标是分类准确度;可以看出CLIP是在计算量与准确度方面trade-off做的最好的一个模型。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第7张图片

  • 模型的泛化性:当数据有distribution shift(分布偏移)的时候,模型的表现如何,这是CLIP最惊艳的结果,可以看出CLIP在数据分布的偏移样本上,远远超过ResNet101,而且结果保持地依旧稳健。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第8张图片

  • 与人进行对比:将CLIP与人进行zero-shot,one-shot,two-shot的对比,分类的物体是37种狗和猫的图片;可以看出人在zero-shot与one-shot的差别是很大的,表明人学习的能力是很强的;但是人的one-shot与two-shot区别不大,说明了人在没有先验知识,只是通过样本学习,不一定能学的更好。

论文阅读-CLIP(文本-图片多模态)Learning Transferable Visual Models From Natural Language Supervision_第9张图片

局限性和不足:

  1. 平均来看,CLIP可以和机械模型(ResNet-50(在ImageNet上训练))持平, 但在大多数数据集上Res50并不是SOTA,它与SOTA方法还是差了十几二十个点,若继续增加数据集和model规模,CLIP性能可以继续提高,但是代价很大。

  2. 在细分类数据集上,CLIP效果低于(有监督训练)ResNet-50(baseline网络);CLIP无法处理抽象概念,如数数任务,或者判断一个监控画面是正常还是异常。

  3. 若数据集中的data 已经 out-of-distribution(不具有自然特征),那么CLIP-model泛化照样差;(在MNIST数据集上,CLIP准确率仅有88%; 因为作者收集的数据集有4亿个样本,但没有和MINIS长得像的,所以MINIS数据集对于CLIP来说就是out-of-distribution数据集);

  4. CLIP不能高效利用数据,训练了epoch = 32,每个epoch过4亿个图片,跑了128亿张图片,如果一秒一张需要405年;数据用量多,作者希望减少数据用量,(三种方案: 数据增强,自监督,伪标签)

  5. 用所有数据进行训练,调整很多次模型结构和超参数,才得出好结果,且每次用ImageNet数据集作为指导。所以CLIP并非做出真正的zero-shot工作。(选择偏差)

作者想要:

    把一切都GPT(生成式模型)化,因为CLIP还是根据给定的1000个选项去选择到底是那个类比,作者更像直接一张图片,然后生成对应的标题。但受限于计算资源,作者没法做成 ” 自动生成模型 “ 的网络。(以后的DALL)

你可能感兴趣的:(读论文,深度学习,人工智能,神经网络)