Adversarial Discriminative Domain Adaption 阅读笔记

文章发表于 CVPR 2017

文章利用GAN网络的思想用于cross-domain识别

文章首先提到

        1 先前的生成网络不适用于大的domain shift

        2 先前的辨别网络施加固定的权重,没有利用GAN的loss

1 introduction

        一般而言,对于这种跨领域的任务,最简单的思想就是先训练source domain, 然后利用fine-tuning调整参数。但是,如果source domain没有足够的label,将会失效。最近的domain adaptation方案:将两个域的feature投影到统一的特征空间。通过最小化一定的约束学习映射。这些方法总结为一些选择:

Adversarial Discriminative Domain Adaption 阅读笔记_第1张图片

        1 是否使用生成器generator

        2 使用什么loss function

        3 是否权值共享

        4 。。。

       生成步骤不是必须,因为目标是分类识别,用非对称的映射更好,因为不同的domain有不同的特性(因此不提倡全部权值共享)。

2 related work

        一类方法是:通过一个损失函数,最小化source domain和target domain的差别,如MMD, DCC。另一类方法是选择对抗性的loss:使用一个domain二分类器(简单的全连接神经网络)将获取的特征进行分类,然后定义一个domain confusing loss,通过优化特征提取让该domain二分类器分辨不出他们来。

3 生成对抗adaptation

        先学习一个source域的映射Ms,一个source域的分类器Cs来分类。由于source domain有标签,我们可以轻易地学习到这俩。现在的问题是如何把Ms和Cs迁移到target domain。首先一个假设是,分类器是共享的,也就是说Ct=Cs,相当于在映射后的子空间内,源域和目标域有着相同的分布。因此,只需要学习Mt, 为了获得Mt,需要定义一个domain分类器D,借鉴GAN网络的思想,优化D的目标函数为:

Adversarial Discriminative Domain Adaption 阅读笔记_第2张图片

        这和GAN网络的优化目标

        

        很相似。怎么解释呢?这个分类器D我们希望它能尽量分类出得到的feature是来自于哪一个domain,因此,D(Mt(xt))理想的结果是0,D(Ms(Xs))理想的结果是1,最小化LadvD 可以得到当前的域分类器D。得到D后,通过训练Xt,希望D尽可能区分不出二者,即:

Adversarial Discriminative Domain Adaption 阅读笔记_第3张图片

        这里,是Ms和Mt要满足的约束,比如,对于全权值共享来说,Ms=Mt,对于无权值共享来说,这两者无需满足任何约束。对于部分权值共享:


       这表示,在第li层,Ms和Mt的权值是一样的。全权值共享不好,因为一个网络很难能够同时获取两个域的有用特征。

       本文决定不给他们任何约束,即没有任何权值共享。那么剩下的问题就是如歌确定第二项:LadvM了。如果借鉴原始的GAN的思想:


       这个的问题是容易发生梯度消失。改进方法是:将label反转,最优化目标变为:


        希望D将Xt分类为1,该式子和上一个式子其实是等效的,但是有更强的梯度。如果Mt和Ms都不固定,这个loss function就不好,因为容易引发震荡,当然有其他选择,比如交叉熵:

Adversarial Discriminative Domain Adaption 阅读笔记_第4张图片

        当然,在本文中,我们固定了Ms,因此采用标准的GAN所采用的方法。至此,几个关键的选择都确定了,如下:

Adversarial Discriminative Domain Adaption 阅读笔记_第5张图片

        具体的操作:

       1 先通过source domain的样本和标签训练Ms和C

       2 保持Ms和C不变,用Ms初始化Mt,并交替优化第二项第三项,获得D和Mt

       3 testing stage:target domain的sample直接通过Mt和C获得预测的标签。

图示如下:

Adversarial Discriminative Domain Adaption 阅读笔记_第6张图片

