Domain Adaptation 相关介绍

1. Transfer Learning

Transfer learning 是机器学习的一个分支, 而 Domain adpatation 是 transfer learning 的一个分支.
在 transfer learning 中有两个概念: source domain (源域) 和 target domain (目标域).
源域中往往有丰富的信息, 比如有大量的数据点和其真实的标签; 但目标域中相反, 数据不带有标签或少量数据带有标签, 所以无法用传统的方式学习. Transfer learning 的目标是: 利用两个域的信息, 学习一个能在 target domain 上准确率高的分类器.

根据两个域的背景设定不同, transfer learning 有以下分类, 本文关注于 domain adaptation.
在这里插入图片描述
上图来自于综述论文 A survey on domain adaptation theory: learning bounds and theoretical guarantees.

  • 传统的学习设定: 两个域的输入分布相同, 且任务相同. 这时的 source domain 就是训练集, target domain 就是测试集.
  • Inductive transfer learning: 两个域的输入分布相同, 但任务不同.
  • Transductive transfer learning/ Domain adaptation: 两个域的输入分布不同, 但任务相同.
  • Unsupervised transfer learning: 两个域的输入分布不同, 且任务不同.

所以在 Domain adaptation 任务中, source domain 与 target domain 是不同的, 这种差别称为: distributional change, distributional shift 或 domain shift. 下面介绍下 domain shift.

2. Domain Shift

Domain shift 主要分为以下三种: prior shift, covariate shift 和 concept shift.

2.1 Prior shift

用于 Y → X Y\rightarrow X YX problems, 设定为:

  • posterior distributions are equivalent: p s ( x ∣ y ) = p t ( x ∣ y ) p_s(x|y)=p_t(x|y) ps(xy)=pt(xy)
  • prior distributions of classes are different: p s ( y ) ≠ p t ( y ) p_s(y)\neq p_t(y) ps(y)=pt(y)

2.2 Covariate shift

用于 X → Y X\rightarrow Y XY problems, 设定为:

  • marginal distributions are different: p s ( x ) ≠ p t ( x ) p_s(x)\neq p_t(x) ps(x)=pt(x)
  • conditional distributions are equivalent: p s ( y ∣ x ) = p t ( y ∣ x ) p_s(y|x)=p_t(y|x) ps(yx)=pt(yx)

Covariate shift 是最常见的设定, 大多domain adaptation 的论文都是以这个为背景. 上图是一个例子, source 与 target 的分布不同(左图), 但它们的样本点都坐落在 true function 的周围(右图), 如果只用 source samples 做训练可能会得到绿色的函数, 无法用在 target domain上.

2.3 Concept shift

又叫 Data drift, 用于 X → Y X\rightarrow Y XY Y → X Y\rightarrow X YX problems.

  • In X → Y X\rightarrow Y XY problems: p s ( x ) = p t ( x ) p_s(x)=p_t(x) ps(x)=pt(x) and p s ( y ∣ x ) ≠ p t ( y ∣ x ) p_s(y|x)\neq p_t(y|x) ps(yx)=pt(yx)
  • In Y → X Y\rightarrow X YX problems: p s ( y ) = p t ( y ) p_s(y)=p_t(y) ps(y)=pt(y) and p s ( x ∣ y ) ≠ p t ( x ∣ y ) p_s(x|y)\neq p_t(x|y) ps(xy)=pt(xy)

3. Closed-set Unsupervised Domain Adaptation

Domain Adaptation 其实也有很多类型, 比如 closed-set 或 open-set, unsupervised 或 supervised. 研究最多的是 closed-set unsupervised domain adaptation. 每个单词的意思是:

  • Domain Adaptation(DA): 正如前面讲的, source 与 target domain 的分布不同, 但任务相同
  • Unsupervised DA: target domain 中的数据不带有标签
  • Closed-set DA (traditional DA): source 与 target domain 的输入和输出空间相同,但联合概率分布不同 ⇒ X S = X T , Y S = Y T , p s ( x , y ) ≠ p t ( x , y ) \Rightarrow \mathcal{X_S}=\mathcal{X_T}, \mathcal{Y_S}=\mathcal{Y_T}, p_s(x,y)\neq p_t(x,y) XS=XT,YS=YT,ps(x,y)=pt(x,y).

4. 经典方法

