ICCV 2023 | SuS-X:仅靠类别名称微调CLIP模型,剑桥大学联合DeepMind出品

论文链接: https://arxiv.org/abs/2211.16198
代码仓库: https://github.com/vishaal27/SuS-X

对比语言图像预训练(Contrastive Language-Image Pre-training,CLIP) 已成为计算机视觉社区通向自然语言领域的一种常用的方法,CLIP模型在各种下游任务上都展示除了强大的零样本(zero-shot)分类和检索性能。然而,为了在特定的下游任务上充分发挥其潜力,微调CLIP仍然是一个必需的步骤。对于普通的视觉任务而言,微调时需要访问大量目标任务分布中的图像,因而微调整个CLIP模型可能会占用大量的算力资源并且训练效果并不稳定

本文介绍一篇来自剑桥大学和DeepMind合作完成的论文,本文已被计算机视觉顶级会议ICCV 2023录用。在本文中作者提出了一种名为SuS-X的微调方法,SuS-X可以实现一种“仅靠名称迁移(name-only transfer)”的效果,即在微调过程中,模型对下游任务所掌握的唯一知识就是下游目标类别的名称。SuS-X由两个关键构建模块“SuS”和“TIP-X”组成,其既不需要密集数据的微调,也不需要昂贵的标记数据,打造了一种全新的微调范式。作者进行了大量的实验来评估SuS-X方法的可行性和性能,SuS-X在多达19个基准数据集上均实现了SOTA零样本分类效果。

01. 介绍

在开始介绍本文工作之前,我们简单回顾一下CLIP模型[1],CLIP是在含有4亿图像文本对的超大规模语料库上训练得到,其使用对比损失来最大化成对图像文本样本之间的相似性。CLIP在视觉语言设置中率先提出了零样本迁移的概念,即可以实现对未见过的样本进行分类。例如给定一个分类任务,CLIP可以直接将类别标签转换为对应类别的文本提示。例如“一个<CLASS> 的照片。”,其中<CLASS>随后会被每个类别的真实文本标签替换。然后,CLIP会计算所有类别的查询图像和文本提示之间的相似性,并选择提示与查询图像具有最大相似度的类作为预测标签。然而,CLIP的零样本性能通常会受到其预训练分布的限制。如果下游数据集分布与预训练期间训练的图像分布相差太大,CLIP的零样本性能会急剧下降。

为了缓解这一问题,本文作者的目标是采用CLIP和其他视觉语言模型(vision language models,VLMs)仅通过名称(仅需要类别名称,而不需要来自目标域的样本)和免训练的方式进行下游分类。本文提出的SuS-X框架如下图所示,其由两个新颖的模块组成:

(1)SuS(支持集,Support Sets),通过设计一种动态支持集管理策略,来实现无需来自目标任务的样本的训练效果。

(2)TIP-X,通过部署一个免训练的适应模块来将支持集得到的类别信息迁移到各种下游任务中。

对于给定的下游任务,SuS-X首先利用任务类别标签来构建一个支持集,然后从大型视觉语言数据库中(例如,LAION-5B[2])检索一系列真实场景中的图像。然后将构建好的支持集送入到TIP-X模块中进行下游任务迁移。

02. 方法细节

下图展示了SuS-X的两个主要模块SuS和TIP-X的内部细节,其中SuS模块位于图中右上角,通过构建动态支持集,可以仅基于目标类别名称来将视觉知识注入VLM。TIP-X模块位于图中右下角,是一种新型的免训练方法,可以直接利用图像文本距离来计算支持集和测试图像之间的相似性

2.1 SuS的构建

2.2 TIP-X免训练推理

03. 实验效果

为了详细的评估SuS-X零样本能力,作者在多达19个数据集上对其进行了测试,并且选择了6个非常流行的baseline方法。为了对比公平,作者将所有参与实验的方法的视觉backbone都设置为ResNet50。下表展示了SuS-X与其他baseline方法分别在Zero-Shot和Name-Only两种实验设置下的性能对比结果。

如上表所示,在所有19个数据集上,SuS-X方法的性能均达到了最佳,相比零样本CLIP,性能提升达到了4.6%。 此外,SuS-X相比目前免训练自适应方法中的两个SOTA(CuPL+ensemble 和VisDesc)平均性能提升达到1.1%和3.1%。

3.1 在不同VLM上的迁移效果

为了评估SuS-X方法的泛化性能,作者选用了其他两个常用的VLM进行实验,分别是TCL和BLIP,作者只保留了这些模型的图像和文本编码器来计算特征。下表为实验结果。

从上表中可以看出,本文提出的SuS-X方法在两个VLM中均明显优于所有基线方法,在19个数据集上的零样本性能平均提高了11.37%和5.97%。这表明本文方法并非特定于CLIP模型,而是可以轻松泛化到其他不同的VLM上

3.2 从Zero-Shot适应到few-shot

