【扩散模型】多模态大模型CLIP

在了解了diffusion的基础模型之后,随着多模态的发展,特别是CLIP模型的诞生,让事情开始变得有趣的东西来了!diffusion结合CLIP模型诞生了造成巨大轰动的文生图模型DALL·E2,DALL·E2的基本思想是结合CLIP和GLIDE。
在了解DALL·E2之前,我们先来了解给AI界造成巨大影响力的多模态大模型CLIP(大力出奇迹,很简单但很有用)

CLIP(文本图像对->特征)

论文:Learning Transferable Visual Models From Natural Language Supervision

2021.02 PMLR

https://arxiv.org/pdf/2103.00020.pdf

强烈建议观看沐神的视频,说得非常好:沐神

在这里插入图片描述
在这里插入图片描述

摘要

最先进的计算机视觉系统被训练来预测一组固定的预定对象类别。这种受限制的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。直接从原始文本中学习图像是一种很有前途的选择,它利用了更广泛的监督来源。

作者证明了预测哪个标题与哪个图像相匹配的简单预训练任务是一种有效且可扩展的方法,可以在从互联网收集的4亿对(图像,文本)数据集上从头开始学习SOTA图像表示。在预训练之后,使用自然语言来参考学习到的视觉概念(或描述新的概念),从而实现模型向下游任务的零射击转移。作者通过对30多个不同的现有计算机视觉数据集进行基准测试来研究这种方法的性能,这些数据集涵盖了OCR、视频中的动作识别、地理定位和许多类型的细粒度对象分类等任务。

该模型不平凡地转移到大多数任务,并且通常与完全监督的基线竞争,而不需要任何数据集特定的训练。例如,在ImageNet zero-shot上匹配原始ResNet-50的精度,而不需要使用它所训练的128万个训练样本中的任何一个。
在这里插入图片描述
CLIP实现Zero-Shot分类的大致原理非常简单,如上图所示的三个步骤:

①CLIP通过对比学习的方法,将文本对和图像对应起来。同时对文本通过Text Encoder进行编码和对图像通过Image Encoder进行编码,将编码后的文本和图像进行对比学习,则在对比矩阵的对角线上属于正样本,而其他的元素属于负样本。(因为CLIP使用的数据集达到了400million,所以所需的内存和计算是非常庞大的,也正因如此CLIP作为预训练模型才体现出非常好的性能)

②对需要分类的标签转化为简单的文本,并将文本如步骤①中的Text Encoder进行编码。

③将需要进行分类的图像如步骤①中的Image Encoder进行编码,得益于步骤①训练出来的模型性能,输入的分类图像可以在对应标签的文本下取得最高的分数,从而输出对应的文本,即可得到对应的标签完成分类。

所以,CLIP在其未进行训练的数据集上也可以得到非常不错的分类效果。

引言

直接从原始文本中学习的预训练方法已经彻底改变了NLP(Bert、GPT、T5),使用自回归方式autoregressive和掩码语言建模masked
language modeling的方式都属于自监督方式,目标函数跟下游任务无关。属于text-to-text。

如果能直接解决下游任务的能力,则不需要再去研究对应任务的输出头和针对的数据集的处理(比如GPT-3)。

VirTex (Desai & Johnson, 2020)、ICMLM (Bulent Sariyildiz等人,2020)和ConVIRT (Zhang等人,2020)采用了最新的架构和预训练方法,最近展示了基于transformer的语言建模、掩码语言建模和对比目标从文本中学习图像表示的潜力。

CLIP在此基础上增大了规模,包括数据规模和模型规模:

创建了自己的文本-图像配对的数据集WIT(WebImageText,400million),模型尝试了ResNet到Efficient Net到Vision Transformer等8个模型,最大使用了VIT large。

为了验证有效性,CLIP模型不使用zero-shot(零样本,不需要01去进行分类别,对不同的事物都有对应的标签),而是做 linear-probe ,即模型预训练好之后选择冻住,从模型里抽取特征训练分类头,得到的效果比其他直接训练出来的模型要好,并且更高效。

而 zero-shot 比其他有监督或者弱监督的模型更加稳健。

方法

利用自然语言的监督信号来训练视觉模型

(好处:

①不需要再去标注类别,只需要下载图片文字的配对,容易建立大的数据集。而且监督信号是文本,而不是1-of-N,输入输出的自由度就大了很多。

②因为将图片和文本进行绑定,训练出来的是多模态特征,方便做zero-shot的迁移学习)

因为同一张图片可以有不同的文本描述,所以逐字逐句预测文本的预测任务是比较难实现的,因此采用对比学习的方式,只要文本跟图片能够对应就行。将预测型的目标函数变为对比型的目标函数,训练效率就提高了4倍。

在这里插入图片描述

(蓝线:GPT的预测模型,逐个单词预测;橙线:文本全局化特征的预测;绿线:CLIP对比学习方式判断是否为图片-文本对)

由于训练数据和模型都太大了,因此很多数据增强和其他操作都不需要了,只采用了随机裁剪的操作。(大“到”至简)

文本方面使用Transformer,图像方面使用ResNet或Transformer。

实验(3-6节)

zero-shot Transfer

之前的自监督或无监督的方法主要研究的是特征学习能力,目标是去学习一个泛化性比较好的特征,但要应用到下游任务还需要有标签的数据去做微调。而借助文本进行引导,可以灵活地去做zero-shot的迁移学习

在这里插入图片描述

CLIP和之前的VNG(2017年,在transformer发表之前,因此作者也说了这样的对比是不太公平的,但是这也能说明CLIP的有效性)在zero-shot上的对比:

在这里插入图片描述

Prompt Engineering 和 Ensembling(提示工程和集成)

prompt engineering(用了80个提示模板):

①解决单词多义性,使用句子模板在这里插入图片描述
仅仅使用这个提示符就可以将ImageNet上的准确率提高1.3%。

②如果对于已知的数据集,比如动物数据集 Oxford-IIIT Pets,则在这里插入图片描述

prompt ensembling:

多用提示模板,做多次推理,然后再进行综合得到更好的结果。

对比

在这里插入图片描述

zero-shot的CLIP同有监督训练的ResNet50在数据集上进行对比,CLIP在简单的分类任务上要更强,在一些专门的、复杂的或抽象的任务上非常弱。

zero-shot CLIP和Linear Probe CLIP以及其他的模型进行对比(数据是20个数据集上的结果合并):

在这里插入图片描述

文章做的实验非常多,更多实验细节和实验对比可以细看论文

相关论文和代码下载

有时候论文网站arXiv.org打开比较慢,已经将相关论文和代码上传到网盘,需要的可以自取

链接: https://pan.baidu.com/s/1J1h8R4KyY7k6NgS2t7YOZg?pwd=3ss8

可以关注公众号:

搜索:福尔马林灌汤包
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值