Learning Transferable Visual Models From Natural Language Supervision

目前开始了解多模态相关的知识,欢迎大家批评指正!

这篇论文来自2021年的International Conference on Machine Learning,整理改论文的主要内容,参考【论文阅读】CLIP:Learning Transferable Visual Models From Natural Language Supervision ------ 多模态,视觉,预训练模型_me_yundou的博客-CSDN博客Learning Transferable Visual Models From Natural Language Supervision - John_Ran - 博客园两篇文章。

论文题目:从自然语言监督中学习可转移的视觉模型

研究问题:将文本数据和图像数据相结合,提出了CLIP,用对比学习的方法对语言-图像预训练,这是一种高效、可扩展的自然语言监督学习方法。

研究思路:利用互联网上的图片,训练CLIP。在训练结束后,自然语言用来参照学习到的视觉概念,然后进行zero-shot transfer learning。

(1)首先是构建CLIP,CLIP实际上是一个预训练模型,包括文本编辑和图像编辑器两部分,分别计算文本向量和图像向量的相似度,以预测它们是否为一对,如图1所示。CLIP将图像和文本先分别输入一个图像编码器image_encoder和一个文本编码器text_encoder,得到图像和文本的向量表示 I-f 和 T_f 。然后将图像和文本的向量表示映射到一个联合多通道空间,得到新的可直接进行比较的图像和文本的向量表示 I_e 和T_e 。然后计算图像向量和文本向量之间的cosine相似度。最后,对比学习的目标函数就是让正样本对的相似度较高,负样本对的相似度较低。

Learning Transferable Visual Models From Natural Language Supervision_第1张图片 图 1

 CLIP联合训练图像编码器和文本编码器来预测一批(图像,文本)训练示例的正确配对。在测试时,学习的文本编码器通过嵌入目标数据集类的名称或描述,合成一个零镜头线性分类器。CLIP代码如图2所示:

Learning Transferable Visual Models From Natural Language Supervision_第2张图片

 图 2 

(2)进行zero-shot transfer learning

研究过程:1.构建一个足够大的数据集-----》WebImageText(4亿个文本-图像对)

                  2.选择一个有效的预训练模型-----》CLIP

                  3.选择和缩放模型------》作者选择了两种模型,一个是ResNet-D,平滑了rect-2 blur  pooling。将global average pooling用一个attention pooling来改进。其中这个transformer类型的层,是以global average-pooled representation作为query。第二 vision的结构是ViT,改动比较少:在patch embbeding和position embedding结合之后,加了一个layer normalization。然后实现的时候,使用了一点不一样的初始化策略。

                   4.预训练------》训练的scale策略,5个ResNet,3个vit。ResNet-50,  ResNet-101,  RN50x4, RN50x16, and RN50x64。 ViT-B/32, a ViT-B/16, and a ViT-L/14。最后使用的 32,768的batch size。使用了gradient checkpoint。半精度。The largest  ResNet model, RN50x64, took 18 days to train on 592 V100 GPUs while the  largest Vision . Transformer took 12 days on 256 V100 GPUs。还有一个vit使用336的pixel resolution。

                    5.利用CLIP------》对于每个数据集,使用数据集中所有类的名称作为潜在文本对的集 合,并根据CLIP预测最可能的(图像、文本)对。此外,还尝试为CLIP提供文本提示以帮助指定任务,以及集成多个这些模板以提高性能。

       数据集及实验结果:对于模型的表现,作者在27个数据集上进行了实验,发现在16个数据集上表现的更好:

Learning Transferable Visual Models From Natural Language Supervision_第3张图片

主要创新:CLIP是一个预训练模型,就像BERT、GPT、ViT等预训练模型一样。首先使用大量无标签数据训练这些模型,然后训练好的模型就能实现,输入一段文本(或者一张图像),输出文本(图像)的向量表示。CLIP和BERT、GPT、ViT的区别在于,CLIP是多模态的,包含图像处理以及文本处理两个方面内容,而BERT、GPT是单文本模态的,ViT是单图像模态的。

总结:

关于CLIP的一些局限性:

  1. 作者认为,仅仅与baseline打平不是最终目标。因为与这些数据集完全监督的SOTA比起来,CLIP还打不过他们。需要将当前的计算量放大到1000x才能达到现在的SOTA,这在当前的硬件条件下是做不到的。

  2. 作者认为,CLIP在某些专用型特别强的task上不太work。比如,在一些细粒度的数据集上,或者一些比较抽象、对称的task。这些task的图片,在CLIP的pre-train的数据集上出现的比较少。作者认为,还有很多task上,CLIP是在瞎猜。

  3. CLIP在很多自然的图片分布上效果不错,但是在一些真的out-of-distributiob的数据集上还是不太行,比如在OCR上。在rendered text上表现相当不错,因为这在CLIP的pre-training上十分常见。但是在手写数字体识别上就拉垮了,只有88%的准确率。因为从semantic和near-duplicate nearest-neighbor retrieval上没找到。

你可能感兴趣的:(多模态,计算机视觉,深度学习,人工智能)