这篇文章是结合对抗网络框架与深度学习技术解决domain adaptation应用的一个工作。具体而言,在这个框架中对三个部分进行训练:一个是feature extractor,这个是用于提取特征的,一般由卷积层与pooling层组成;另一个是label classifier,使用全连接层+逻辑斯蒂分类器;第三个在一般的分类器中不会出现,也就是和feature extractor构成对抗网络框架的分类器domain classifier,它也是一个分类器,由全连接层+交叉熵分类器构成。其中全连接层的激活函数都是relu函数。对抗体现在对于domain classifier损失在训练阶段两个相反的要求。具体而言:对于domain adaptation应用,我们希望网络学到的特征表示具有领域不变(domain invariant)的特征,那么就要求dimain classifier不能正确进行领域分类,也就是要求domain classifier的分类损失最大;另一方面在对domain classifier训练时,我们肯定要求分类器能尽可能的正确分类,也就是domain classifier的分类损失最小。这种对抗的框架最早出现在Goodfellow的文章Generative adversarial networks,它针对的应用是图像生成,为了训练一个生成模型学习样本的分布,在框架中引入了一个判别模型用于区分样本是由模型生成还是来源于真实分布,感兴趣的可以仔细看那篇文章的框架。下面给出这篇文章的框架。 
Adversarial Discriminative Domain Adaption 阅读笔记_第7张图片 
其中绿色部分是feature extractor;蓝色部分是label classifier;红色部分是domain classifier 
下面从模型以及优化算法两个方面来介绍这篇文章。 
一、模型 
首先来介绍模型的构成及其关系。 
domain adaptation的应用中有两个域:一个包含大量的标签信息,称为源域(source domain);另一个只有少量的甚至没有标签,但是却包含我们要预测的样本 ,称为目标域(target domain)。所以,按照常理,我们可以在源域上通过一般的机器学习方法来训练得到判别模型。但是由于源域和目标域上的dataset bias,这个判别模型不能直接移植到目标域。如何在尽量不损失判别模型的条件下将判别模型由源域迁移到目标域,就是domain adaptation要解决的问题,也称为迁移学习(transfer learning)。关于这个问题,一般有shared-classifier假设:如果可以在源域和目标域上,学习到一个公共的特征表示空间,那么在这个特征空间上,源域特征上学到的判别模型也可以用到目标域的特征上。所以domain adaptation问题往往转换为寻找公共特征表示空间的问题,也就是学习域不变特征(domain invariant feature)。本文就是利用对抗网络的框架来学习域不变特征。 
具体而言,如果学习得到一个domain classifier,它能对不同域进行区分。学习不变特征的假设就是,在训练好的domain classifier上,如果不同域上的特征在这个分类器上不能区分,也就是这个分类器的分类损失很大, 那么这个特征就可以看作是不变特征。一个极端的例子是如果源域和目标域在这个空间上完全重合,那么所有的domain classifier按照常理都会失效,都相当于一个随机分类器的效果。 
另一方面,对于label classification,我们要让学到的特征尽可能具有label的分类判别信息,也就是最小化label classifier的分类损失。 
实际上在训练domain classifier的时候要求它的分类损失最小化,而要求得到不变特征,要求分类损失最大化,这是一个互相对抗的要求,可以表示如下: 
Adversarial Discriminative Domain Adaption 阅读笔记_第8张图片 
其中: 
Adversarial Discriminative Domain Adaption 阅读笔记_第9张图片 
其中theta_f表示特征提取的参数,theta_y表示label classifier的分类器,theta_d表示domain classifier的参数,L_y表示label classifier的分类器,L_d表示domain classifier的分类器。N代表所有样本的数目,d_i代表域标签,0代表源域。 
下面介绍如何在标准的梯度下降法中优化这个函数。 
二、优化 
针对上面(2)和(3)中的问题,可以用下面的方法对网络参数进行更新: 
Adversarial Discriminative Domain Adaption 阅读笔记_第10张图片 
这个区别于对抗网络中的固定一个更新另一个的过程,在一个循环里面对网络参数同时进行更新。其中mu是学习的速度,lambda表示一个超参数。如果不使用lambda参数,作者表明会使得训练得到的特征最小化domain classifier loss,也就是不能学到域不变的特征。 
为了使上面的式子符合标准的方向传播的表示,作者定义了一个中间函数,它在前向和反向过程中有两个不等价的表现形式: 
Gradient Redversal Layer 
对应的损失函数表示为: 
Adversarial Discriminative Domain Adaption 阅读笔记_第11张图片 
这样就可以用标准的SGD方法进行反向传播。



你可能感兴趣的:(gans,机器学习)