首次适应算法c++_迁移学习之多类域适应(Multi-Class Domain Adaptation)理论和算法总结...

1b51f9de939511716b9d6a6e99d2c9da.png

域适应的问题产生:

给定一个特定的任务,我们需要收集一批带标签的数据用于训练一个模型, 在deep learning 的背景下更是如此。 但是为每一个新的任务收集一批新的训练数据需要花费大量的人力物力,而且对于一些任务根本不存在如此大量的数据(如罕见的疾病)。所以很直接的产生一个问题A:如何在减少人工样本收集标注成本的条件下得到一个可以接受的模型。这是一个开放的问题,像few-shot learning, transfer learning 等一系列方法都可以看做问题A的一种回答。域适应(domain adaptation) 是transfer learning 下的一个子问题,它将问题A具体化为如下的问题:对于一个目标任务(target task),我们收集了一批目标域(target domain)的无标签数据和源域(source domain)的有标签数据, 如何利用这些数据得到一个可接受的模型 for 目标任务。 由于源域和目标域的数据分布不同,所以直接在源域上训练的模型在目标域上的表现一般不佳。

域适应的理论分析:

我们讨论目前接受度最高的一类理论分析:论文[1,2]及其衍生理论[3,4], 其他基于metric learning 或者optical flow的理论暂不讨论。 本部分只从宏观上讨论现有理论,关于[1,2] 具体可以参考种豆南山下:《迁移学习》: 领域自适应(Domain Adaptation)的理论分析, 深究请参考原始论文。

该理论框架的核心是:

即,hypothesis

(可以理解为model 或者classifier) 在target domain
上的 error
被三项所约束:
  • :
    在source domain
    上的error
  • : source domain
    与target domain
    之间的domain distance
  • :
    源域和目标域上error 和的最小值。该值为常数若
    给定。

理论[1,2,3,4]的主要区别在于对于

的定义不同:
  • introduced in [1]:

  • introduced in [2]:

  • Margin Disparity Discrepancy introduced in [3]

  • MCSD divergence introduced in [4]

的定义比较复杂,我们不展开了。我们接下来在宏观上解释他们的区别:

首先,

中的
是一个二分类的hypothesis space,先放一边; 然后我们注意到后面三个domain distance 的形式是一样的,即
两个hypotheses 在
上的差异减去其在
上的差异的差在
上的上确界
。 那么我们只关注 这三个方法如何衡量两个hypotheses 在
(
)上的差异
这一项就可以了

在最小化两个hypotheses 在

