Domain Separation Networks-论文笔记

2023-12-05 04:38

本文主要是介绍Domain Separation Networks-论文笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目的:what to transfer,以及如何有效避免negative transfer上。

假设:所有的域之间有着公有的特征(Shared)和私有的特征(Private),如果将各个域的私有特征也进行迁移的话就会造成负迁移(negative transfer)。

基于此,提出了Domain Separation Networks(DSNs)。

Domain Separation Networks (DSNs)

在这里插入图片描述

网络结构包含:

  • Shared Encoder E c ( x ) E_{c}(x) Ec(x): 提取共有特征,使得不同域之间迁移。
  • Private Source Encoder E p s ( x s ) E_{p}^{s}(x^{s}) Eps(xs) : 源域私有编码器, 用于提取源域数据私有特征。
  • Private Target Encoder E p t ( x t ) E_{p}^{t}(x^{t}) Ept(xt): 目标域私有编码器,用来提取目标域的私有特征。
  • Shared Decoder: 共享的解码器,输入时私有特征和共有特征,用于重构图像。
  • 源域分类器 G ( E c ( x s ) ) G\left(E_{c}\left(x^{s}\right)\right) G(Ec(xs)): 源域数据的分类器,输入是公有特征。训练完成之后,可以用来对目标域数据上分类。

其中, x s , x t x^s, x^t xs,xt分别表示源域和目标域输入,通过公有和私有编码器之后,分别输出 h p s , h c s h_p^s, h_c^s hps,hcs、 对应源域私有特征和共有特征, h p t , h c t h_p^t, h_c^t hpt,hct,对应目标域特征。

Loss

difference loss

为什么 E p t ( x ) , E p s ( x ) E_p^t(x), E_p^s(x) Ept(x),Eps(x)就能输出私有特征呢?

作者损失函数层面进行了限制,定义差异损失:
L difference  = ∥ H c s ⊤ H p s ∥ F 2 + ∥ H c t ⊤ H p t ∥ F 2 \mathcal{L}_{\text {difference }}=\left\|\mathbf{H}_{c}^{s \top} \mathbf{H}_{p}^{s}\right\|_{F}^{2}+\left\|\mathbf{H}_{c}^{t^{\top}} \mathbf{H}_{p}^{t}\right\|_{F}^{2} Ldifference =HcsHpsF2+HctHptF2
∥ ⋅ ∥ F 2 \|\cdot\|_{F}^{2} F2表示矩阵范式,而中间是 H c s ⊤ H p s \mathbf{H}_{c}^{\mathbf{s} \top} \mathbf{H}_{p}^{s} HcsHps,只有两个矩阵正交,范式才为0,所以这个损失鼓励私有特征和共有特征不相似,正交的时候最小。

Similarity loss

为什么 E c ( x ) E_c(x) Ec(x)就能输出共有特征?

为了保证源域和目标域是可迁移的,就要保证 h c t , h c s h_c^t, h_c^s hct,hcs的分布相似性。

注意是 h c t , h c s h_c^t, h_c^s hct,hcs的分布相似性,非向量相似性,因为本来就是不同输入,不能适得其输出相似。

作者用到了Gradient Reversal Layer (GRL):

简单讲就是找到一个函数Q(f(u)),使得梯度取反:
d d u Q ( f ( u ) ) = − d d u f ( u ) \frac{d}{d \mathbf{u}} Q(f(\mathbf{u}))=-\frac{d}{d \mathbf{u}} f(\mathbf{u}) dudQ(f(u))=dudf(u)

损失函数:
L similarity  D A N N = ∑ i = 0 N s + N t { d i log ⁡ d ^ i + ( 1 − d i ) log ⁡ ( 1 − d ^ i ) } \mathcal{L}_{\text {similarity }}^{\mathrm{DANN}}=\sum_{i=0}^{N_{s}+N_{t}}\left\{d_{i} \log \hat{d}_{i}+\left(1-d_{i}\right) \log \left(1-\hat{d}_{i}\right)\right\} Lsimilarity DANN=i=0Ns+Nt{dilogd^i+(1di)log(1d^i)}
使用了对抗学习的思想,通过一个域分类器 Z ( Q ( h c ) ; θ z ) , h c = E c ( x ; θ c ) Z\left(Q\left(\mathbf{h}_{c}\right) ; \boldsymbol{\theta}_{z}\right), \mathbf{h}_{c}=E_{c}\left(\mathbf{x} ; \boldsymbol{\theta}_{c}\right) Z(Q(hc);θz),hc=Ec(x;θc),来区分 h c t , h c s h_c^t, h_c^s hct,hcs是属于源域还是目标域。对于分类器的参数 θ z \theta_z θz通过梯度求导来最小化分类损失,让分类器分的更准。而通过加入Q,来使用GRL,使得在优化 θ c \theta_c θc的时候让分类器无法分辨输入属于source还是target。

