Unsupervised Domain Adaption (UDA)及domain shift介绍

news2024/11/19 0:29:41

UDA

 UDA想解决的问题是目标域上数据标签的缺乏,具体而言,存在着源域和目标域,源域上存在大量的标注样本对 D s = { ( X i , y i ) } D_s=\{(X_i,y_i)\} Ds={(Xi,yi)},我们可以在上面以有监督的方式训练各种模型,但此外我们想要将模型迁移到一个不存在标注的目标域 D t = { X i } D_t=\{X_i\} Dt={Xi}上,由于不存在便签,因此我们无法对训练好的模型进行简单的finetune,而是是要通过已知源域、目标域的特征空间来进行模型的迁移,这就是UDA。
 简单来看,UDA整体就类似于模型的训练过程,即在含标签的训练集数据上进行模型的训练,然后迁移到标签未知的测试集(或者实际应用场景)中进行评估,这里存在着一个显著的区别–模型训练时我们假定了测试集和训练集独立同分布,在同一个域中。而UDA的场景则更为复杂,其源域和目标域可能是并不完全对齐的,因此在UDA中一个很简单的思路就是寻找某种变换,将源域和目标域映射到同一空间,然后在该空间内使用源域数据进行模型训练,这样就能使得训练好的模型可以完美的迁移到目标域了,如下图所示:
在这里插入图片描述
那么在这种思路下问题就变成了如何对齐源域和目标域,有几种比较典型的思路:

  1. 最小化域间差异,找一个变换,使得变换前后源域目标域的数据分布在某种度量下最小,这里的问题就是如何定义数据分布,特征和标签构成的分布有联合分布 P ( X , y ) P(X,y) P(X,y),条件分布 P ( X ∣ y ) , P ( y ∣ X ) P(X|y), P(y|X) P(Xy),P(yX)以及边缘分布 P ( X ) , P ( y ) P(X), P(y) P(X),P(y),那么该如何适配这些分布呢,尤其是在目标域标签未知的情况下;
  2. 域不变特征: 这一思路也较为直观,就是直接找到两个域所共享的特征,无论是在源域还是在目标域都可以用这一特征来进行判别。
  3. 对抗网络:利用对抗网络的思想,包含特征提取网络和类判别网络、域判别网络,使得网络无法确认提取到的特征是来自于源域还是目标域1,但都能给出良好的判别效果,其实算是寻找域不变特征

self-training

 除了这一类UDA本土的方法外,还有一些人把Semi-Supervised-Learning中的Self-training方法用到了UDA领域。Self-training的常用任务场景和UDA类似,但感觉上并没有考虑域分布不同的问题,更多是在同一个域,只是某些label未知。Self-training旨在利用有标签的数据对模型进行训练,然后用训练好的模型对无标记数据进行预测得到伪标签(可以是通过阈值阶截断后的hard target或者是soft target),然后把伪标注样本也纳入训练,以实现半监督训练的效果2
 self-training本身显著的问题在于它生成的伪标签非常的noisy,而且通常会只采纳高置信度伪标注样本纳入后续训练3,使得低置信度样本得不到充分的训练;并且这种bias也使得模型会给许多样本同一类别4
 而将self-training 方法迁移到UDA领域面临的主要问题就是源域目标域的分布不同,这和self-training的任务场景有着显著差异,需要进行适当的修改。

domain shift

 既然要考虑到源域和目标域数据分布不同,就得细致的去了解这种分布不同有哪些表现形式,应该如何解决。domain shift(域偏移)又可以细分为label shift和covariate shift两种,前者指数据的条件分布相同而边缘分布不同,即 P s ( X ∣ y ) ≠ P t ( X ∣ y ) ,   P s ( X ) = P t ( X ) P_s(X|y)\neq P_t(X|y),\ P_s(X)=P_t(X) Ps(Xy)=Pt(Xy), Ps(X)=Pt(X)后者指数据的边缘分布不同而条件分布相同 P s ( y ∣ X ) = P t ( y ∣ X ) ,   P s ( X ) ≠ P t ( X ) P_s(y|X)=P_t(y|X),\ P_s(X)\neq P_t(X) Ps(yX)=Pt(yX), Ps(X)=Pt(X),这两种偏移在深度学习的域迁移问题中广泛存在5,以下进行详细介绍。

