CVPR2019: Taking A Closer Look at Domain Shift: Category-level Adversaries for Semantics Consistent Domain Adaptation##
引言
PS. 来自于悉尼科技大学杨易老师团队一篇paper,CVPR2019的oral。主要是对domain adaptation带来语义的约束(Category-level Adversaries )。adversarial learning在应对domain adaptation时,当target domain是无label的时候,是在特征空间使source domain与target domain的样本分布逼近,即使得 P ( F s ) ≈ P ( F t ) P(F_s)\approx P(F_t) P(Fs)≈P(Ft),然而并不能使得source domain与target domain的联合概率分布逼近,即 P ( F s , Y s ) ≠ P ( F t , Y t ) P(F_s,Y_s)\neq P(F_t,Y_t) P(Fs,Ys)̸=P(Ft,Yt)。这样就导致了负迁移的问题,本文中指的是:有些类别已经是很好的对齐的了,但是adversarial learning仍然会让其和其它的类别对齐,如此影响domain adaptation的效果。
PS. 这样我们可以发现,如果我们有target domain的label,那可以很轻松的加入语义的约束,从而应对上述的问题。但是在unsupervised的情况下怎么做呢?
方法
我们希望:
- 对于已经很好的对齐的类别的样本,减少adversarial loss的权重,从而减少adversarial learning带来的副作用;
- 对于还没有很好的对齐的类别的样本,增大adversarial loss的权重。
于是问题的关键变成了:这个权重如何设置?进一步的,如何衡量是否已经对齐?带着这两个问题我们来看模型。
-
首先source image和target image经过一个共同的feature extractor,得到特征;
-
源域和目标域的特征都经过两个分类器 C 1 C_1 C1和 C 2 C_2 C2,其中对于源域,两个输出通过组合(就是线性集成),得到预测的结果Segmentation result。源域是有label的,所以有一个有监督的损失,其中C表示语义类别:
-
对于目标域,两个输出通过组合得到预测结果输入到Discriminator,同时也通过距离度量 M M M,得到权重map(local alignment score map),从而赋予Discriminator的adversarial loss权重:
从上式中我们看出,是通过距离度量 M M M来去weight对抗损失,根据最开始我们说到的“希望”,这里就需要:
- p ( 1 ) p^{(1)} p(1)与 p ( 2 ) p^{(2)} p(2)相近时表明已经对齐的不错了,权重 M M M较小;
- p ( 1 ) p^{(1)} p(1)与 p ( 2 ) p^{(2)} p(2)相远时表明已经对齐的还不够,权重 M M M较大;
作者使用两个分类器
C
1
C_1
C1和
C
2
C_2
C2来得到
p
(
1
)
p^{(1)}
p(1)与
p
(
2
)
p^{(2)}
p(2)。
C
1
C_1
C1和
C
2
C_2
C2都具备分类的能力,且保证是两个不同的分类器,
C
1
C_1
C1和
C
2
C_2
C2对同一target样本,识别结果一致(其实还是类似于集成中投票的思想),那就可以认为识别的比较好,也就是对齐的不错。为了保证
C
1
C_1
C1和
C
2
C_2
C2是不同的分类器,引入Co-training:
这个还是很好理解的,如果不做这个约束的话,训练得到的 C 1 C_1 C1和 C 2 C_2 C2很可能参数就很类似,可以看作同一个分类器,那上面的距离度量就总会得到较小值,从而失效。
总的优化目标:
思考
这篇文章设计上比较巧妙,在adversarial loss上引入权重,通过Co-training利用集成学习的思想去构造相似性度量,从而得到权重的设置。同时利用Co-training学到两个分类器,对于最终的结果预测也可以结合两个分类器的能力。