SuS-X方法的一个关键组成部分是TIP-X模块,TIP-X可以直接扩展到few-shot设置上,其中支持集是来自目标域的标记样本。为了在这种真实环境的支持集上评估TIP-X,作者对其进行了免训练的小样本分类实验,并且与同类型的SoTA方法——TIP-Adapter进行比较。下图展示了SuS-X、TIP-Adapter以及Zero-shot CLIP在K-shot分类任务设置上使用了11个数据集子集测试效果,其中K分别取1、2、4、8和16。

从图中可以看到,TIP-X明显优于Zero-shot CLIP和TIP-Adapter(在不同K-shot上的平均绝对增益为0.91%),这进一步证明了TIP-X方法在适应到few-shot免训练设置方面的通用性

3.3 对SuS支持集进行可视化

为了进一步展示SuS-X方法的综合能力,作者在下图中可视化了其在ImageNet上构建的两种支持集,其中来自ImageNet的真实图片与SuS包含的支持集图像按照相同的类别名称进行划分。其实我们很难区分真实的ImageNet样本和SuS样本,因此可以使用SuS支持集来模拟真实的数据分布。

04. 总结

本文针对Zero-shot和Few-shot问题,提出了一种仅通过类别名称迁移的模型免训练新范式,称为SuS-X。SuS-X仍然遵循对比学习原则,可以在多种大型语言视觉模型上完成新任务适应和微调。其首先通过SuS模块系统的构建一个包含丰富知识的支持集,但是无法访问任何目标分布中的样本。随后通过TIP-X模块将原始分类器能力快速迁移到新任务上,这一过程中无需密集数据的微调,也不需要非常标准的标注数据。通过研究SuS-X框架,作者观察到了先前方法中使用CLIP模态内嵌入距离来计算模态相似性的缺陷,并基于本文方法对这种嵌入距离进行了校准。

参考

[1] Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, et al. Learning transferable visual models from natural language supervision. In International Conference on Machine Learning, pages 8748–8763. PMLR, 2021

[2] Christoph Schuhmann, Romain Beaumont, Richard Vencu, Cade Gordon, Ross Wightman, Mehdi Cherti, Theo Coombes, Aarush Katta, Clayton Mullis, Mitchell Wortsman, et al. Laion-5b: An open large-scale dataset for training next generation image-text models. arXiv preprint arXiv:2210.08402, 2022

[3] Renrui Zhang, Wei Zhang, Rongyao Fang, Peng Gao, Kunchang Li, Jifeng Dai, Yu Qiao, and Hongsheng Li. Tipadapter: Training-free adaption of clip for few-shot classification. arXiv preprint arXiv:2207.09519, 2022.

作者:seven_


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/75144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习入门教学——交叉验证

1、简介 交叉验证是在机器学习建立模型和验证模型参数时常用的办法&#xff0c;一般被用于评估一个机器学习模型的表现。更多的情况下&#xff0c;我们也用交叉验证来进行模型选择。【注】在训练模型时&#xff0c;为了提高模型的质量&#xff0c;我们会将数据集划分为训练集、…

代码随想录Day_60打卡

①、柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 事例&#xff1a; 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;1…

UDP聊天室

1.头文件 /* * 文件名称&#xff1a;UDP.h * 创 建 者&#xff1a;crx * 创建日期&#xff1a;2023年09月3日 * 描 述&#xff1a; */ #ifndef _UDP_H #define _UDP_H#include <stdio.h> #include <sys/types.h> /* See NOTES */ #includ…

Unity 之 Material (材质)渲染3D对象的重要组件

文章目录 介绍一些代码例子 介绍 在Unity中&#xff0c;Material&#xff08;材质&#xff09;是一种用于渲染3D对象的重要组件。Material定义了对象的外观&#xff0c;包括其颜色、纹理、光照属性和反射等。以下是关于Material的详细介绍&#xff1a; 创建Material&#xff1…

云计算时代的采集利器

大家好&#xff01;在今天的知识分享中&#xff0c;我们将探讨一个在云计算环境中的爬虫应用利器——独享IP。如果你是一名爬虫程序员&#xff0c;或者对数据采集和网络爬虫有浓厚的兴趣&#xff0c;那么这篇文章将向你展示独享IP在云计算环境下的应用价值。 1. 什么是独享IP&…

冠达管理:元宇宙三年行动计划发布,高增长潜力股名单出炉

未来5年&#xff0c;国内元国际商场规划至少打破2000亿元大关。 金融监管总局9月10日发布《关于优化保险公司偿付能力监管规范的告诉》&#xff0c;优化保险公司偿付能力监管规范&#xff0c;自发布之日起施行。 金融监管总局释放重要利好&#xff0c;引导保险资金更大力度地…

ClickHouse 存算分离改造:小红书自研云原生数据仓库实践

ClickHouse 作为业界性能最强大的 OLAP 系统&#xff0c;在小红书内部被广泛应用于广告、社区、直播和电商等多个业务领域。然而&#xff0c;原生 ClickHouse 的 MPP 架构在运维成本、弹性扩展和故障恢复方面存在较大局限性。为应对挑战&#xff0c;小红书数据流团队基于开源 C…

四叶草clover配置工具:Clover Configurator for Mac

