AAAI 2024 | Adobe提出全新上下文提示学习框架CoPL,高效提升下游性能

本文主要是介绍AAAI 2024 | Adobe提出全新上下文提示学习框架CoPL,高效提升下游性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4371db3d3c4840ec870827d18c37aa3c.png

 

论文题目:CoPL: Contextual Prompt Learning for Vision-Language Understanding
论文链接:https://arxiv.org/abs/2307.00910

提示学习(Prompt Learning)在近几年的快速发展,激活了以Transformer为基础的大型语言模型(LLM)的性能涌现。这一技术范式迅速在多模态学习等领域进行迁移,例如在CLIP跨模态对齐模型中加入可学习的Prompt,就可以在多种下游任务展现出通用性能,且具有一定的泛化能力。但这种简单的提示方法仍具有局限性,主要分为两个方面,其一是使用全局视觉特征作为提示输入可能会导致模型缺乏关注图像中前景对象的注意力能力。此外,在将提示送入到下游模块时,现有的方法对所有提示设置的权重完全相同,直观上思考,应该根据不同输入图像的内容来重新调整这一权重。

基于这两方面的局限,本文介绍一篇发表在人工智能顶级会议AAAI 2024上的文章,本文提出了一种称为上下文提示学习(Contextual Prompt Learning)的框架CoPL,CoPL可以更精确的实现提示信息与图像局部特征的对齐,为了使学习到的提示能够更好的适应到不同的下游任务中,作者设计了一种动态提示机制,从提取图像上下文特征的角度来对提示进行加权处理。本文的实验在包含few-shot和out-of-distribution等多种任务设置上进行,实验结果表明,CoPL在多模态提示学习领域已达SOTA性能。

01. 引言

传统的视觉分类任务通常需要在包含大规模类别的数据集上进行训练,例如ImageNet和OpenImages等。但是当模型在遇到一些训练分布之外的特殊图像时,就无法做出合理的预测,这种方法因为缺乏泛化性一直被学术界所诟病。研究人员开始探索如何将特定领域的知识注入到已有的模型中,使其具有一定的扩展能力。CoOp[1]方法是这一领域的先行工作,其通过引入NLP领域中提示学习的思想,通过训练可学习的提示向量来保留句子和标签之间的语义关系。但后来的一些工作指出,基于CoOp的方法具有灾难性知识遗忘的特点,同时仅采用模型的全局特征来生成提示,提示无法很好的适应到特定的下游任务中。

0f45b6bad60e4a9499f61b239c1a1a78.png

 

本文首先分析了现有框架的缺陷,相应的提出了一种上下文提示学习的改进框架CoPL,CoPL的关键思想是将提示与局部图像上下文进行对齐,如果仅使用全局特征,模型在很多few-shot和分布外的测试样本上很容易受到噪声的影响。如上图所示,CoPL首先确定图像局部上下文与哪些提示在语义上更相关,然后计算得到更合适的提示权重,通过拟合上下文信息到提示中,CoPL产生的特征会具有更强的鲁棒性和通用性

02. 本文方法

2.1 原始CLIP模型

2.2 CoOp和CoCoOp

2.3 上下文提示学习CoPL

虽然CoCoOp相比CoOp在性能方面已经获得了较大的提升,但其仍有很大的改进空间,由于 CoCoOp 使用全局特征向量来更新提示向量,因此其很难关注到图像中的局部感兴趣区域。此外,在将meta-net生成的条件向量附加到提示向量上时,CoCoOp没有体现不同区域的提示重要性。为了解决这些问题,本文提出了一种CoPL方法,CoPL方法的整体框架如下图所示。

2726049a9c624daeb41a3c85a78a027e.png

03. 实验效果

本文的实验在11个不同复杂度的图像分类数据集上进行,这些数据集主要包含通用分类数据集,例如ImageNet和Caltech-101,以及细粒度类别数据集:OxfordPets、StanfordCars、Flowers102、Food101和 FGVCAircraft。还有一些特殊领域中的标准数据集,例如场景识别、动作分类、纹理和卫星图像识别数据集。作者也选取了一些常见的CoOp变体方法作为baseline对比方法,包括CoCoOp、KgCoOp和ProGrad等。

7a6ea19c04dd4c25ab1acea89088f72a.png

 

上表展示了本文方法在上述几种数据集上的性能表现,本文作者提到,CoOp方法的主要缺点之一是其在训练分布之外的样本上表现不佳,无法很好的泛化到一些unseeen的类别上。本文的方法对这一方面进行了改进,如上表所示,CoPL在绝大多数数据集上的unseen子集上均获得了更好的分类精度。此外,我们还可以观察到,CoOp方法相比原始的CLIP方法性能有所下降,这也证明了其具有灾难性遗忘的问题

aec3492aeeb24d179fe1df1b72698e39.png

 

此外,作者在上图中进一步分析了本文提出的CoPL相比CoOp和CoCoOp方法在unseeen类别上的性能提升效果。可以看到,在行为识别数据集UCF101上,CoPL实现了将近20.6%的性能增益,而在其他语义信息较少的数据集,例如纹理数据集等,CoPL也可以得到一定的性能增益,这表明本文方法的出发点是正确的,通过对图像局部区域的注意力特征进行上下文建模,可以使得到的动态提示向量包含更多与下游任务相关的语义信息

b00edea5a49a46eabbf8f1be7967ad69.png

 

除了常规分类任务之外,本文作者还重点探索了本文方法在零样本(zero-shot)分类任务上的性能,如上表所示,首先将实验方法在简单的Caltech101数据集上进行训练,随后测试其在其他数据集上的性能,以评估方法的零样本迁移能力。从上表中可以看出,CoPL方法在大多数数据集上的表现都优于CoCoOp。虽然Caltech101是通用对象分类数据集,但是CoPL仍然能够将知识迁移到DTD数据集上来执行纹理识别任务

04. 总结

本文作者首先对现有基于提示的图像分类方法的缺陷进行了分析,即这些方法无法很好的关注到图像的局部关键信息。本文提出另一种全新的多模态提示学习方法CoPL,CoPL通过动态学习提示权重并将生成的提示向量与局部图像进行特征对齐来解决上述问题。作者通过在包含11个不同的数据集和场景中进行了完整的视觉分类实验,包括zero-shot、few-shot等不同的实验设置。实验结果表明,经过CoPL方法处理后的多模态对齐特征,具有良好的下游任务适应能力。

参考

[1] Zhou, K.; Yang, J.; Loy, C. C.; and Liu, Z. 2022b. Learning to Prompt for Vision-Language Models. Int. J. Comput. Vis., 130(9): 2337–2348.

[2] Zhou, K.; Yang, J.; Loy, C. C.; and Liu, Z. 2022a. Conditional Prompt Learning for Vision-Language Models. In CVPR.


关于TechBeat人工智能社区

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

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

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

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

这篇关于AAAI 2024 | Adobe提出全新上下文提示学习框架CoPL,高效提升下游性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694579

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、