【文献阅读】DANN:Domain-Adversarial Training of Neural Networks

DANN

参考:https://www.jianshu.com/p/73cfb4b31c8b

img

DANN的目的

通过对抗的方式可以提取domian无关的特征,从而实现domain adaption。这就是DANN(Domain-Adversarial Neural Networks)。

输入分为Source Domain和Target Domain

  1. Source Domain:是原始训练数据,有标签

  2. Target Domain: 是测试数据,没有标签

希望在提取特征后,source和target分不出差异。

DANN模型框架

这个模型有三部分:

label predictor(蓝色):对Source Domain进行训练,原论文是处理分类任务,所以就是让Source Domain的图片分类越正确越好

domain classifier(红色):二分类器,要让Domain的分类越正确越好,分类出是Source还是Target。

feature extractor(绿色):特征提取,站在label predictor这边,捅domain classifier一刀,做和domain classifier相反的事情。

  • 将源域样本和目标域样本进行映射和混合,使域判别器无法区分数据来自哪个域;

  • 提取后续网络完成任务所需要的特征,使标签预测器能够分辨出来自源域数据的类别。

为什么要GRL?

其中域分类器和特征提取器中间有一个梯度反转层(Gradient reversal layer)。梯度反转层顾名思义将梯度乘一个负数,然后进行反向传播。加入GRL的目的是为了让域判别器特征提取器之间形成一种对抗。

feature extractor,它要提取一个供B和P共享的feature,这个feature有两个目标:

  1. 最小化目标loss \(L_y\),即label predictor分类越准确;
  2. 最大化loss \(L_d\),这样就可以尽可能的让两个domain分不开,feature自己就渐渐趋于域自适应了。

其中第二个目标就是用GRL实现的。loss \(L_d\)在domain classifier中是很小的,但通过GRL后,就实现在feature extractor中不能正确的判断出信息来自哪一个域。

img

总结

特征提取器的目标是最大化标签分类的精确度,最小化域分类器的精确度。域分类器的目标是最大化域分类的精确度,所以特征提取器和域判别器在进行对抗。最后特征提取器获得的是域无关的信息。

Outlook

问题1

怎么使Target Domain和Source Domain越接近越好的同时,让Target Domain的分类也明确?

其中的一种做法:dirt-t

问题2

posted @ 2021-11-22 14:34  麦伦克  阅读(458)  评论(0编辑  收藏  举报