(论文解读)Domain Adaptation via Prompt Learning

摘要

无监督域适应( UDA )旨在将从带有标签的源域数据中学习到的模型适应到未标注的目标域数据集。现有的UDA方法通过对齐源域和目标域特征空间来学习领域不变特征。这种对齐是通过约束实现的,例如统计差异最小化或对抗学习。

然而,这些约束会导致语义特征结构的扭曲和类别判别性的丧失。

本文提出一种新的UDA提示学习范式,命名为基于提示学习的领域自适应( Domain Adaptation via Prompt Learning,DAPL )。与之前的工作相比,本文方法使用了预训练的视觉语言模型,并且只优化了很少的参数。其主要思想是将领域信息嵌入到文本提示中,提示是由自然语言生成的一种表示形式,并用于分类。领域信息仅由来自同一领域的图像共享,从而根据每个域动态地自适应分类器。

通过采用这种范式,本文模型不仅在几个跨领域的基准上优于以前的方法,而且训练效率很高,易于实现。

Introduction

近年来,深度学习在大规模标注数据集的帮助下取得了巨大的成功。由于对大规模数据集进行标注成本高、耗时长,研究人员提出利用标注好的相关领域为未标注领域训练模型。然而,在已标注领域上训练的模型可能由于分布偏移而不能很好地泛化到未标注领域。无监督领域适应问题就是为了解决这种领域偏移下的知识转移问题。

传统的UDA方法主要通过对齐源域和目标域来学习领域不变表示。解释图1:利用领域对齐实现的相似特征分布,在源域上训练的分类器可以直接应用于目标域(图1 ,top)。(1)这类方法的一种是基于统计差异最小化,最大均值差异(MMD)和中心矩差异(CMD)。(2)另一种方法通过应用领域判别器,通过对抗训练来学习领域不变特征。这类方法通过混淆域判别器来减少源域和目标域在特征空间中的差异。  无论如何,通过领域对齐来减少差异可能会导致语义信息的丢失。当数据分布的流形结构复杂时,语义信息和领域信息纠缠在一起导致损失。为了弥补这一点,最近的一些UDA方法提出保留语义信息以保证类的判别性。由于领域对齐和保留语义特征两个目标是对抗性的,这些方法在两者之间进行了微妙的权衡。学习解耦的语义信息和领域表征可能是一种替代方法,因为领域对齐可以被放弃。

为了学习解耦的语义信息和领域表示,本文将提示学习方法引入到UDA中,在连续的标签空间中学习表示。解释图2:提示文本由三部分组成:领域无关上下文、领域特定上下文和类标签( token )。每个图像通过文本提示的类别标签对应一个类别。例如,显示"an art work of a dog"的图像可以对应提示"An image of a paingting Dog"。领域无关上下文表示一般的任务信息,并在所有图像之间共享。特定领域的上下文表示领域信息,并在每个领域中共享。类标签区分不同的类别。

提示学习方法允许学习领域和类别解耦的表示,避免了语义信息的丢失。继续解释图1(bottom):本文应用对比目标来训练。只有当图像和文本的领域和类别分别匹配时,图像和文本才构成一对正例,而其他情况都是反例。通过对比源域图像XS和类标签y的表征,在特征空间中分别对"草图"和"狗"的图像和文本表示进行对齐。进一步,通过对比目标域图像XT和标签y,将"素描"的文本表征推离"photo"域。因此,领域和类别的表征是分别对齐的。本文采用CLIP作为骨干网络来促进提示学习和对比学习。

在两个经典的跨域基准测试集上的大量实验表明,本文方法具有良好的性能,例如,我们在Office - Home和VisDA - 2017上取得了74.5 % / 86.9 %的sota性能。

本文贡献

(1)本文提出了基于提示学习的领域自适应( DAPL ),用于无监督的领域自适应(UDA)。本文首个将提示学习应用于无监督领域自适应中的。

(2)本文提出在提示中使用领域特定的上下文。因此,我们不必以丢失语义信息为代价来对齐领域。本文方法可以学习每个类别和领域的连续语义表示。

(3)本文提出的DAPL在Office - Home和VisDA - 2017数据集上取得了最先进的性能,比强基线CLIP提高了2.5 % / 2.5 %的准确性。