(
)上的差异时,
中的
只关注hypotheses
category prediction 上的一致性(不care f' and f'' 的输出在每个category 上的probability 值)。
通过引入margin loss, 不止关心hypotheses
在category prediction 上的一致性,还要求
输出概率中正确类别的probability 要比其他类别的probability 要至少高margin
.
中引入了 absolute margin,进而可以通过两个途径来减小两个hypotheses 在
(
)上的差异(1)类似
,不止关心hypotheses
在category prediction 上的一致性,还要求其的输出概率中正确类别的probability 要比其他类别的probability 要至少高出一个margin(2)
使两个hypotheses对于
(
)中任一instance 的输出概率在每一类别上完全一致(element wise 的一致)
-- 这一点对于算法设计产生了指导性的意义(见下文算法部分). 下图中直观比较了以上三种方法在衡量两个hypotheses 在
(
)上的差异的区别:
(即图(c))要更加连续,更有利于优化。

658ece68442f92d17a3efeb8b5742c4f.png
三种衡量两个hypotheses 在 Q ( P )上的差异方法的区别的直观比较。X,Y 轴分别代表了两个hypotheses 的输出,Z轴代表差异值。其中(a)代表了Margin Disparity Discrepancy introduced in [3], (b)代表了HDelta H distance of [2],(c) 代表了MCSD divergence introduced in [4]。 该图来自论文[4].

总结来说,在测量domain distance 方面:

  • [1] 只考虑了binary 的hypothesis space
  • [2] 只考虑了两个hypotheses 在category prediction 的一致性
  • [3] 额外考虑了hypothesis 的输出概率在正确类别和错误类别上的margin
  • [4] 额外首次提出了两个hypotheses 的probability输出在element wise 的一致性

基于对抗训练的域适应算法分析

首当其冲的算法无疑是 DANN [5]. 将

[1]中的binary hypothesis 实例化成一个二分类的domain classifier, 然后再用对抗的方式训练domain classifier 和 feature extractor. 看上去很漂亮。

这么漂亮的DANN有什么缺点呢?如果从

-distance [6] 的角度来考虑,好像是没什么问题. 可是如果换成从
的转换关系来考虑,我们可以将其过程理解为将
这个二分类问题用一个二分类器
来替代表示。那么问题就出来了:
用一个二分类器来代替两个hypotheses的差异这件事会不会不太好??应该是不好。 虽然没有完善的理论证明,但是从直觉上来说,category 的信息在这个替代过程中被完全忽略了 (实验上也显示这样替代对结果有负面影响)。

那么直接的改进就是少替代或者不替代hypotheses。 第一个改进方法是CDAN [7], 它将

实例化为
(并不准确,只是概念上对,细节请参考[7]),
是一个binary domain classifier. 也就是,它保留了一个hypothesis
in domain measurement. 第二个改进方法是MCD [8], 它完全保留了两个hypotheses (也就是两个classifiers), 并将
实例化为
的输出的
距离。

保留两个hypotheses for domain alignment的算法还有[9,10] 等. 以MCD 为例,这样保留两个hypotheses 还有什么其他问题嘛? 有的。因为

中的 0-1 loss
与MCD 中采用的
loss 并不一致。从另一个角度来说,
只度量了
的category prediction 的一致性, 而MCD 中采用的
loss 度量了
输出概率element-wise 的一致性。也就是
理论和算法中间是存在gap的,
理论可以启发MCD 这一类的算法,但是不能直接导出MCD这一类的算法

针对算法和理论存在的gap, [3] 提出了一种新的基于margin loss的理论及其对应算法。 相对于MCD的中对称使用的两个hypotheses, 算法[3] 中的两个hypotheses 是非对称使用的。可是,像MCD[8], SymNets[9], 及[10]此类,considering the element-wise difference of two hypotheses 的算法仍没有直接的理论支撑。

于是 [4] 提出了MCSD divergence, 其MCSD 可以完整衡量两个hypotheses 的输出差异(即element-wise 的差异)。并且证实了如下观点:

  1. [2] 和Margin Disparity Discrepancy:
    [3] 的variant 可由 MCSD divergence 退化得到。
  2. 通过在5个数据集上的实验证明,完整考虑两个hypotheses 的输出差异 (即element-wise的差异) 相对于只考虑两个hypotheses 的prediction 一致性(即DANN [5] 算法),和考虑hypotheses prediction一致性加margin(即算法[2]), 要有优势
  3. 提出了两种算法框架: McDalNet框架给出了多种loss 实现,其中一种和MCD[8]很相似; SymmNets 框架在closed set, partial, and open set UDA 上验证了其有效性。

总结及讨论

1. 在UDA算法设计过程中,直接显式引入两个classifiers for domain alignment,并考虑其element-wise 的差异是有帮助的. 该设计有严谨的理论证明[4]
2. 那么UDA的理论和算法方面还有什么需要做的嘛? 有的。例如,一个很直接的问题是:

这个框架讨论的基础是Image space 还feature space? 如果是Image space, 那么上述

右边三项都是常数,所以应该不是。 如果是feature space, 那么在最小化
的时候
也会变化,就不能像大多数算法中把其当做常数。

3. 现在主流的UDA方法都在致力于减小两个domain 的distance, 并取得了出色的结果。 可是从实验表现上来看一些其他做法带来的性能提升比domain distance minimization 本身可能要多 [9]。所以缩小domain distance 是解决UDA问题唯一的方向嘛?

为笔记,亦是分享。如有发现失当描述,欢迎指出,我会尽量及时修改~

[1] Analysis of Representations for Domain Adaptation
[2] A theory of learning from different domains
[3] Bridging Theory and Algorithm for Domain Adaptation
[4] Unsupervised Multi-Class Domain Adaptation:Theory, Algorithms, and Practice
[5] Domain-Adversarial Training of Neural Networks
[6] Detecting Change in Data Streams
[7] Conditional Adversarial Domain Adaptation
[8] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation
[9] Domain-Symmetric Networks for Adversarial Domain Adaptation
[10] Unsupervised Domain Adaptation via Regularized Conditional Alignment
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值