前言
- 本文属于我迁移学习专栏里的一篇,该专栏用于记录本人研究生阶段相关迁移学习论文的原理阐述以及复现工作。
- 本专栏的文章主要内容为解释原理,论文具体的翻译及复现代码在文章的github中。
原理阐述
文章介绍
- 这篇文章于2018年发表在AAAI,作者是清华大学龙明盛老师的学生。
- 这篇文章作者提到,域适应存在两个技术挑战:(1)通过最大限度地匹配跨域数据分布的多模式结构来增强正迁移;(2)通过防止跨域分布中模式的错误对齐来减轻负迁移。在这些挑战的激励下,作者提出一种多对抗域自适应(MADA)方法,它捕获多模式结构,以支持基于多个域鉴别器的不同数据分布的细粒度对齐。与以前的方法相比,一个关键的改进是能够同时促进相关数据的正迁移和减轻不相关数据的负迁移。利用线性时间内的反向传播计算梯度,通过随机梯度下降实现自适应。
- 就是这篇文章提出了标志性的局部域分类器,之前发表于ICML2015的DANN(或RevGrad)提出的是全局域分类器,它不区分类别,在我的理解下,它是优化了边缘概率分布,而MADA则是提出了分类类别个数的局部域分类器,用于负责每个类别的域适应,优化条件概率分布。
模型结构
- MADA的模型是这样的:
标签分类器
- 从图中可以看到,源域样本首先经过Gf层提取到相关特征,然后送入标签分类器Gy得到分类标签 y ′ y' y′,然后使用交叉熵损失计算分类损失。标签分类器几乎是所有模型必备的一项。这里不过多赘述。
局部域分类器
- 我们可以看到上面的蓝色线条,这就是局部域分类器。首先Gf提取到目标域和源域的特征,然后经过GRL后送入局部域分类器。这里产生一个问题,目标域样本的标签我们是不知道的,只知道源域数据标签,那我们如何知道哪个样本应该送入哪个局部域分类器呢?作者的设计巧夺天工,他选择让经过GRL之后的特征再与各个类别的标签分类概率相乘,然后送入相应类别的局部域分类器,这是可以理解的,因为你在这个类别的分类概率越高就意味着这个局部域分类器对你的关注度就应该越高。
损失函数
- 见下图:
分别是交叉熵损失和二分类交叉熵损失。
学习率和λ的设置:
优点
- 见下图:
总结
- 这篇模型的提出具有非常重要的意义,它在理论上是合理的。对于多个分类标签的迁移任务,我们必须注意迁移方向的问题,应当使得同一类别的样本的特征进行对齐,而不是一股脑的不加区分导致狗和猫的特征都能进行对齐。但其实与MSTN模型伪标签相差也不是很大,同样依赖于对于目标域数据的标签预测,同样会出现负迁移的情况,我感觉负迁移是无法避免的,除非你百分百知道目标域数据的标签,倘若知道也就无需迁移了。这篇文章非常有意义,后来的DAAN则是结合了该文章和DANN模型。