[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

文章目录

  • [论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation
    • 1. Introduction
      • Previous Methods:
      • However:
      • Proposed Method:
    • 2. Related Work
    • 3. Method
      • 3.1 Overall Idea
        • 要让生成器的特征更远离分类边界(靠近源域支持)
        • 让分类器(F1、F2)能更好的找到远离源域支持的目标样本
        • 重复以上对抗性的学习步骤
      • 3.2 Discrepancy Loss
      • 3.3 Training Steps
        • Step A: 一起训练生成器和分类器使得在源样本上分类准确
        • Step B: 固定生成器,训练分类器使F1、F2在目标样本上输出差异最大化
        • Step C: 固定分类器,训练生成器使F1、F2在目标样本上输出差异最小化
        • 重复以上三个方法
      • 3.4 Theoretical Insight
    • 4. Experiments on Classification
      • 4.1 Experiments on Toy Datasets
      • 4.2 Experiments on Digits Datasets
      • 4.3 Experiments on VisDA Classification Dataset
    • 5. Experiments on Semantic Segmentation
    • 6. Conclusion

[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

Paper
Source Code

  • Unsupervised DA (UDA)
  • 提出了一种新的领域适应对抗训练方法,该方法通过考虑特定任务的决策边界来调整目标领域的分布
  • 对方法做了广泛评估:数字分类,对象分类和语义分割

1. Introduction

Previous Methods:

  • domain classifier(i.e., a discriminator) and feature generator
  • Source and target samples are input to the same feature generator. The discriminator is trained to discriminate the domain labels of the features generated by the generator whereas the generator is trained to fool it

对抗训练,判别器被训练用来区分不同域的特征;生成器被训练用来欺骗判别器,即拉近两域分布,让判别器区分不出特征来自哪个域。

However:

  • This method should fail to extract discriminative features because it do not consider the decision boundary.

如图左,只考虑了拉近目标域和源域的分布,并没有考虑具体任务的决策边界。
[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第1张图片

因为只考虑拉近两个域的分布,所以在分类边界会存在不能准确分类的模糊特征。

Proposed Method:

  • task-specific classifiers and a feature generator
  • task-specific classifiers: Two classifiers try to classify source samples correctly and, simultaneously, are trained to detect the target samples that are far from the support of the source

由于远离支持点的样本没有被明确的分到哪一个类中,没有区分特性。所以提出用特定任务分类器当作判别器。

  • 特定任务分类器:两个分类器被训练用于源域的正确分类,同时被训练用于检测远离源域支持点的目标域样本

依然采用判别器和生成器对抗训练的方法,生成器被训练用来欺骗判别器,即要让它生成目标特征,并让这个特征更靠近源域支持点(图右)。

2. Related Work

略。

3. Method

3.1 Overall Idea

要让生成器的特征更远离分类边界(靠近源域支持)

How to detect target samples far from the support?

在训练开始就初始化两个不同的分类器(已经在源域分类准确),利用这两个分类器在目标样本预测上的差异来检测这些远离支持点的目标样本,越是靠近分类边界的样本,在两个分类器的分类结果差异就越大,如图中黄色区域。
[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第2张图片

这样,只要找到两个分类器的预测差异的一种度量,固定分类器,去训练特征生成器,就可以让生成的特征更靠近源域支持点
[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第3张图片

让分类器(F1、F2)能更好的找到远离源域支持的目标样本

要让F1和F2在准确分类的前提下、最大化输出特征的差异。如果没有这一步,两个分类器可能会变得非常相似,就不能很好的区分靠近边界的目标样本了。
[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第4张图片

重复以上对抗性的学习步骤

如图,加强分类器输出差异,再以以最小化差异(远离黄区)为目标训练生成器,再加强分类器,再训练生成器…最终,目标样本通过生成器后的特征将靠近源域支持点。注意,在开始这样的对抗训练之前,首先有一个在源域上训练的过程,保证生成器和分类器在源域上的分类结果是正确的
[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第5张图片

3.2 Discrepancy Loss

  • F1、F2的输出为K个类softmax后的值,本文用两个分类器概率输出之差的绝对值(L1距离)作为差异损失:
    d ( p 1 , p 2 ) = 1 K ∑ k = 1 K ∣ p 1 k − p 2 k ∣ {d(p_{1},p_{2})} =\frac{1}{K}\sum_{k=1}^{K}|p_{1_{k}}-p_{2_{k}}| d(p1,p2)=K1k=1Kp1kp2k

  • 齐藤君说是根据“原理”选择的L1距离,同时还通过实验发现L2距离效果不好

3.3 Training Steps

Step A: 一起训练生成器和分类器使得在源样本上分类准确

  • 最小化softmax交叉熵:
    min ⁡ G , F 1 , F 2 L ( X s , Y s ) \mathop{\min}\limits_{G,F_{1},F_{2}} \mathcal{L}(X_{s},Y_{s}) G,F1,F2minL(Xs,Ys)
    L ( X s , Y s ) = − E ( x s , y s ) ∼ ( X s , Y s ) ∑ k = 1 K l [ k = y s ] log ⁡ p ( y ∣ x s ) \mathcal{L}(X_{s},Y_{s}) = -\mathbb{E}_{(x_{s},y_{s})\sim(X_{s},Y_{s})}\sum_{k=1}^{K}\mathbb{l}_{[k=y_{s}]}\log_{}{p(y|x_s)} L(Xs,Ys)=E(xs,ys)(Xs,Ys)k=1Kl[k=ys]logp(yxs)

Step B: 固定生成器,训练分类器使F1、F2在目标样本上输出差异最大化

  • 最大化输出差异:
    min ⁡ F 1 , F 2 L ( X s , Y s ) − L a d v ( X t ) \min\limits_{F_1,F_2}\mathcal{L}{(X_s,Y_s)-\mathcal{L}_{adv}(X_t)} F1,F2minL(Xs,Ys)Ladv(Xt)
    L a d v ( X t ) = E x t ∼ X t [ d ( p 1 ( y ∣ x t ) , p 2 ( y ∣ x t ) ) ] \mathcal{L}_{adv}(X_t) = \mathbb{E}_{x_t\sim{X_t}}[d(p1(y|x_t),p2(y|x_t))] Ladv(Xt)=ExtXt[d(p1(yxt),p2(yxt))]

  • 源域样本上添加分类损失,(作者的想法是尽量保证源域分类准确的前提下使输出差异最大化,源域都不准了把目标域拉过去也就没意义了),实验表明不加这个损失会导致性能明显下降

  • 使用相同数量的源域和目标域样本

Step C: 固定分类器,训练生成器使F1、F2在目标样本上输出差异最小化

  • 最小化输出差异
    min ⁡ G L a d v ( X t ) \min\limits_G\mathcal{L}_{adv}(X_t) GminLadv(Xt)

  • 作者设置了一个超参数n,表示对相同的小批处理重复此操作的次数,用来权衡生成器和分类器

重复以上三个方法

  • 作者认为这三个方法的顺序并不重要,重要的是要保证在源域分类准确的前提下进行对抗的训练

3.4 Theoretical Insight

  • 作者说他的方法是由Ben-David等人提出的理论驱动的

4. Experiments on Classification

  • 首先观察了模型在小实验上的表现,然后对提出的方法在数字、交通标志和对象分类数据集上进行评估
  • 作者的实验细节补充材料

4.1 Experiments on Toy Datasets

  • 实验目的:
    用来观察分类边界的小实验

  • 实验方法:

    1. 观察在inter twinning moons 2D problems上的表现
    2. 使用sklearn通过旋转源样本来生成目标样本
    3. 比较在源域上训练(步骤A)、增加最大化目标样本输出差异训练(步骤AB)、再增加最小化目标样本输出差异训练(步骤ABC)后的分类边界
  • 实验细节
    对于源样本,生成一个较低的月亮和一个较高的月亮,分别标记为0和1。通过旋转源样本分布的角度生成目标样本。每个分类生成300个源和目标样本作为训练样本。最后在1000个目标样本上测试,并将学习到的决策边界可视化。
    batch size 200,Adam,lr 0.0002,n 3
    其他细节、包括网络结构等在补充材料中,然而作者并没有公布所用数据集,所以可能得从头做一下这个小实验。

  • 实验结论
    不出所料,只是经过步骤A训练后两个分类器的边界几乎相同,而增加了步骤B之后,两个分类器边界分开,在对源域的预测结果基本一致的前提下,对目标样本的预测尽量不一致。然后经过步骤C训练生成器减少差异,使得对目标样本的预测结果基本相同,分类边界再次贴近(理解成把目标域拉到源域没有冲突的边界里感觉更好一点),对大部分目标样本完成正确分类
    [论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第6张图片

4.2 Experiments on Digits Datasets

  • 实验目的
    与基于分布匹配的方法进行比较
  • 实验方法
    评估模型在三个场景下的适应性,分别是SVHN->MNIST、SYNSIGNS->GTSRB、MNIST<->USPS
  • 实验细节
    使用了[7]和[3]中的CNN结构在模型每一层都增加了batch normalization没有使用带标记的目标样本微调超参数
    batch size 128,Adam,lr 0.0002,n from 2 to 4
    更多细节见补充材料
    MNIST<->USPS:followed the different protocols provided by the paper, ADDA[39] and PixelDA[3]
  • 实验结论
    所提出的方法在所有情况下都优于基于分布匹配的方法。随着n值的增加,性能得到了提高。虽然ATDA[32]等其他方法在某些情况下的性能优于本文方法,但该方法使用了少量标记的目标样本来确定每个数据集的超参数。如果可以为每个数据集选择最佳超参数,本文方法的性能也会提升[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第7张图片 随着误差损失的减小,精度提高,证实了将目标样本的输出差异降低可以适应源域。虽然该方法并没有完全匹配源和目标的分布,然而可视化结果显示,目标样本似乎与每一类源样本保持一致
    [论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第8张图片

4.3 Experiments on VisDA Classification Dataset

  • 实验目的
    进一步评估提出的方法
  • 实验方法
    使用VisDA数据集
  • 实验细节
    considered the images of validation splits as the target domain
    ResNet101 pre-trained on Imagenet,由于该数据集具有丰富的源和目标样本,所以删除了最终的全连接层,并以相同的学习速度更新所有层
    预训练的模型作为生成器,用三层全连通网络作分类器
    batch size 32,SGD,lr 0.001, report the accuracy after 10 epochs
    更多细节见补充材料
  • 实验结论
    比其他基于分布匹配的方法好得多,在所有类中都比只用源域训练的模型效果更好,而MMD和DANN在某些类(如car和plant)中比只用源域的模型表现得更差
    随着n值的增大,性能得到改善。作者认为这是由于合成物体和真实物体之间存在较大的域差异。需要更多次更新生成器才能对齐这些分布[论文阅读笔记@2019.6] Maximum Classifier Discrepancy for Unsupervised Domain Adaptation_第9张图片

5. Experiments on Semantic Segmentation

  • 实验目的
    进一步将该方法应用于语义分割

  • 实验方法
    合成数据集GTA5或Synthia作为源域数据集,实际数据集Cityscapes作为目标域数据集,Cityscapes训练集用于训练,Cityscape验证集用于测试集

  • 实验细节
    在训练过程中,从源数据集的图像(及其标签)和没有标签的目标数据集的剩余图像中随机抽取一个样本(由于GPU内存限制,将批处理大小设置为1)
    基于FCN8s和DRN-D-105的VGG-16,模型细节结构与超参数在补充材料中
    SGD,momentum rate 0.9,lr 0.001,resize to 1024×512,report 50000次迭代后的F1

  • 实验结论
    即使合成图像与真实图像之间存在较大的区域差异,本文方法也能够提高性能,比DANN效果更好

6. Conclusion

  • 在补充材料中提供了梯度反转层的应用结果,使模型的参数更新只需一步

你可能感兴趣的:(DL,论文阅读笔记,深度学习,pytorch,神经网络,机器学习)