Method

源域数据集Ds(大小为Ns):

目标域数据集Du(大小为Nu):

源域数据集和目标域数据集共享K个类别范畴。

3.1 Preliminaries

本文采用CLIP作为骨干网络。本文模型由一个图像编码器f(·)和一个文本编码器g(·)组成。图像编码器可以是ResNet或者Vision Transformer (ViT),文本编码器是Transformer。图像和文本输入通过编码器直接从高维空间转换到低维特征空间。

CLIP使用图像-文本对以对比的方式进行训练。每个输入文本以' a photo of a [ CLASS ] ' 的格式描述一个类别。一个正对包含图像xi和描述该图像对应类别的文本ti组成。负对是在小批量中具有不相关描述tj和图像xi。训练的目标是使正对的余弦相似度最大和使负对的余弦相似度最小。对比学习目标将图像和文本表示在同一特征空间中对齐。

利用对齐后的特征,模型能够进行zero-shot推理。通过计算与k个文本的与相似度得到预测概率,该图像属于相似度最大的类别:

上面描述的输入文本是由一系列离散的token组成的手动设计的提示文本。将人工设计的提示转化为单词嵌入空间中的固定向量。由于这些向量对于类别的表示可能是次优的,我们可以优化标记的连续嵌入。连续表征tk允许更精确地描述对上下文变量学习重要的语义特征。

现有的提示学习方法采取了一种领域无关的风格,其中上下文在所有的领域的类别中是共享的,本文提示表示为:

3.2. Domain Adaptation via Prompt Learning

(1)由于领域无关的上下文提示不能解决领域之间的分布偏移问题,本文提出使用领域特定上下文(DSC)来捕获每个领域的特征。具体来说,我们提出上下文提示包含两个部分,领域无关上下文和领域特定上下文。(m2 ∈ {1, 2, . . . , M2},d ∈ {s,u})表示领域特定token,其维度和单词嵌入的维度相同。领域上下文提示在所有的类别中共享,但是其专门为每个领域设计(源域与目标域中不同)。其中M2代表领域特定token的个数。

提示的整体格式设计为:

(2)当文本特征空间中的[Class]token不足以对每个类别之间的差异进行建模时,领域无关上下文可以按照类特定的样式进行表示。因此每个类别可以用不同的token 进行初始化(其中d用于区分源域和目标域,k用于区分不同的类别,M1表示领域无关上下文的token数目,M2表示领域特定上下文的token数目):

可训练的类别特定上下文(领域无关上下文)比仅使用[Class]token可以学习到更细粒度的表示。本文就是采用的Eq.5中的类别特定上下文+领域特定上下文+[Class]。

(3)由于本文源域和目标域中的提示并不同,因此本文由2k个类别。给定源域中一组训练样本,可以得到该图像属于K个类别的预测概率:

根据图像x属于k个类别的预测概率分数,得到其真实类别标签,并且将其交叉熵损失最小化。损失函数:

(4)为了更深地探索未标记的数据,本文为目标域数据生成伪标签,从K个类别中选出预测概率最大的类别作为训练数据xu的伪标签yu。

本文只为目标域中预测概率大于伪标签质量标准τ的类别生成伪标签,并且使用CLIP的zero-shot能力生成伪标签。

然后使用目标域数据集及其伪标签基于Eq.6训练目标域的提示,通过对比学习目标进行训练:

(5)本文DAPL方法可以以端到端的方式进行训练,损失函数为:

3.3. Disentanglement by Contrastive Learning

本文采用对比损失L作为优化目标。本文为对比损失达到预期目标做了直观的解释:视觉编码器和文本编码器分别将输入编码为两个解耦的潜在表示,将领域信息和内在的类别信息进行分类。当类别信息和领域信息都对齐时,文本特征和图像特征之间的距离才最小。通过最小化正对之间的距离,正确标签的预测概率才最大化。

解释图4(a):首先,假设视觉表征

包含两个部分:领域d的领域信息zd和类别c的内在类别信息zc。类似,文本特征也包含以上两个部分pd和pc。接下来证明领域信息和类别信息可以通过优化目标进行分开。

