域适应的问题产生:
给定一个特定的任务,我们需要收集一批带标签的数据用于训练一个模型, 在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
-
:在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]
首先,
在最小化两个hypotheses 在
总结来说,在测量domain distance 方面:
-
[1] 只考虑了binary 的hypothesis space
-
[2] 只考虑了两个hypotheses 在category prediction 的一致性
-
[3] 额外考虑了hypothesis 的输出概率在正确类别和错误类别上的margin
-
[4] 额外首次提出了两个hypotheses 的probability输出在element wise 的一致性
基于对抗训练的域适应算法分析
首当其冲的算法无疑是 DANN [5]. 将
这么漂亮的DANN有什么缺点呢?如果从
那么直接的改进就是少替代或者不替代hypotheses。 第一个改进方法是CDAN [7], 它将
保留两个hypotheses for domain alignment的算法还有[9,10] 等. 以MCD 为例,这样保留两个hypotheses 还有什么其他问题嘛? 有的。因为
针对算法和理论存在的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 的差异)。并且证实了如下观点:
-
[2] 和Margin Disparity Discrepancy:[3] 的variant 可由 MCSD divergence 退化得到。
- 通过在5个数据集上的实验证明,完整考虑两个hypotheses 的输出差异 (即element-wise的差异) 相对于只考虑两个hypotheses 的prediction 一致性(即DANN [5] 算法),和考虑hypotheses prediction一致性加margin(即算法[2]), 要有优势
- 提出了两种算法框架: 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, 那么上述
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