About this paper
- Title: Adversarial Discriminative Domain Adaptation
- Authors: Eric Tzeng, Judy Hoffman, Kate Saenko, Trevor Darrell
- Topic: Domain Adaptation
- From:CVPR 2017
Contributions
- 作者提出了一个通用的对抗自适应(adversarial adaptation)框架。作者将base model, weights constraint, adversarial objective等因素纳入这一框架。之前关于对抗自适应的方法都可以看做这一框架的特例,这有助于我们归纳之前方法的异同,同时能指导我们设计新的算法。
- 作者基于提出的通用框架,提出了一种新的对抗自适应算法。这一算法使用判别模型,不进行权重共享,使用GAN loss。
Methods
Generalized architecture for adversarial domain adaptation
作者提出的通用框架如下图所示。作者认为不同的对抗自适应算法主要有三方面不同;
生成式模型还是判别式模型
生成式模型用随机噪声作为输入,在图像空间产生样本。一般会使用判别器的中间层特征来训练一个任务相关的分类器。
判别模型则会直接将图片映射到特征空间,然后输入到分类器中进行训练。不同域的映射结构是否共享权重
很多之前的对抗自适应方法都采用源域和目标域的映射结构共享权重的方式。这样做可以减少模型的参数,同时保证这样的映射至少在目标域上是有判别力的。但是这样同一个网络需要处理来自两个不同域的图片,这样可能会在优化过程中出现病态条件。
还有一些方法只对一部分层进行权重的共享,如CoGAN。
当然我们也可以使源域和目标域的映射结构完全不共享参数。-
使用何种对抗损失函数
所有不同的对抗自适应方法都使用相同损失函数(L_{advD})训练判别器。
但是训练映射网络的对抗损失不尽相同。
-
minmax loss
这个Loss对应生成对抗网络的最大最小目标函数。但是这个损失函数存在一个问题,在训练开始的时候判别器收敛的很快,会导致梯度消失。
-
GAN loss
这个损失函数才是GAN真正使用的损失函数。在训练生成器的时候使用相反的标签来训练一个标准的分类器。
-
domain confusion loss:
这个是作者在另一篇论文中提出的损失函数。用来解决源域和目标域特征映射都改变时进行对抗训练会产生的震荡问题。
ADDA architecture
- 首先,作者使用判别模型。因为作者认为用于生成样本的大量参数与要执行的判别任务无关。
- 其次,作者使用独立的源域和目标域映射网络,两部分不共享参数。这是一个更灵活的设计,可以让映射网络学习到更多的特定领域特征。作者用预训练的源域映射网络权重初始化目标域映射网路。
- 最后,作者使用GAN loss作为映射网络的对抗损失。
ADDA的训练过程分为三步:
-
首先,使用源域数据对源域映射网络M_s和分类器C进行监督训练,优化损失函数L_{cls}
-
其次,固定源域映射网络M_s,使用目标域数据和源域数据对目标域映射网络M_t和判别器D进行对抗训练,优化损失函数L_{advD}和L_{advM}。
最后,使用训练好的目标域映射网络M_t和分类器C对目标域数据进行测试。