Covariate shift

 covariate shift描述的是两个域体条件分布一致,但是边缘分布不一致。举个不恰当的例子,A地和B地由于气候的不同,某天两地下雨还是天气的概率不同,但是一旦确定了当天天气,那么该地居民出门是否带伞的概率相同。covariate shift的出现使得我们在源域上构建的模型并不能够良好的迁移到目标域上,除非源域上设立的模型空间恰好包含了目标域的模型空间。同样以天气为例,A地某人看到蜻蜓低飞决定带伞出门,但B地没有蜻蜓,也就无法借由蜻蜓这一特征来判断是否要带伞出门,而倘若B地有蚂蚁,我们建立起蜻蜓和蚂蚁在不同天气下行为的联系,就可根据这一特效进行B地预测。更为严谨的数学推导见6
。典型图如下:
在这里插入图片描述
源域和目标域的条件分布可以用同一函数表示(True func),但由于边缘分布存在显著差异,在使用线性假设空间的情况下,我们在源域上能够学到的最优假设同样为线性(Learned func),因此在目标域上表现不佳。
 在已知covariate shift存在的情况下,我们需要对源域的预测模型进行调整以适应目标域的数据分布,具体表现为在源域训练的模型优化时要添加基于分布的系数:
arg ⁡ min ⁡ θ     1 m s ∑ i = 1 m s P t ( X i ) P s ( X i ) H ( F θ ( X i ) , y i ) \underset{\theta}{\arg\min} \ \ \ \frac{1}{m_s}\sum_{i=1}^{m_s}\frac{P_t(X_i)}{P_s(X_i)}H(F_{\theta}(X_i),y_i) θargmin   ms1i=1msPs(Xi)Pt(Xi)H(Fθ(Xi),yi)
其中 H H H为交叉熵函数, F θ ( X i ) F_{\theta}(X_i) Fθ(Xi)为模型在源域的预测输出。可以看出问题的关键就在于如何求取 P t ( X i ) P s ( X i ) \frac{P_t(X_i)}{P_s(X_i)} Ps(Xi)Pt(Xi),显然我们是无法直接得到源域和目标域数据分布的,为了计算该值,研究者也进行了大量的研究,典型方法如额外训练LR分类器来判断该样本属于目标域还是源域,并将输出值之比作为 P t ( X i ) P s ( X i ) \frac{P_t(X_i)}{P_s(X_i)} Ps(Xi)Pt(Xi).

Label shift

待更新

参考文献


  1. 基于对抗的迁移学习方法: DANN域对抗网络 ↩︎

  2. self training 文章梳理 ↩︎

  3. FixMatch ↩︎

  4. NeurIPS 2021 | 助力半监督学习:课程伪标签方法FlexMatch和统一开源库TorchSSL ↩︎

  5. Generalized Label Shift ↩︎

  6. 基于样例的迁移学习——Covariate Shift——原始文章解读 ↩︎

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

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

相关文章

常见舆情监测系统的分类和特点

随着网络和社交媒体的发展,舆情监测系统逐渐成为企业和政府机构必备的工具之一。舆情监测系统可以帮助企业和政府机构全面了解公众对其品牌、产品、政策等的反应和态度,及时发现和解决问题,提高公信力和形象。本文将介绍常见的舆情监测系统的…

Python Tox

tox其核心作用是支持创建隔离的 Python 环境,在里面可以安装不同版本的 Python 解释器与各种依赖库,以此方便开发者做自动化测试、打包、持续集成等事情。 简单来说,tox 是一个管理测试虚拟环境的命令行工具。 我介绍一种应用场景&#xff…

如何在Jetpack Compose中设置渐变背景

如何在Jetpack Compose中设置渐变背景 只需几步即可通过平滑渐变增强应用程序的用户界面 虽然它经常出现在网络前端的世界中,但渐变背景可以为您的移动应用程序增添专业和美观的触感,使其对您的用户更具吸引力。 第 1 步:创建渐变画笔 为…

Semantic Segmentation using Adversarial Networks

首次将GAN用于语义分割,用于辨别分割图是来自GT还是来自分割网络。作者的想法来自借助GAN可以检测和矫正GT和模型分割图的高阶不一致。最后在Standford和PASCAL VOC 数据集上验证了想法。 对抗学习: 使用两个权重和的混合损失函数进行优化,第…

从win7升级到win10过程中遇到的问题:安装工具无法运行、卸载VMware

目录 1. 概述2. 微软官方安装工具无法运行3. 控制面板的卸载程序里面找不到VMware4. 输入产品密钥5. 安装完后仍然未激活6. 雨林木风 1. 概述 因为新电脑还没有到,把上学时候的笔记本翻出来顶一顶。旧笔记本还是win7,我的鼠标没办法使用,干脆…

HDCTF web复现

[HDCTF 2023]SearchMaster 传data 使用{if}标签闭合达到命令执行的效果 {if phpinfo()}{/if} NSSCTF{f578f8ba-246e-452b-b070-22bc4fc4313d} Smarty模板注入&CVE-2017-1000480 - 先知社区 (aliyun.com) [HDCTF 2023]YamiYami 非预期解 第一个连接 跳转到百度&#xf…

