CLIP--zero-shot语言-图像对比学习模型

1 简介

本文根据2021年《learning transferable visual models from natural language supervision》翻译总结的,即利用自然语言学习一个可以迁移的视觉模型。

本文提出的模型为Contrastive Language-Image Pre-training,简称CLIP,即对比学习语言-图像预训练模型,是通过对比学习训练的模型。因为预训练的数据集较大,所以采用对比学习提高效率。

CLIP主要特点是zero-shot,即不需要微调fine-tune,直接用于下游模型也有很好的效果。如在ImageNet数据集上,CLIP zero-shot的准确率可以达到监督训练的ResNet-50的效果。

CLIP也是学习NLP模型GPT-3,GPT-3在NLP领域就有zero-shot的能力。

CLIP采用的数据集有4亿个(图片-文本)对。数据规模可以和训练GPT-2的匹配。这份数据是从网络上爬取整理的,我们称这份数据为WIT(WebImageText)。

CLIP虽然zero-shot能力很强,但还是需要提高,比如离最好的监督模型还有距离,只是达到了ResNet-50的水平。

2 方法

如下图左边部分表示训练部分,CLIP联合训练图片-文本)对,将文本输入text encoder产生文本特征,将图片输入image encoder 产生图片特征,然后进行对比学习,如蓝色对角线部分表示文本和图片匹配的(N个),其他是不匹配的(N的平方减N个)。

下图右边是zero-shot预测,将可能分类的文本标签输入训练好的text encoder,图片也是输入训练好的image encoder,然后匹配出哪个文本标签最和图片特征相匹配。
在这里插入图片描述

伪代码如下:
在这里插入图片描述

2.1 文本加工-prompt提示

将文本变成如下格式,丰富了文本内容,有利于模型学习。下面只列4种,实际用到了80多种。:
A photo of a {label}, a type of pet
a satellite photo of a {label}
A photo of a big {label}”
A photo of a small {label}”

3 实验结果

Visual N-Grams是以前的一个zero-shot模型,可以看到CLIP大幅好于Visual N-Grams,不过Visual N-Grams的训练集较小。
在这里插入图片描述

如下图,CLIP和ResNet-50监督学习比较,可以看到大部分效果较好(绿色部分)。
在这里插入图片描述

和few-shot(加上线性分类层)相比也是较好的。
在这里插入图片描述

CLIP加上线性分类(在CLIP模型上面增加一个线性分类层,微调时CLIP模型被冻住,只训练分类层的参数),也比以前优秀的模型更好。其中CLIP vision transformers 好于CLIP ResNets。

在这里插入图片描述

Zero-shot CLIP也更适用于分布偏移,如不仅在imageNet数据上效果好,在imagenet-R等数据集上效果也好,而ResNet101却很差。
在这里插入图片描述

4 CLIP 缺点

  1. CLIP虽然zero-shot能力很强,但还是需要提高,比如离最好的监督模型还有距离,只是达到了ResNet-50的水平。
  2. CLIP 在有些任务上的 zero-shot 性能并不好,与一些 task-specific 的模型相比,CLIP 的性能在一些细分类任务上效果不佳 (e.g. differentiating models of cars, species of flowers, and variants of aircraft). 另外,CLIP 在一些更加抽象和系统性的任务上也表现不佳 (e.g. counting the number of objects in an image). 最后,对于一些不太可能被包含在 CLIP 预训练数据集中的新任务,CLIP 的性能接近于随机 (e.g. classifying the distance to the nearest car in a photo)
  3. 许多复杂的任务和视觉概念仅仅通过文本时很困难的。
  4. CLIP 在做 zero-shot transfer 时仍然需要利用 prompt engineering
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值