解释图4(b):四个图像-文本对,其中有两个类别(猫、狗)和两个领域(照片、素描)。图像I1与提示P1形成正对,与提示P2形成负对。通过优化对比目标,图像特征f(I1)与g(P1)的句子嵌入之间的距离最小化,图像特征f(I1)与g(P2)的句子嵌入之间的距离最大化。这就表示狗的类别信息可以从草图/照片的领域信息中进行脱离开。相反,假设领域信息和类别信息仍然纠缠,即领域表示( p1d和p2d)包含狗的类别信息。在这种情况下,I1和P2仍然匹配,并且f (I1)和g (P2)之间的距离可以通过移除该类信息进一步最大化。换句话说,通过优化对比损失来减少领域表示中的类别信息。类似地,以( I1, P3)为负对,我们从类别表征中移除域信息,否则由于类表示中照片的纠缠域信息,f(I1)仍然匹配g(P3)。结合这两个负对,通过最小化对比目标,可以迫使领域表示和内在类别信息相互解耦。

Conclusion

本文介绍了一种新颖的用于无监督域适应的提示学习方法,它不像传统方法那样在领域之间进行特征对齐。相反,我们为每个领域设计特定领域的上下文,以促进学习源域和目标域的不同领域表示。通过利用提示学习,本文在多模态方法和领域自适应方法之间架起了一座桥梁。广泛的结果证明了本文方法的优势。提示学习方法未来可以扩展到无监督域适应中的其他视觉任务,如语义分割等

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

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

相关文章

AudioNotes -将音频内容转 markdown

文章目录 一、关于 AudioNotes效果展示音视频识别和整理与音视频内容对话 二、使用方法1、安装 Ollama2、拉取模型3、部署服务3.1 Docker部署(推荐)🐳3.2 本地部署 📦 一、关于 AudioNotes AudioNotes 能够快速提取音视频的内容&…

【C# 】使用List<实体类>

1. 使用List<实体类> 要在C#中使用List<EntityTemp>并实现查找数据输出&#xff0c;首先需要定义EntityTemp类&#xff0c;并创建一个List<EntityTemp>类型的列表。然后&#xff0c;你可以使用LINQ或其他方法来查找和输出数据。 假设EntityTemp类具有一个…

Kafka快速入门:Kafka驱动JavaApi的使用

生产者和消费者是Kafka的核心概念之一&#xff0c;它们在客户端被创建和使用&#xff0c;并且包含了许多与Kafka性能和机制相关的配置。虽然Kafka提供的命令行工具能够执行许多基本操作&#xff0c;但它无法实现所有可能的性能优化。相比之下&#xff0c;使用Java API可以充分利…

zigbee笔记、十五、组播通信原理

一、zigbee四种通讯 1、单播&#xff08;略&#xff09; 2、广播&#xff08;略&#xff09; 3、组播&#xff1a;在zigbee网络中&#xff0c;模块可以用分组来标记&#xff0c;发送的模块如果发送的组号和网络里面标记接收模块的组号相对应&#xff0c;那么这些模块就可以拿到…

C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)

前言 C#/.NET/.NET Core技术前沿周刊&#xff0c;你的每周技术指南针&#xff01;记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿&#xff0c;助力技术成长与视野拓宽。 欢迎投稿&#xff0c;推荐…

innodb_buffer_pool_size在线缩小操作

一、背景 测试数据库内存32G&#xff0c;只有MySQL数据库&#xff0c;但是innodb_buffer_pool_size设置了24G&#xff0c;导致经常出现lack of memory问题、lack of swap问题。 因为使用了MySQL5.7.36版本&#xff0c;利用innodb_buffer_pool_size参数值可在线调整的新特性&…

C++函数调用栈从何而来

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~ 个人主页&#xff1a; rainInSunny | 个人专栏&#xff1a; C那些事儿、 Qt那些事儿 文章目录 写在前面原理综述x86架构函数调用栈分析如何获取rbp寄存器的值总结 写在前面 程序员对函数调用栈是再熟悉不过了&#xff0c;无论是使用IDE…

基于cubemx的STM32的freertos的串口通信

