正如《domian adaptation 之 domain adversarial learning (一)》中介绍的,设计一个 domain adversarial learning 的新方法被简化为以下三个问题:
- 是否选择基于生成或者辨别的网络;
- 是否共享网络权重;
- 选择哪一个对抗学习目标。
为了拉近两个域之间的距离,可以共享网络参数也可以选择不共享网络参数;但是当特征生成器生成的源域特征固定,并使用网络提取的目标域特征模仿提取的源域特征时,需要固定源域特征生成器的参数并调整目标域特征生成器的参数。
本文介绍的论文《Adversarial Discriminative Domain Adaptation》就选择了不共享网络参数的方法。如下图,对网络的训练和使用分为三部分:Pre-training、Adversarial Adaptation、Testing。首先使用分类损失 class label 对源域特征生成器 Source CNN 进行训练;然后通过对抗性适应学习训练辨别器 Discriminator 和目标域特征生成器 Target CNN;在测试阶段,仅使用 Target CNN进行测试。Target CNN与Source CNN之间的网络参数是不共享的,但是目标域是没有标注的,如果没有合适的网络初始化参数,Targer CNN 将很快学习到一个退化的解,因此使用 Source CNN 的参数作为 Target CNN 的初始化参数。
接下来要选择合适的对抗生成损失函数,也就是对抗学习目标。对于辨别器网络 D D D ,这里选择交叉熵损失,其辨别意图在于区分特征生成器 提取的特征映射(features mapping, M)是源域映射 M s M_s Ms,还是目标域映射 M t M_t Mt。辨别器损失函数为 L a d v D ( X s , X t , M s , M t ) = − E x s ∈ X s [ log D ( M s ( x s ) ) ] − E x t ∈ X t [ 1 − D ( M t ( x t ) ) ] L_{adv_D}(X_s, X_t, M_s, M_t) = - E_{x_s \in X_s}[\log D(M_s(x_s))]-E_{x_t\in X_t}[1-D(M_t(x_t))] LadvD(Xs,Xt,Ms,Mt)=−Ex