小王爱迁移系列之二十一:最大分类器差异的领域自适应(MCD_DA)

小王爱迁移系列之二十一:最大分类器差异的领域自适应(MCD_DA)

这是在CVPR 2018进行口头汇报的一篇文章,题目叫做Maximum Classifier Discrepancy for Unsupervised Domain Adaptation。我个人比较喜欢这篇论文,认为这是今年CVPR最值得阅读的迁移学习论文之一。文章所提的方法非常简单,甚至在某种程度上体现了我们中国“中庸”式的思想。论文的作者团队来自日本东京大学。这个文章的思想与作者今年在ICLR发表的"Adversarial Dropout Regularization"异曲同工,但是效果更好。第一作者叫Saito(中文叫斋藤,想起了小兵张嘎里的斋藤太君哈哈),刚从东京大学硕士毕业,目前在波士顿大学读博,导师是Kate Saenko。

Motivation

文章的出发点在于,现在的领域自适应方法在适配过程中,并没有考虑任务特异性的决策边界,并且它们只是完全把两个domain的特征进行对齐,而忽略了其实每个domain都有各自的特点。

什么是任务特异性的决策边界?我个人的理解就是,学习到的预测函数对于不同的决策目标,都应该扮演不同的角色。也就是说要把它们的特点给考虑进来。通俗地讲,即对不同任务都要自适应地给出决策边界。

看到这里你可能想了,这不就是学习N个不同分类器吗,这也太简单了。但是,作者并没有用这种简单粗暴但是不高效的方法,而是借鉴了对抗的思想,在分类器学习的过程,合理地利用了这种思想,将不同任务的特点都考虑到,使得模型达到一种“中庸”的微妙平衡状态。

Method

论文中提出的方法叫做Maximum Classifier Discrepancy,中文就姑且翻译为最大分类器差异吧,虽然名字是真的一点都不fancy,差点以为是MMD(Maximum Mean Discrepancy)的变种。

方法的主要思想非常简单:用源域训练的网络如果用到目标域上,肯定因为目标域与源域的不同,效果也会有所不同:有的样本效果好,有的效果差。效果好的我们就不管了,重点关注效果不好的,因为这才能体现出领域的差异性。为了找到这些效果差的样本,作者引入了两个独立的分类器 F_1F_2 ,用二者的分歧表示样本的置信度不高,需要重新训练。

通俗点说就是,如果F_1F_2在一个目标域样本上结果不一致,就认为发生了分歧,此时就需要后续介入;如果结果一致,认为这个样本比较好分,就先不用管。

造成的结果就是下图这样的(阴影部分表示有分歧的样本):



  1. 训练的第一阶段(第一个图),产生了一些阴影,我们的目标是要最大化阴影区域(因为这样可以针对不同的分类器学习到不同的特征表示)
  2. 最大化两个分类器差异的结果是第二个图,此时阴影比较大,所以我们目标就是通过提取更好的特征来减少两个分类器的分歧
  3. 最小化分歧的结果是第三个图,此时阴影几乎不存在了,但问题是决策边界还是有一些紧凑,可能特征不太鲁棒,那就和上一步交替优化
  4. 交替优化的目标是第四个图,此时,阴影不存在,并且,决策边界也比较鲁棒

整个方法非常简单,看上去很好理解,思想却也很美妙:这不就是妥协和分歧的交叉进行嘛,最后达到了平衡,双方都满意了。学好中国文化,做科研都不怕。

学习过程

学习过程也和上面的图一一对应。作者将其分为A、B、C三个阶段。

  • 在A阶段,目标是首先训练出两个不同的分类器F_1F_2。训练方式很简单,求源域上的分类误差即可。公式如下:

 \min \mathcal { L } \left( X _ { s } , Y _ { s } \right) = - \mathbb { E } _ { \left( \mathbf { x } _ { \mathbf { s } } , y _ { s } \right) \sim \left( X _ { s } , Y _ { s } \right) } \sum _ { k = 1 } ^ { K } \mathbb { I } _ { \left[ k = y _ { s } \right] } \log p ( \mathbf { y } | \mathbf { x } _ { s } )

  • 在B阶段,固定特征提取器 G ,训练两个不同的分类器 F_1F_2,使得它们的差异最大。两个分离器的差异用最简单的L1损失来衡量。优化目标如下:

\min _ { F _ { 1 } , F _ { 2 } } \mathcal { L } \left( X _ { s } , Y _ { s } \right) - \mathcal { L } _ { \mathrm { adv } } \left( X _ { t } \right)