1、任务描述 使用freertos系统实现电脑调试助手和正点原子开发板STM32F103ZET6的串口通信。 2、cubemx设置 3、程序代码 &#xff08;1&#xff09;添加usart1.c #include "usart1.h"#include "usart.h"/**********重定义函数**********/struct __FILE …

阵列信号处理2_阵列信号最优处理常用准则(CSDN_20240825)

目录 最小均方误差&#xff08;Minimum Square Error&#xff0c;MSE&#xff09;准则 最大信噪比&#xff08;Maximum Signal Noise Ratio&#xff0c;MSNR&#xff09;准则 极大似然&#xff08;Maximum Likehood, ML&#xff09;准则 最小方差无损响应&#xff08;Minim…

速通教程:如何使用Coze+剪映,捏一个爆款悟空视频

程哥最近做了一个和黑神话悟空有关的视频&#xff0c;没想到就火了&#xff0c;视频主打一个玉石风格&#xff0c;就是下面这个视频。 视频请移步飞书观看&#xff1a;黑神话悟空玉石版 制作过程不算很复杂&#xff0c;全程只需要用到Coze智能体和剪映这两个工具。 智能体用…

【JVM】亿级流量调优(一)

亿级流量调优 oop模型 前面的klass模型&#xff0c;它是Java类的元信息在JVM中的存在形式。这个oop模型是Java对象在JVM中的存在形式 内存分配策略: 1.空闲列表2.指针碰撞(jvm采用的) 2.1 top指针:执行的是可用内存的起始位置 2.2 采用CAS的方式3.TLAB 线程私有堆4.PLAB 老年…

使用DropZone+SpringBoot实现图片的上传和浏览

经常在项目中需要使用上传文件功能&#xff0c;找了不少前端上传组件&#xff0c;都不是很好用&#xff0c;今天尝试了一下DropZone&#xff0c;发现不错&#xff0c;顺便记录一下使用过程&#xff0c;方便后续查阅。在做开发的时候&#xff0c;经常需要调研一些技术&#xff0…

C# 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符&#xff0c;分为一下六类&#xff1a; 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 C# 支持的所有算术运算符。假设变量 A 的值为 10&#xff0c;变量 B 的值…

安全面试常见问题任意文件下载

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 1.1 任意文件下…

旅游社交小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;每日签到管理&#xff0c;景点推荐管理&#xff0c;景点分类管理&#xff0c;防疫查询管理&#xff0c;美食推荐管理&#xff0c;酒店推荐管理&#xff0c;周边推荐管理 微信端账…

《数据结构》顺序表+算法代码+动画演示-C语言版

目录 顺序表概念 顺序表初始化 顺序表销毁 顺序表尾插 顺序表尾删 顺序表头删 顺序表头插 顺序表pos位置插入 顺序表pos位置删除 顺序表全部代码如下&#xff1a; 顺序表概念 顺序表是用一段 物理地址连续 的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下…

多个程序监听不同网卡的相同端口、相同网卡不同IP的相同端口

1 概述 一个主机上的多个程序监听同一个端口&#xff0c;是否一定存在冲突&#xff1f;如果是多网卡、单网卡多IP的情景下&#xff0c;多个程序是可以独立监听的。 2 多个程序监听不同网卡的相同端口 3 多个程序监听同一个网卡不同IP的相同端口 4 小结 多个程序监听同一个网…

【C语言】常见文件操作

文件的常见操作 #include<stdio.h>// 由于devc代码编码为ANCI&#xff0c;故读取的文件中若有中文&#xff0c;请设置文件编码为ANCI&#xff0c;否则会乱码 // 读文件 void test1() {char ch;FILE *fp; // 创建文件指针fp fopen("./file.txt", "r"…

pycharm修改文件大小限制

场景&#xff1a; 方法&#xff1a; 打开pycharm 安装目录下的idea.properties 增加配置项&#xff1a;idea.max.intellisense.filesize99999

java后端请求与响应总结

get 请求&#xff1a;将参数写在请求路径中&#xff08;请求路径跟一个&#xff1f;后面跟参数多个参数之间用&连接&#xff09; post 请求&#xff1a;将参数写在请求体中中 一、请求 1.简单参数 如 传一个或两个字符串、整数等 例如串一个用户名和密码 如果传入的数…