论文:Learning Transferable Visual Models From Natural Language Supervision

CLIP: Contrastive Language-Image Pre-training

文中27个数据集简介:

数据集 简要描述 数据集类型
StanfordCars 196类小汽车, 16185张图片 细粒度分类
Country211 211个国家的带有GPS信息的图片,以评估视觉预测地理定位能力
Food101 101种食物,101k张图片 细粒度分类
Kinetics700 700种人类动作,每个动作700个视频片段 细粒度分类
SST2 文本情感分析数据集
SUN397 场景理解数据集,899个场景130k张图片 粗分类
UCF101 101种人类行为动作数据集 细粒度分类
HatefulMemes 可引起仇恨多模态图文对数据集
CIFAR10 10种类别数据集 粗分类
CIFAR100 100中类别数据集 粗分类
STL10 类似cifar数据集,每个类别有大量无标注图片 粗分类
FER2013 7分类表情数据集 细粒度分类
Caltech101 101种类别数据集 粗分类
ImageNet 1000种类别数据集 粗分类
OxfordPets 猫狗数据集 细粒度
PascalVOC2007 物体检测数据集 粗分类
Birdsnap 500种鸟类数据集49k张图片 细粒度
MNIST 10个数字分类 粗分类
FGVCAircraft 102种飞机数据集,每一类100张图片 细粒度
RESISC45 45种遥感场景图片数据集 粗分类
Flower102 102种花朵数据集,每种40-258张 细粒度
DTD 纹理数据集 粗分类
CLEVRCounts 合成的视觉问答数据集 粗分类
GTSRB 德国交通信号灯分类数据集 粗分类
PatchCamelyon 淋巴切片组织病理学扫描 粗分类
KITTI Distance 移动机器人和自动驾驶距离预测 回归
EuroSAT 遥感卫星图片10种类别 粗分类

论文针对27个数据集,关于零样本CLIP与全监督ResNet50基准模型进行对比。参考下图

(1)在细粒度分类数据集上,在有的数据集如StandfordCars和Food101上明显由于基准ResNet50 20个百分点;而在有些数据集上如Flowers102和FGVCAircraft上则明显低于基准10个百分点。论文猜测是由于不同监督任务的数据量有很大区别,但是结合上面粗略统计这4个细粒度数据集,类别的数量和每个类别下图片的数量都没有太大区别。

(2)Kinetic700和UCF101是人类动作分类数据集,零样本学习CLIP方法比基准方法高 10百分点上下。论文解释自然语言为涉及动词的视觉概念提供了更广泛的监督,而单纯的视觉监督任务主要以名称为主。

(3)零样本学习CLIP方法在更专业的复杂的抽象的任务上如遥感图像分类如EuroSAT和RESISC45,淋巴结肿瘤检测如PatchCamelyon,合成场景物体计数CLEVRCounts,自动驾驶相关的交通信号识别GTSRB,最近汽车距离识别KITTI Distance这些任务上,该方法表现比基准方法差很多。但是非专业人员在如卫星图片分类、计数、交通信号灯识别变现很稳健,说明零样本学习CLIP方法还有很大的改进空间。但是对于一些专业性很强的任务中,如淋巴结肿瘤辨别,即使是非专业人员也很难识别。零样本学习方法相比小样本学习方式,哪个更合适还有待进一步讨论。



Fig. 1

Zero-CLIP方法与few-shot方法对比

直觉认为Zero-shot方法会比few-shot方法性能差,实际表现是Zero-CLIP方法相当于基于相同特征空间 4-shot 线性分类方法。之所以如此,是由于这两种方法的区别。基于CLIP 的Zero-shot分类器,具备自然语言和视觉区分能力,还学习到了语言域和视觉域之间的关联。而常规的监督学习方法,并不能直接从训练样本中学习到概念(分类任务都会把类别标签都转换为0,1,2,……这些数字),另外图片中,经常包含多个不同视觉主体,而标签仅仅给出的其中的一个。

Linear probe CLIP:指基于CLIP特征,进行分类器单独训练。基于上述分析,Linear Probe CLIP 在开始1-shot,2-shot时还不如 Zero-Shot CLIP,单独训练分类器反而更差了。当每个类别变多时,效果才逐渐超过Zero-shot CLIP方法。在20个数据集上验证了,Zero-CLIP方法相当于基于相同特征空间 4-shot 线性分类方法。而基于其它Backbone提取的特征进行16-shot 分类,都不如Zero-Shot CLIP 方法。而16-shot CLIP 比16-shot 其它backbone方法高出10个百分点。