DA 的目标是学习一个在 target domain 上效果好的分类器, 这等价于最小化在 target domain 上的expected risk, 用数学表示:
R T ( h ) = E ( x , y ) ∼ p t ( x , y ) [ ℓ ( h ( x ) , y ) ] = ∑ y ∈ Y ∫ X ℓ ( h ( x ) , y ) p t ( x , y ) p s ( x , y ) p s ( x , y ) d x = ∑ y ∈ Y ∫ X ℓ ( h ( x ) , y ) p s ( x , y ) p t ( x , y ) p s ( x , y ) d x = E ( x , y ) ∼ p s ( x , y ) [ p t ( x , y ) p s ( x , y ) ℓ ( h ( x ) , y ) ] R_T(h)=\mathbb{E}_{(x,y)\sim p_t(x,y)} [\ell(h(x),y)]\\ =\sum_{y\in Y} \int_{X} \ell(h(x),y)p_t(x,y)\frac{p_s(x,y)}{p_s(x,y)} dx\\ =\sum_{y\in Y} \int_{X} \ell(h(x),y)p_s(x,y)\frac{p_t(x,y)}{p_s(x,y)} dx\\ =\mathbb{E}_{(x,y)\sim p_s(x,y)} [\frac{p_t(x,y)}{p_s(x,y)}\ell(h(x),y)] RT(h)=E(x,y)pt(x,y)[(h(x),y)]=yYX(h(x),y)pt(x,y)ps(x,y)ps(x,y)dx=yYX(h(x),y)ps(x,y)ps(x,y)pt(x,y)dx=E(x,y)ps(x,y)[ps(x,y)pt(x,y)(h(x),y)]
这就可以与 source 建立联系, 且当设定为 covariate shift 时 [ p s ( x ) ≠ p t ( x ) , p s ( y ∣ x ) = p t ( y ∣ x ) p_s(x)\neq p_t(x), p_s(y|x)=p_t(y|x) ps(x)=pt(x),ps(yx)=pt(yx)]:
R T ( h ) = E ( x , y ) ∼ p s ( x , y ) [ p t ( x ) p t ( y ∣ x ) p s ( x ) p s ( y ∣ x ) ℓ ( h ( x ) , y ) ] = E ( x , y ) ∼ p s ( x , y ) [ p t ( x ) p s ( x ) ℓ ( h ( x ) , y ) ] R_T(h)=\mathbb{E}_{(x,y)\sim p_s(x,y)} [\frac{p_t(x)p_t(y|x)}{p_s(x)p_s(y|x)}\ell(h(x),y)]\\ =\mathbb{E}_{(x,y)\sim p_s(x,y)} [\frac{p_t(x)}{p_s(x)}\ell(h(x),y)] RT(h)=E(x,y)ps(x,y)[ps(x)ps(yx)pt(x)pt(yx)(h(x),y)]=E(x,y)ps(x,y)[ps(x)pt(x)(h(x),y)]
当设定为 prior shift 时 [ p s ( x ∣ y ) = p t ( x ∣ y ) , p s ( y ) ≠ p t ( y ) p_s(x|y)=p_t(x|y), p_s(y)\neq p_t(y) ps(xy)=pt(xy),ps(y)=pt(y)]:
R T ( h ) = E ( x , y ) ∼ p s ( x , y ) [ p t ( y ) p t ( x ∣ y ) p s ( y ) p s ( x ∣ y ) ℓ ( h ( x ) , y ) ] = E ( x , y ) ∼ p s ( x , y ) [ p t ( y ) p s ( y ) ℓ ( h ( x ) , y ) ] R_T(h)=\mathbb{E}_{(x,y)\sim p_s(x,y)} [\frac{p_t(y)p_t(x|y)}{p_s(y)p_s(x|y)}\ell(h(x),y)]\\ =\mathbb{E}_{(x,y)\sim p_s(x,y)} [\frac{p_t(y)}{p_s(y)}\ell(h(x),y)]\\ RT(h)=E(x,y)ps(x,y)[ps(y)ps(xy)pt(y)pt(xy)(h(x),y)]=E(x,y)ps(x,y)[ps(y)pt(y)(h(x),y)]
其中 w ( x ) = p t ( x ) p s ( x ) w(x)=\frac{p_t(x)}{p_s(x)} w(x)=ps(x)pt(x) 被称为 importance weight 或 re-weighting factor, w ( y ) = p t ( y ) p s ( y ) w(y)=\frac{p_t(y)}{p_s(y)} w(y)=ps(y)pt(y) 被称为 class weight.