远程访问(内网穿透)

文章目录 介绍cpolar安装使用终端访问远程桌面访问 仅靠ssh,等只能实现同局域网下的服务器访问,本文介绍使用cpolar内网穿透工具实现非同局域网下的访问 介绍 远程:1804 ubuntu 软件依赖:ssh,xrdp, cpolar…

【K8s】资源管理与实战入门

文章目录 一、资源管理1、资源管理介绍2、YAML语言语法3、资源管理方式4、命令式对象管理--kubectl5、命令式对象配置6、声明式对象配置7、报错 二、实战入门1、namespace2、Pod3、Label4、deployment5、Service 一、资源管理 1、资源管理介绍 在kubernetes中,所有…

如何有效的向 AI 提问 ?

文章目录 〇、导言一、Base LLM 与 Instruction Tuned LLM二、如何提出有效的问题 ?1. 明确问题:2. 简明扼要:3. 避免二义性:4. 避免绝对化的问题:5. 利用引导词:6. 检查语法和拼写:7. 追问细节…

7天获邀请函|环境科学研究学者持加拿大麦吉尔大学Offer申报CSC

I老师要求2周内获得邀请函且指定加拿大。我们只用了7天时间就获得加拿大排名榜首的麦吉尔大学邀请函,整整提前了一半时间,效率奇高。 I老师背景: 申请类型:CSC访问学者 工作背景:某研究所研究人员 教育背景&#xf…

g++编译静态库与动态库

该文目的是基本理清一个在linux在c静态库与动态库的编译和使用 一个非常基础的一节,简单的整合了一下目前已有的文章 前提准备: 文件: touch SoDemoTest.h one.cpp two.cpp three.cpp main.cpp代码 /* SoDemoTest.h */ #ifndef _SO_DEMO_TEST_HEADE…

【Ubuntu22.04】内网部署Ubuntu Server 22.04.2

镜像下载 方式一:官网下载 https://ubuntu.com/download/server 方式二:清华镜像站 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04.2/ 方式三:百度网盘 链接: https://pan.baidu.com/s/1g24PDfAiPVsxMm7DVpERdg?pwd1020 …

myql的三种删除方式:delete truncate drop

前言 在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同,接下来我们具体来看。 1.delete detele 可用于删除表的部分或所有数据,它的使用语法如下: delete …

独立产品灵感周刊 DecoHack #052 - 100个AI 工具导航网站

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,往期内容同样精彩,感兴趣的伙伴可以 点击订阅我的周刊。为保证每期都能收到,建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。 ❤️ 刚换工作再加上个人原因有些自己的事…

消息队列中间件 - 详解RabbitMQ6种模式

RabbitMQ 6种工作模式 对RabbitMQ 6种工作模式(简单模式、工作模式、订阅模式、路由模式、主题模式、RPC模式)进行场景和参数进行讲解,PHP代码作为实例。 安装 客户端实现:添加扩展,执行composer.phar install命令 {"require":…

SSM框架学习-bean实例化

实例化bean的三种方式 1. 构造方法(常用) Spring创建bean调用的是无参的构造方法,且无论该无参构造方法是公有还是私有的,都可以调用(底层实现原理为反射) 2. 静态工厂(了解) 要配置…

【论文阅读-Low-code LLM】使用LLM进行可视化编程

Low-code LLM: Visual Programming over LLMs link: https://arxiv.org/abs/2304.08103 repository: https://github.com/microsoft/TaskMatrix/tree/main/LowCodeLLM 摘要 大规模预训练模型(LLMs)在解决困难问题仍具有很大的挑战。这篇文章提出了可以…

lua | 数据类型与变量

目录 一、数据类型 8个基本类型 1.nil(空) 2.boolean(布尔) 3.number(数字) 4.string(字符串) 5.table(表 ) 6.function(函数) 7.thread(线程) 8.u…

FIR滤波

参考来源: https://www.zhihu.com/question/323353814 本节主要围绕以下几个问题进行描述: 什么是FIR滤波器时域的卷积频域的相乘 关于FIR FIR滤波就是在时域上卷积的过程。将含噪声信号与低通滤波器的傅里叶逆变换值进行卷积,这个过程就是…

29 - 打家劫舍问题

文章目录 1. 打家劫舍I2. 打家劫舍II3. 打家劫舍III(1) 暴力递归超时(2) 记忆化搜索超时(3) 动态规划 1. 打家劫舍I 动态规划&#xff1a; dp[i] max(dp[i - 2] nums[i], dp[i - 1]); class Solution { public:int rob(vector<int>& nums) {if(nums.size() 1) re…