DA笔记9(Maximum Classifier Discrepancy for Unsupervised Domain Adaptation)

Maximum Classifier Discrepancy for Unsupervised Domain Adaptation





动机

左边是之前的分布匹配方法:

用到一个域分类器,一个task-specific分类器。这个task-specific分类器用于把从特征提取器提取的特征进行分类。

欺骗域分类器,域分类器分辨不出来哪些是原域样本,哪些是目标域样本时,原域和目标域的分布对齐完成。

概括来说,之前的方法是特征提取器(这里叫特征生成器)和与判别器之间进行对抗。

右边是本文的分布匹配方法:

用两个task-specific分类器来把原域中的两个类分开,然后把目标域里的样本分别对应到相应的类里。

概括来说,本文的方法是特征生成器和两个task-specific分类器之间进行对抗。

这两个分类器有两个作用:一是把原域样本正确分类,二是用于发现那些类别不明的目标域样本。

二者之间如何形成对抗的?

特征生成器努力为目标域样本生成具有辨别力的特征,以方便分类器把目标域的类别判别出来;

而分类器则努力去揪出那些类别不明的目标域样本,即文中提到的target samples outside the support of the source。


论文主体


提出的方法

F1和F2是分类器,文中假定它们能把原域样本正确分类。对F1和F2进行不同的初始化,以保证二者是不同的分类器。

Figure 2中画黑线的棕色区域是Discrepancy Region,分类器F1把该区域中的目标域样本分到类B里,分类器F2则把该区域中的目标域样本分到类A里。这些画黑线的棕色区域里的样本,就是文中说的target samples outside the support of the source.

由图2可知,target samples outside the support of the source被分类器F1和F2分出的结果是不一样的,分类器的作用之一就是努力找出这些样本。换句话说,就是努力最大化图2中的Discrepancy Region。

损失函数

如何把最大化图2中的Discrepancy Region用损失函数来表示出来呢?

用p1(y|x)表示分类器F1对输入x的K维概率输出,用p2(y|x)表示分类器F2对输入x的K维概率输出。

用d(p1(y|xt),p2(y|xt))来表示分类器F1和F2对目标域样本的不同分类结果之间的差异,即Discrepancy Region的数学化表示,文中称它为discrepancy。


损失函数


无论何时,原域带标签的样本总是会用得到的,文中用这些样本来训练G,F1,F2。


分类损失


softmax 交叉熵损失函数

训练过程


文中把训练过程划分成3个阶段:    即Step A,B,C

Step A是上面提到的用原域带标签的样本训练G,F1,F2。

Step B,C如下图:


训练过程

特征生成器G和分类器F1,F2的对抗具体体现在对discrepancy的不同操作上,F1和F2努力让discrepancy最大,而G则努力让discrepancy最小。

Step B损失函数具体表示如下:作者说不加分类损失效果很差,于是加上了分类损失


最大化discrepancy


Step C损失函数具体表示如下

最小化discrepancy
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容