Fig. 2

Fig1是 Zero-CLIP方法与ResNet50监督方法进行对比,而Fig3是Zero-CLIP方法与基于CLIP特征空间的few-shot性能对比,这个对比是要求few-shot达到Zero-CLIP方法一样性能下数据集每个类别所需要的最少数量。Fig2表明基于CLIP特征的few-shot 并未都超过了Zero-CLIP,只有few-shot的每个类别数量超过一定数量如4-shot,才超过Zero-CLIP。

从Fig.3看出,达到Zero-CLIP的性能,在不同数据集上,基于CLIP特征训练分类器,不同数据集每个类别样本数量是不相同,从不到1个到最大的要求184个。

CLIP 读书笔记的更多相关文章

  1. 《android开发艺术探索》读书笔记(六)--Drawable

    接上篇<android开发艺术探索>读书笔记(五)--RemoteViews [BitmapDrawable] 简单的图片 <!xml version="1.0" ...

  2. 6 Specialzed layers 特殊层 第一部分 读书笔记

    6 Specialzed layers 特殊层  第一部分  读书笔记   Specialization is a feature of every complex organization. 专注是 ...

  3. 4 Visual Effects 视觉效果 读书笔记 第四章

    4   Visual Effects    视觉效果        读书笔记 第四章 Well, circles and ovals are good, but how about drawing r ...

  4. 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

    读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. [论文总结] 农业工程领域中App和Web相关应用论文笔记

    文章目录 1. Tomato leaf segmentation algorithms for mobile phone applications using deep learning 2. Int ...

  2. node设置下载源

    // 设置镜像源 npm config set registry https://registry.npm.taobao.org // 查看当前源 npm config get registry

  3. JavaBean为何物?

    JavaBean为何物?   摘要:初学SSM框架之后,我对JavaBean这个东西开始有了简单的接触,在很久以前听见JavaBean这个词一直以为是一个非常高大上的东西,但是在仔细研究之后发现其本质 ...

  4. 05-Sed操作参数(II)

    1 Sed操作参数 1.1 q 参数q表示跳离sed [address1]q sed执行跳离动作的时候,会停止输入pattern space数据,同时停止数据送到标准输出文件. 例1 对于文件执行sc ...

  5. 【分析笔记】Linux 内核自旋锁的理解和使用原则

    自旋锁简单说明: 自旋锁主要解决在竞态并发下,保护执行时间很短的临界区.它只允许一个执行单位进入临界区,在该执行单位离开前,其它的执行单位将会在进入临界区前不停的循环等待(即所谓的自旋),直至该执行单 ...

  6. Linux环境下:程序的链接, 装载和库[静态链接]

    看以下例子 main.c extern int x; int main() { int y = 100; swap(&x,&y); return 0; } int x = 1; voi ...

  7. Pulsar负载均衡原理及优化

    前言 前段时间我们在升级 Pulsar 版本的时候发现升级后最后一个节点始终没有流量. 虽然对业务使用没有任何影响,但负载不均会导致资源的浪费. 和同事沟通后得知之前的升级也会出现这样的情况,最终还是 ...

  8. Node.js学习笔记-----day05 (使用MongonDB重写学生信息管理案例)

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 使用MongonDB重写学生信息管理案例 1. 显示首页 先在crud-demo目录下安装mongoose 改写student.js var ...

  9. 互斥锁、线程理论、GIL全局解释器、信号量、event事件、进程池和线程池以及协程

    目录 一.互斥锁代码实操 1.互斥锁的概念 2.互斥锁的使用 3.死锁现象 4. 小结 二.线程理论 进程 线程 线程简介 为什么要使用多线程? 多线程概念 多进程的优点: 线程与进程的区别 线程的特 ...

  10. 一个通用的 java 项目的模板

    #!groovy def oper_checkout(SCM_TYPE,SCM_URL,SCM_AUTH_PASS,SCM_BRANCH=' ',SCM_AUTH_USER=' '){ if (SCM ...