Reconstruction loss

怎么保证 h p s , h p t , h c s , h c t h_{p}^{s}, h_{p}^{t}, h_{c}^{s},h_{c}^{t} hps,hpt,hcs,hct都是有意义的呢?例如 h p s = 0 , h p t = 0 , h c s = h c t = 1 h_{p}^{s}=0, \quad h_{p}^{t}=0, \quad h_{c}^{s}=h_{c}^{t}=1 hps=0,hpt=0,hcs=hct=1的时候,上述损失就可以达到0.

所以作者引入了重构损失。
L recon  = ∑ i = 1 N s L si  − mse  ( x i s , x ^ i s ) + ∑ i = 1 N t L s i − mse  ( x i t , x ^ i t ) L s i − m s e ( x , x ^ ) = 1 k ∥ x − x ^ ∥ 2 2 − 1 k 2 ( [ x − x ^ ] ⋅ 1 k ) 2 (3) \mathcal{L}_{\text {recon }}=\sum_{i=1}^{N_{s}} \mathcal{L}_{\text {si }_{-} \text {mse }}\left(\mathrm{x}_{i}^{s}, \hat{\mathrm{x}}_{i}^{s}\right)+\sum_{i=1}^{N_{t}} \mathcal{L}_{\mathrm{si}_{-} \text {mse }}\left(\mathrm{x}_{i}^{t}, \hat{\mathrm{x}}_{i}^{t}\right) \tag{3} \\ \mathcal{L}_{\mathrm{si}_{-} \mathrm{mse}}(\mathrm{x}, \hat{\mathrm{x}})=\frac{1}{k}\|\mathrm{x}-\hat{\mathrm{x}}\|_{2}^{2}-\frac{1}{k^{2}}\left([\mathrm{x}-\hat{\mathrm{x}}] \cdot 1_{k}\right)^{2} Lrecon =i=1NsLsi mse (xis,x^is)+i=1NtLsimse (xit,x^it)Lsimse(x,x^)=k1xx^22k21([xx^]1k)2(3)
其中k为输入x的像素个数,1k为长度为k的向量; ∥ ⋅ ∥ 2 2 \|\cdot\|_{2}^{2} 22是向量的平方模。

虽然均值平方误差损失传统上用于重建任务,但它会惩罚在缩放项下正确的预测。相反,尺度不变的均方误差抵消了像素对之间的差异。这允许模型学习复制被建模对象的整体形状,而不需要在输入的绝对颜色或强度上花费建模能力。

在实验中,作者用传统的均方误差损失代替式3中的尺度不变损失,验证了这种重构损失确实是正确的选择。

task loss

最后是分类器 G ( E c ( x s ) ) G\left(E_{c}\left(x^{s}\right)\right) G(Ec(xs))的分类损失:
L t a s k = − ∑ i = 0 N s y i s ⋅ log ⁡ y ^ i s \mathcal{L}_{\mathrm{task}}=-\sum_{i=0}^{N_{s}} \mathbf{y}_{i}^{s} \cdot \log \hat{\mathbf{y}}_{i}^{s} Ltask=i=0Nsyislogy^is
注意分类器的输入是共有特征,因此保证对于目标域,能够直接迁移过来,使用此分类器做分类任务。

Expriment

作者提供四组迁移的实验,五个数据集。Source-only表示没有进行迁移,只用源域数据进行训练得到的模型的精度;Target-only表示没有迁移,只有带标记的目标域数据进行训练得到的模型的精度;中间五行表示当目标域数据无标记,进行迁移之后各个模型的精度。

在这里插入图片描述

可以看出,DSNs算法还是有明显的提高。

Reference

  1. Domain Separation Networks.
  2. Domain-adversarial training of neural networks.

这篇关于Domain Separation Networks-论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi