- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 。
论文标题:Multicomponent Adversarial Domain Adaptation: A General Framework 论文作者:Chang’an Yi, Haotian Chen, Yonghui Xu, Huanhuan Chen, Yong Liu, Haishu Tan, Yuguang Yan, Han Yu 论文来源:2023 aRxiv 论文地址: download 论文代码:download 视屏讲解:click 。
出发点: 现有的域对抗训练方法主要考虑对齐域级的数据分布,而忽略了不同域中的组件之间的差异。因此,不会过滤掉与目标域无关的组件,这可能造成负迁移; 。
贡献:
组件(component)的概念 :
Note :半监督域适应,协变量偏移; 。
在对抗自适应过程中,需要少量已标记的目标样本,其必要性如 Figure 4 所示:
即:对比于无监督来说,其类中心更加准确; 。
1) Adversarial Generation 。
可迁移样本应该满足两个条件:
生成可迁移样本的方法:
$f_{\text {Fake }} \leftarrow f_{\text {True }}+\alpha \nabla_{f_{\text {Tue }}} \mathcal{L}+\beta \text { Dist. }$ 。
注意:$f_{\text {Fake }}$ 为生成的对抗性样本,$f_{\text {True }}$ 原始样本; 。
使用可迁移样本可以增强分类器对 域变化 和 对抗性扰动 的鲁棒性:
$\mathcal{L}_{\text {cla }}=\mathcal{L}_{c}(x)+\mathcal{L}_{c, \text { adv }}\left(x^{*}\right)$ 。
使用可迁移样本可以有效的弥补域差异,定义如下:
$\mathcal{L}_{\text {dis }}=\mathcal{L}_{d}(x)+\mathcal{L}_{d, \text { adv }}\left(x^{*}\right)$ 。
第一阶段的优化问题可以总结如下:
$\underset{\Theta_{C}, \Theta_{D}}{\text{min}} \; \mathcal{L}_{\text {cla }}+\mathcal{L}_{\text {dis }}$ 。
该小结算法如下:
当数据分布被全局对齐后,接着便是考虑特征的内在特征,同一领域的样本往往具有不同的内在特征,而这些特征被域级的自适应所忽略。因此,应单独考虑它们,以有效地弥合分布差异.
每个域都应该被划分为不同的组件,可以通过使用基于距离的聚类方法来实现(如 k-means)。如果目标域 $D_{T}$ 被划分为 $N$ 个分量,那么 $D_{T}=\cup_{n=1}^{N} D_{T}^{n}$,其中 $D_{T}^{n} (1 \leqslant n \leqslant N)$ 表示第 $n$ 个分量。此外,$D_{S}$ 中的不同组件可能与 $D_{T}$ 中的组件之间有不同的关系。需要发现这些关系,然后分开对待它们。一个二部图可以捕获分量之间的关系。如果 $D_{S}$ 和 $D_{T}$ 分别有 $M$ 和 $N$ 个分量,则边数为 $N$,因为最终目的是对目标域进行预测。设分量级二部图为 $G=(V_s、V_t、E_{st})$,其中 $V_s$、$V_t$ 和 $E_{st}$ 分别表示源分量集、目标分量集和跨域边,$E_{\mathrm{st}}$ 中的每条边都表示基于距离的最近的关系。给定分别属于源域和目标域的两个分量 $D_{S}^{i} (1 \leqslant i \leqslant M)$ 和 $D_{T}^{j}(1 \leqslant j \leqslant N)$,这两个分量之间的距离由以下方法计算 。
$d_{\left(D_{S}^{i}, D_{T}^{j}\right)}=\left|\mathbb{E}_{x \sim D_{S}^{i}}[f(x)]-\mathbb{E}_{x \sim D_{T}^{j}}[f(x)]\right|$ 。
分量的距离矩阵由一个 $M \times N$ 矩阵来描述。接下来,将匹配组件来构建成对关系,只需要为目标域中的每个组件找到最相关的源组件.
由于不同的组件具有不同的内在特征,因此需要对在第一阶段学习到的基本模型 $C_0$ 进行微调,以适应每一对匹配的组件。与域级的对抗性适应不同,标记的目标样本对于组件级的适应是不必要的,因为 $C_0$ 已经包含了这些信息.
使用上述生成的二部图对 $P=\cup_{n=1}^{N}\left\langle D_{S}^{n}, D_{T}^{n}\right\rangle(1 \leqslant n \leqslant N)$ 进行对抗性训练 。
组件之间的对抗性样本:
$f_{S_{i}^{\omega}} \leftarrow+f_{S_{i}}{ }^{\omega}+\alpha \nabla_{f_{S_{i}} \omega} \mathcal{L}_{d}\left(f_{S_{i}}{ }^{\omega}, \Theta_{d}^{n}\right) +\alpha \nabla_{f_{S_{i} \omega}} \mathcal{L}_{c}\left(f_{S_{i} \omega}, \Theta_{c}^{n}\right) -\beta \nabla_{f_{S_{i}} \omega} \ell_{2}\left(f_{S_{i}}{ }^{\omega}, f_{S_{i}}{ }^{0}\right)$ 。
$f_{T_{i}{ }^{\omega+1}} \leftarrow f_{T_{i}{ }^{\omega}}+\alpha \nabla_{f_{T_{i}}{ }^{\omega}} \mathcal{L}_{d}\left(f_{T_{i}{ }^{\omega}}, \Theta_{d}^{n}\right) -\beta \nabla_{f_{T_{i}} \omega} \ell_{2}\left(f_{T_{i}{ }^{\omega}}, f_{T_{i}{ }^{0}}\right)$ 。
即:和原样本距离尽可能小,域鉴别和(分类)能力尽可能差; 。
$C_{n}$ 训练如下:
$\begin{array}{l}\mathcal{L}_{c}\left(P_{n},\left.\Theta_{C}^{n}\right|_{n=1} ^{N}\right)= \mathbb{E}_{\left(x_{s}^{(i)}, y_{s}^{(i)}\right) \sim D_{S}^{n}} \Phi_{\mathrm{ce}}\left(C_{n}\left(x_{s}^{(i)}\right), y_{s}^{(i)}\right) \\\mathcal{L}_{c, \text { adv }}\left(P_{n},\left.\Theta_{C}^{n}\right|_{n=1} ^{N}\right)= \mathbb{E}_{\left(x_{s}^{*(i)}, y_{s}^{(i)}\right) \sim D_{S}^{n}} \Phi_{\mathrm{ce}}\left(C_{n}\left(x_{s}^{*(i)}\right), y_{s}^{(i)}\right) +\mathbb{E}_{x_{t}^{*(i)} \sim D_{T}^{n}}\left\|C_{n}\left(x_{t}^{*(i)}\right)-C_{n}\left(x_{t}^{(i)}\right)\right\|_{2}\end{array}$ 。
$D_{n}$ 训练如下:
$\begin{array}{l}\mathcal{L}_{d}\left(P_{n},\left.\Theta_{D}^{n}\right|_{n=1} ^{N}\right)= -\mathbb{E}_{x_{s}^{(i)} \sim D_{S}^{n}} \log \left[D_{n}\left(x_{s}^{(i)}\right)\right] -\mathbb{E}_{x_{t}^{(i)} \sim D_{T}^{n}} \log \left[1-D_{n}\left(x_{t}^{(i)}\right)\right] \\\mathcal{L}_{d, \text { adv }}\left(P_{n},\left.\Theta_{D}^{n}\right|_{n=1} ^{N}\right)= -\mathbb{E}_{x_{s}^{*(i)} \sim D_{S}^{n}} \log \left[D_{n}\left(x_{s}^{*(i)}\right)\right] -\mathbb{E}_{x_{t}^{*(i)} \sim D_{T}^{n}} \log \left[1-D_{n}\left(x_{t}^{*(i)}\right)\right]\end{array}$ 。
对 $P_n(1⩽n⩽n)$ 的优化问题总结如下:
$\begin{aligned}\left(\hat{\Theta}^{1}, \ldots, \hat{\Theta}^{n}\right)= & \arg \underset{\Theta^{1}, \ldots, \Theta^{n}}{\text{min}} \mathcal{L}_{c}\left(P_{n}, \Theta_{C}^{n}\right)+\mathcal{L}_{d}\left(P_{n}, \Theta_{D}^{n}\right) \\& +\lambda \mathcal{L}_{c, \text { adv }}\left(P_{n}, \Theta_{C}^{n}\right)+\lambda \mathcal{L}_{d, \text { adv }}\left(P_{n}, \Theta_{D}^{n}\right)\end{aligned}$ 。
算法如下:
域适应结果:
最后此篇关于论文解读(MCADA)《MulticomponentAdversarialDomainAdaptation:AGeneralFramework》的文章就讲到这里了,如果你想了解更多关于论文解读(MCADA)《MulticomponentAdversarialDomainAdaptation:AGeneralFramework》的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在这里的意图是创建一个单线程的 will-make-you-a-better-programmer-just-for-reading 之类的 文章 或 论文 或 真正站起来的博文作者付出了很多努力来
我想知道是否有人有很好的资源可以阅读或编写代码来试验“自动完成” 我想知道自动完成背后的理论是什么,从哪里开始什么是常见的错误等。 我发现 Enso、Launchy、Google chrome 甚至
市场上有许多工具,如 MPS,它们促进了面向语言的编程,据说这使程序员能够为任务设计(理想的?)语言。出于某种原因,这听起来既有趣又无聊,所以我想知道是否有人知道并可以推荐有关该主题的文章。 谢谢 最
我正在编写一个使用 JointJS 来显示图表的应用。 但是,我希望能够在页面中动态添加和删除图表。添加新图表相当简单,但是当我删除图表时,删除 DOM 元素并让图表和纸张对象被垃圾收集是否安全? 最
我在声明非成员函数listOverview()时出错; void listOverview() { std::cout #include class Book; class Paper
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在将 Raphael 与 Meteor 一起使用,但遇到了问题。我正在创建一个 paper通过使用 var paper = Raphael("paper", 800, 600);如果我将此代码放在
我正在使用acm LaTeX template我在使纸张双倍行距时遇到困难。 我的 LaTeX 文档如下所示: \documentclass{acm_proc_article-sp} \usepack
H.Chi Wong、Marshall Bern 和 David Goldberg 的论文“An Image Signature for any kind image”中提到的算法步骤背后的原因是什么
我一直在使用Microsoft Academic Knoledge API一周了,直到现在我还没有遇到任何问题。我想获取某个 session 的所有论文,例如 ICLR 或 ICML。我正在尝试使用从
我正在读这篇论文Understanding Deep learning requires rethinking generalization我不明白为什么在第 5 页第 2.2 节“含义、Redema
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我必须为非程序员(我们公司的客户)创建一个 DSL,它需要提供一些更高级别的语言功能(循环、条件表达式、变量...... - 所以它不仅仅是一个“简单”的 DSL)。 使用 DSL 应该很容易;人们应
在卷积神经网络中梯度数据的可视化中,使用 Caffe 框架,已经可视化了所有类的梯度数据,对特定类采用梯度很有趣。在“bvlc_reference_caffenet”模型的 deploy.protot
auto(x)表达式被添加到语言中。一个理性的原因是我们无法以此完善前向衰减。 template constexpr decay_t decay_copy(T&& v) noexcept( i
我是一名优秀的程序员,十分优秀!