会议:ICML 2015 论文题目:Unsupervised Domain Adaptation by Backpropagation 论文地址:http://proceedings.mlr.press/v37/ganin15.pdf 论文代码:https://github.com/fungtion/DANN
Unsupervised domain Adaptation by Backpropagation 这篇论文发表于2015 ICML,目前引用量已经3000+,这篇文章讲得非常好,把对抗训练的思想应用到分布迁移上面。具体来说在原来feature mapping的基础上外接一个domain classifier(之前那个叫做label classifier),这个domain classifier的作用是判别当前样本是属于哪个domain的,如果你的数据集只有两个分布,那么这个classifier就是一个二分类任务。如果你正常进行梯度更新的话,feature mapping这个向量在不同的domain上就会dissimilar,但是如果你加了梯度反向层(让encoder这个部分关于domain的loss传回来的梯度是反向更新的),那么这个features mapping在不同的domain(数据集)上就可以表现出特征不变性(也就是体现出特征解耦)
DANN模型架构
本文核心思想:训练上面的模型,让domain classifier无法分辨出你输入的x属于哪个domain。这时,我们的目的就达到了,因为我们在分不清这个x是哪个domain的情况下,模型还是能用label predictor分类器做出x的label的预测。说明我们换个domain的数据,label预测任务的性能仍然较好。
不同模块的功能
- Domain Classifier:区分输入图片是属于哪个domain的(source domain或target domain)
- Label Predictor:识别source domain图片上的数字
- Feature Extrator:帮助Label Predictor做预测;捅domain classifier一刀,做和他相反的事情。
下图来自李宏毅老师的课件,正好把论文中的架构图解释清楚了
梯度反转层
核心代码部分
结合代码去理解上面的模型结构图就很简单了
实验
参考资料
https://drive.google.com/file/d/15wlfUtTmnb4cEAHZtNJ9_jJE26nSNhAX/view
|