所以很多早期经典论文都是从估计 w ( x ) w(x) w(x)角度出发, 主要思路是寻找一个合适的 w ( x ) w(x) w(x) 使得 re-weighted source dist. 与 target dist. 之间的差距最小化, 这种方法称为 Density Ratio Estimation (DRE), 可以读以下论文:

  • KMM - NeurIPS 2006
  • KLIEP - NeurIPS 2007

还有很多方法从 source 和 target 的子空间进行研究 (GFK, SA, SDA), 随着神经网络的流行, 又有一些文章用 DNNs 学习 source 和 target 之间的关系 (DDC, DAN, DANN, DeepCoral, DRCN, CoGAN), 多为基于GAN的模型.

5. 常用数据集

  1. Office-Home: https://arxiv.org/abs/1706.07522
  2. VLSC: https://openaccess.thecvf.com/content_iccv_2013/papers/Fang_Unbiased_Metric_Learning_2013_ICCV_paper.pdf
  3. DomainNet: https://ai.bu.edu/M3SDA/
  4. RMNIST: https://arxiv.org/abs/1508.07680
  5. CMNIST: https://arxiv.org/abs/1907.02893
  6. PACS: https://arxiv.org/abs/1710.03077
  7. Terra Incognita: https://arxiv.org/abs/1807.04975

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

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

相关文章

基于OpenCV的图像缩放

基础概念 缩放是将图像的尺寸变小或变大的过程,即减少或增加原图像数据的像素个数,或者说通过增加或删除像素点来改变图像的尺寸; 基本原理:将分辨率(图片尺寸)为(w,h)的图像,缩放后其图像分辨…

CVE-2023-36025 Windows SmartScreen 安全功能绕过漏洞

CVE-2023-36025是微软于11月补丁日发布的安全更新中修复Windows SmartScreen安全功能绕过漏洞。攻击者可以通过诱导用户单击特制的URL来利用该漏洞,对目标系统进行攻击。成功利用该漏洞的攻击者能够绕过Windows Defender SmartScreen检查及其相关提示。该漏洞的攻击…

代码随想录算法训练营第二十八天 | 93.复原IP地址、78.子集、90.子集II

93.复原IP地址 题目链接:93.复原IP地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1"…

小程序系列--1.小程序入门

一、小程序简介 1. 小程序与普通网页开发的区别 1. 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 2. API 不同 由于运行环境的不同,所以小程序中, 无法调用 DOM 和 BOM 的 API。 但是,小程序中可以调用微信环境提供的各种 …

【办公】百度网盘 Linux命令行方式使用

安装: pip install bypy登录: bypy info # 会给网页链接,用浏览器打开链接后会有一个授权码,复制授权码后粘贴到这里回车上传文件: bypy upload ./data下载文件: bypy downdir /运行时添加-v参数&#…

Nginx快速入门:worker、master进程的作用和热部署原理(十)

0. 引言 我们通过查询nginx进程,可以发现nginx有两个进程:worker和master。一个程序启动了两个进程,那么这两个进程的作用和区别是什么呢?nginx又是如何利用这两个进程进行工作的呢?nginx不停机热部署又是如何实现的&…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑤

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷5 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷5 模块一 …

普中STM32-PZ6806L开发板(HAL库函数实现-读取内部温度)

简介 主芯片STM32F103ZET6,读取内部温度其他知识 内部温度所在ADC通道 温度计算公式 V25跟Avg_Slope值 参考文档 stm32f103ze.pdf 电压计算公式 Vout Vref * (D / 2^n) 其中Vref代表参考电压, n为ADC的位数, D为ADC输入的数字信号。 实现…

用实例证明函数是go语言的一等公民

概述 在软件编程语言设计中,如果一个实体支持所有通常对其他实体可用的操作,那么这个实体就被称为“一等公民”(first-class functions)。这些操作通常包括作为参数传递、从函数返回、修改并分配给变量等。很多编程语言都实现了将…

【数据库】MySQL锁

一、锁的基本概念 1、锁的定义 锁是协调多个进程或线程并发访问数据库资源的一种机制。 MySQL中的锁是在服务器层或者存储引擎层实现的,保证了数据访问的一致性与有效性。但加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否已解除、…

前端适配750px设计稿

全局引入 (function(doc, win) {const docEl doc.documentElement,resizeEvt orientationchange in window ? orientationchange : resizeconst setFont function() {let clientWidth docEl.clientWidth;if (!clientWidth) return;if (clientWidth > 750) {docEl.styl…