当前位置:网站首页>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迁移至许多已有数据集,取得与全监督模型接近效果;
边栏推荐
猜你喜欢

LeetCode 952. Calculate Maximum Component Size by Common Factor

tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)

CS kill-free pose

MySQL Basics

转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G

数据驱动的软件智能化开发| ChinaOSC

开源生态研究与实践| ChinaOSC

花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!

Network protocol-TCP, UDP difference and TCP three-way handshake, four wave

Shell programming loop statement
随机推荐
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
alicloud3搭建wordpress
Handler source code analysis
演讲议题及嘉宾重磅揭晓,TDengine 开发者大会推动数据技术“破局”
入门3D建模基础教程详细分解
matplotlib画polygon, circle
PHP according to the longitude and latitude calculated distance two points
盘点在线帮助中心对企业能够起到的作用
剑指 Offer II 044. 二叉树每层的最大值-dfs法
622 设计循环队列——Leetcode天天刷【循环队列,数组模拟,双指针】(2022.8.2)
Detailed demonstration pytorch framework implementations old photo repair (GPU)
Go语言为任意类型添加方法
Kettle 读取 Excel 数据输出到 Oracle 详解
tensorflow-gpu2.4.1安装配置详细步骤
百利药业IPO过会:扣非后年亏1.5亿 奥博资本是股东
Golang死信队列的使用
Detailed AST abstract syntax tree
ARMuseum
Interview Blitz: What Are Sticky Packs and Half Packs?How to deal with it?
怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)