Clover Configurator是一款Mac上的工具&#xff0c;用于配置和优化Clover引导加载器。Clover引导加载器是一种用于启动macOS的开源引导加载器。它允许用户在启动时选择操作系统和配置启动选项。 Clover Configurator提供了一个可视化的界面&#xff0c;让用户可以轻松地编辑和…

PlantUML入门教程:画时序图

软件工程中会用到各种UML图&#xff0c;例如用例图、时序图等。那我们能不能像写代码一样去画图呢&#xff1f; 今天推荐一款软件工程师的作图利器--PlantUML&#xff0c;它能让你用写代码的方式快速画出UML图。 一、什么是PlantUML&#xff1f; PlantUML是一个允许你快速作出…

【Ubuntu搭建MQTT Broker及面板+发布消息、订阅主题】

Ubuntu搭建MQTT Broker及面板发布消息、订阅主题 配置curl数据源 curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash开始安装 sudo apt-get install emqx启动 sudo emqx start使用面板 根据自己的服务器是否开始了防火墙放行端口&#xff08;1808…

2023工博会,正运动机器视觉运动控制一体机应用预览(二)

展会倒计时&#xff1a;7天 本次的中国国际工业博览会正运动技术将携高性能x86平台Windows实时视觉运动控制器VPLC711亮相。 •运动控制机器视觉一站式开发&#xff0c;缩短开发周期&#xff0c;降低硬件成本&#xff1b; •可替代传统的工控机运动控制卡/PLC视觉软件的自动化…

平衡二叉搜索树(AVL)——【C++实现插入、删除等操作】

本章完整代码gitee地址&#xff1a;平衡二叉搜索树 文章目录 &#x1f333;0. 前言&#x1f332;1. AVL树概念&#x1f334;2. 实现AVL树&#x1f33f;2.1 结构定义&#x1f33f;2.2 插入&#x1f490;左单旋&#x1f490;右单旋&#x1f490;左右双旋&#x1f490;右左双旋 &a…

TypeScript:赋予JavaScript数据类型新的力量,提升编程效率!

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ &#x1f4da; 前言 TypeScript&#xff1a;扩展JavaScript数据类型&#xff0c;赋予编程更强大的表达能力&#xff01…

数据挖掘实验-主成分分析与类特征化

数据集&代码https://www.aliyundrive.com/s/ibeJivEcqhm 一.主成分分析 1.实验目的 了解主成分分析的目的&#xff0c;内容以及流程。 掌握主成分分析&#xff0c;能够进行编程实现。 2.实验原理 主成分分析的目的 主成分分析就是把原有的多个指标转化成少数几个代表…

Kafka3.0.0版本——消费者(Sticky分区分配策略以及再平衡)

目录 一、Sticky分区分配策略原理二、Sticky分区分配策略 示例需求三、Sticky分区分配策略代码案例3.1、创建带有7个分区的sevenTopic主题3.2、创建三个消费者 组成 消费者组3.3、创建生产者3.4、测试3.5、Sticky分区分配策略代码案例说明 四、Sticky分区分配再平衡案例4.1、停…

Redis 删除策略

文章目录 Redis 删除策略一、过期数据二、数据删除策略1、定时删除2、惰性删除3、定期删除4、删除策略对比 三、逐出算法 Redis 删除策略 一、过期数据 Redis是一种内存级数据库&#xff0c;所有数据均存放在内存中&#xff0c;内存中的数据可以通过TTL指令获取其状态 XX &a…

【李自然说】在创业路演现场,3分钟打动投资人 (notebook)[Updating]

【李自然说】在创业路演现场&#xff0c;3分钟打动投资人_哔哩哔哩_bilibili 融资的核心问题&#xff08;三分钟内讲清楚&#xff09; - 竞争者做什么&#xff0c;我们做什么 &#xff08;是否有&#xff0c;没有那潜在competitor是谁&#xff0c;有没有可能变成合作伙伴&#…

构建高效实时数据流水线:Flink、Kafka 和 CnosDB 的完美组合

当今的数据技术生态系统中&#xff0c;实时数据处理已经成为许多企业不可或缺的一部分。为了满足这种需求&#xff0c;Apache Flink、Apache Kafka和CnosDB等开源工具的结合应运而生&#xff0c;使得实时数据流的收集、处理和存储变得更加高效和可靠。本篇文章将介绍如何使用 F…

java的动态代理如何实现

一. JdkProxy jdkproxy动态代理必须基于接口(interface)实现 接口UserInterface.java public interface UserService {String getUserName(String userCde); }原始实现类&#xff1a;UseServiceImpl.java public class UserServiceImpl implements UserSerice {Overridepub…

举例说明PyTorch函数torch.cat与torch.stack的区别

一、torch.cat与torch.stack的区别 torch.cat用于在给定的维度上连接多个张量&#xff0c;它将这些张量沿着指定维度堆叠在一起。 torch.stack用于在新的维度上堆叠多个张量&#xff0c;它会创建一个新的维度&#xff0c;并将这些张量沿着这个新维度堆叠在一起。 二、torch.…