\mathcal { L } _ { \mathrm { adv } } \left( X _ { t } \right) = \mathbb { E } _ { \mathbf { x } _ { \mathbf { t } } \sim X _ { t } } \left[ d \left( p _ { 1 } ( \mathbf { y } | \mathbf { x } _ { \mathbf { t } } ) , p _ { 2 } ( \mathbf { y } | \mathbf { x } _ { \mathbf { t } } ) \right) \right]

d \left( p _ { 1 } , p _ { 2 } \right) = \frac { 1 } { K } \sum _ { k = 1 } ^ { K } \left| p _ { 1 k } - p _ { 2 k } \right|

  • 在C阶段,与B阶段相反,固定两个分类器,优化特征生成器 G ,使得特征对两个分类器效果尽可能一样:

\min _ { G } \mathcal { L } _ { \mathrm { adv } } \left( X _ { t } \right)

B和C阶段的训练过程可以用下图来表示:



这个过程非常简单,实现起来很容易,有没有!根本没有任何的调参数的trick!

Experiments

实验部分非常充分。作者首先用新月形的toy dataset进行了idea验证,说明了他们思路的有效性。

然后,用MNIST、USPS、SVHN、SYN SIGNS、GTSRB这些字符数据进行了大量的实验。值得注意的是,在字符数据上实验时,用的网络都很浅,而且,并没有用到ImageNet pretrained model (隔空呼应了Kaiming He的Rethinking ImageNet Pretraining哈哈)。

接着,作者在目前最大的迁移学习数据集VisDA上进行了实验,这时由于样本较大(20万),所以用了ResNet-101网络,而且也在ImageNet上进行了pretrain。效果自然也是吊打对比方法,而且提升了很多个点。

最后作者在语义分割数据集GTA5和Cityscape上进行了实验。

总结

文章的方法思想非常简单,实现也很容易,但是效果却比那些重量级的、需要反复调整参数的方法要有效的多。我个人偏爱这种简单粗暴有效却又不失美感的研究。可能也正因为如此,这篇文章入选了CVPR 2018的oral吧。作者也非常慷慨地在github上放出了源代码,作者代码也写的非常6呢!代码地址:github.com/mil-tokyo/MC


References

[1] 本文讲的论文:Kuniaki Saito et al. Maximum Classifier Discrepancy for Unsupervised Domain Adaptation. CVPR 2018.

[2] 与本文异曲同工的作者的一篇ICLR文章:Kuniaki Saito et al. Adversarial Dropout Regularization. ICLR 2018.


========================

[作者简介]王晋东(不在家),中国科学院计算技术研究所博士生,目前研究方向为机器学习、迁移学习、人工智能等。作者联系方式:微博@秦汉日记 ,个人网站Jindong Wang is Here

=================

更多《小王爱迁移》系列文章:

《小王爱迁移》系列之零:迁移学习领域著名学者和研究机构

《小王爱迁移》系列之一:迁移成分分析(TCA)方法简介

《小王爱迁移》系列之二:联合分布适配(JDA)方法简介

《小王爱迁移》系列之三:深度神经网络的可迁移性

《小王爱迁移》系列之四:深度网络如何进行迁移学习(DaNN、DDC、DAN)

《小王爱迁移》系列之五:测地线流式核方法(GFK)

《小王爱迁移》系列之六:学习迁移(Learning To Transfer)

《小王爱迁移》系列之七:负迁移(Negative Transfer)

《小王爱迁移》系列之八:深度迁移学习文章解读

《小王爱迁移》系列之九:开放集迁移学习(Open Set Domain Adaptation)

《小王爱迁移》系列之十:张量迁移学习(tensor unsupervised domain adaptation)

《小王爱迁移》系列之十一:选择性对抗迁移学习(Selective Adversarial Network)

《小王爱迁移》系列之十二:新年新气象-重新整理的迁移学习资源仓库

《小王爱迁移》系列之十三:在线迁移学习(online transfer learning)

《小王爱迁移》系列之十四:用于部分迁移学习的深度加权对抗网络

《迁移学习简明手册》发布啦!

《小王爱迁移》系列之十五:自动选择源域的迁移学习方法(SSFTL)

《小王爱迁移》系列之十六:探秘任务迁移学习 (CVPR 2018最佳论文解读)

《小王爱迁移》系列之十七:深度迁移度量学习

《小王爱迁移》系列之十八:联邦迁移学习

《小王爱迁移》系列之十九:基于条件对抗网络的领域自适应

《小王爱迁移》系列之二十:深度迁移学习用于时间序列分类

小王爱迁移》系列之二十一:最大分类器差异的领域自适应(MCD_DA)

《小王爱迁移》系列之二十二:Learn What and Where to Transfer

编辑于 2019-09-17

文章被以下专栏收录