当前位置:网站首页>CLIP论文解读
CLIP论文解读
2022-08-03 20:01:00 【‘Atlas’】
论文: 《Learning Transferable Visual Models From Natural Language Supervision》
github: https://github.com/openai/CLIP
问题
现有SOTA视觉模型预测一组固定的预定对象类别,因此限制了它们的通用性和可用性,因为额外的标签需要进行明确定义;
作者从互联网收集的 4 亿(图像,文本)对的数据集上从头开始学习 SOTA 图像表示,经过预训练后,自然语言用于参考学到的视觉概念,零样本迁移模型到下游任务;在30个不同视觉数据上测试,该模型非常重要地转移到大多数任务,并且通常与完全监督的基线相比具有竞争力,而无需任何数据集特定的训练。
方法
自然语言监督
跟其他训练方式相比,自然语言监督有以下优势:
1、与常规图像分类标定相比,自然语言更容易扩展,因为其不像图像分类中标签为N个中1个最合适标签;可从大量互联网文本中学习;
2、与无监督、半监督方法相比,自然语言监督不只是学习表征,并且将表征与语言联系起来,从而实现zero-shot迁移;
数据集
作者构建一个新数据集,包括4亿图像文本对,共50万个文本序列,每个文本序列对应多达2万个文本图像对;
有效预训练方法
训练效率是自然语言监督成功的关键;
现有预训练方法相似,都是预测text中准确单词,但是这种方案比较难,因为同一张图有各种各样描述。
虽然图像的生成模型可以学习高质量的图像表示,但它们需要比具有相同性能的对比模型多一个数量级的计算量。
因此,作者训练一个系统解决更容易的替代任务,即仅预测整个文本与哪个图像配对,而不是该文本的确切单词;将预测目标转变为对比目标,效率提升4倍,如图2
CLIP训练过程如下,伪代码如图3,结构如图2;
1、给定一个batch,N个图像文本对;
2、CLIP预测 N ∗ N N*N N∗N个可能对;CLIP学习多模态嵌入空间,通过联合训练图像编码器和文本编码器,最大化N个真实样本对,最小化 N ∗ 2 − N N*2-N N∗2−N个不相关样本对;
由于预训练数据集量大,因此过拟合问题不严重,而且训练过程图像编码器及文本编码器不需要预训练模型;
数据增强:
图像随机裁剪是训练过程使用的唯一一种数据增强;
模型选择
图像编码器:
ResNet50作为基线;
ResNet-D作为改进,替换全局池化为attention池化;
VIT,将patch和position embedding 结合后增加LN层;
文本编码器:
Transfoemer,结构依据 Radford《Language models are unsupervised multitask learners. 2019.》更改;
实验
Zero-Shot Transfer
在3个数据集上,CLIP大幅超过之前Zero-Shot方法,如表1;
图5与全监督方法比较,27个数据集,其中16个数据集上CLIP性能超过全监督Res50方案,其中包括ImageNet;
图6表示few-shot方法比较,Zeor-Shot CLIP与4-shot Linear Probe CLIP性能价接近,Linear Probe CLIP超越其他模型;
结论
CLIP模型验证NLP迁移至其他任务可行性,在预训练时学习各种任务表现,使得可以zero-shot迁移至许多已有数据集,取得与全监督模型接近效果;
边栏推荐
- Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting
- 华为设备配置VRRP负载分担
- 【leetcode】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)
- Go语言类型与接口的关系
- 盘点在线帮助中心对企业能够起到的作用
- 开源教育论坛| ChinaOSC
- ESP8266-Arduino编程实例-WS2812驱动
- Network protocol-TCP, UDP difference and TCP three-way handshake, four wave
- php根据两点经纬度计算距离
- 149. 直线上最多的点数-并查集做法
猜你喜欢
ThreadLocal详解
Hinton2022年RobotBrains访谈记录
ECCV2022 | 用于视频问题回答的视频图Transformer
JS 内置构造函数 扩展 prototype 继承 借用构造函数 组合式 原型式creat 寄生式 寄生组合式 call apply instanceof
盘点在线帮助中心对企业能够起到的作用
ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
余弦距离介绍
LeetCode 622. Designing Circular Queues
基础软件与开发语言开源论坛| ChinaOSC
codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
随机推荐
演讲议题及嘉宾重磅揭晓,TDengine 开发者大会推动数据技术“破局”
ECCV2022 | 用于视频问题回答的视频图Transformer
标准C语言学习总结11
Golang死信队列的使用
盘点在线帮助中心对企业能够起到的作用
抖音web逆向教程
List类的超详细解析!(超2w+字)
Node version switching tool NVM and npm source manager nrm
详解AST抽象语法树
Alexa染料标记RNA核糖核酸|RNA-Alexa 514|RNA-Alexa 488|RNA-Alexa 430
【leetcode】剑指 Offer II 009. 乘积小于 K 的子数组(滑动窗口、双指针)
net-snmp私有mib动态加载到snmpd
alicloud3搭建wordpress
后台图库上传功能
数据驱动的软件智能化开发| ChinaOSC
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
Detailed explanation of JWT
PHP according to the longitude and latitude calculated distance two points
盘点在线帮助中心对企业能够起到的作用