摘要
对抗性学习方法是一种很有前途的训练鲁棒深度网络的方法,可以在不同的领域生成复杂的样本。尽管存在域移位或数据集偏差,它们也可以提高识别:最近引入了几种对抗无监督域适应的方法,这些方法减少了训练域和测试域分布之间的差异,从而提高了泛化性能。以前的生成式方法在产生引人入胜的可视化效果方面表现出色,但在区分性任务上并不理想,并且可能受限于较小的偏移范围。先验判别方法可以处理更大的域位移,但在模型上施加了绑定权重,并且没有利用基于gan的损失。我们首先概述了对抗性适应的一个新的广义框架,其中包含了最近最先进的方法作为特殊情况,我们使用这种广义观点来更好地联系先前的方法。我们提出了我们的一般框架的一个以前未探索的实例,它结合了判别建模,非联合权重共享和GAN损失,我们称之为对抗性判别域适应(ADDA)。我们证明了ADDA比竞争的领域对抗方法更有效但更简单,并且通过在标准的跨领域数字分类任务和新的更困难的跨模态对象分类任务上超越最先进的无监督自适应结果,证明了我们的方法的前景。
Introduction
深度卷积网络,当在大规模数据集上训练时,可以学习在各种任务和视觉领域中普遍有用的表示[1,2]。然而,由于一种被称为数据集偏差或域移位的现象[3],在一个大型数据集上使用这些表示训练的识别模型不能很好地推广到新的数据集和任务[4,1]。典型的解决方案是在特定于任务的数据集上进一步微调这些网络——然而,要获得足够的标记数据来适当地微调深度多层网络使用的大量参数,通常是非常困难和昂贵的。领域适应方法试图减轻领域转移的有害影响。最新的领域适应方法学习将两个域映射到公共特征空间的深度神经转换。这通常是通过优化表示来最小化域移的一些度量来实现的,例如最大平均差异[5,6]或相关距离[7,8]。另一种方法是从源表示重构目标域[9]。
对抗性适应方法已经成为这类方法的一个日益流行的化身,它寻求通过一个相对于域鉴别器的对抗性目标来最小化近似域差异距离。这些方法与生成对抗学习(generative adversarial learning)密切相关[10],它使两个网络(生成器和鉴别器)相互对抗。生成器被训练成以一种混淆鉴别器的方式生成图像,而鉴别器反过来又试图将它们与真实图像示例区分开来。在领域自适应中,这一原则被用于确保网络无法区分其训练和测试领域样例的分布[11,12,13]。然而,每个算法都会做出不同的设计选择,例如是否使用生成器,使用哪种损失函数,或者是否跨域共享权重。例如,[11,12]共享权重,学习源图像和目标图像到共享特征空间的对称映射,而[13]解耦一些层,从而学习部分不对称映射。
在这项工作中,我们提出了一种新的对抗性域适应统一框架,使我们能够有效地检查现有方法之间的不同变异因素,并清楚地看到它们之间的相似性。我们的框架统一了设计选择,如权重分配、基本模型和对抗损失,并包含了以前的工作,同时也促进了改进现有实例的新实例的设计。
特别是,我们观察到输入图像分布的生成建模是不必要的,因为最终的任务是学习一个判别表示。另一方面,非对称映射比对称映射能更好地模拟底层特征的差异。因此,我们提出了一种以前未被探索过的无监督对抗性适应方法,对抗性判别域适应(ADDA),如图1所示。ADDA首先使用源域中的标签学习判别表示,然后使用通过域对抗损失学习的非对称映射将目标数据映射到相同空间的单独编码。我们的方法简单但功能强大,在MNIST、USPS和SVHN数字数据集上实现了最先进的视觉适应结果。我们还测试了它的潜力,通过将对象分类器从RGB彩色图像转移到深度观察,在不需要实例约束的情况下,弥合更困难的跨模态转换之间的差距。
Generalized adversarial adaptation 广义对抗性适应
我们提出了对抗性无监督自适应方法的一般框架。在无监督自适应中,我们假设从源域分布
p
s
(
x
;
y
)
p_s(x;y)
ps(x;y)访问源图像
X
s
X_s
Xs和标签
Y
s
Y_s
Ys,以及从目标分布
p
t
(
x
;
y
)
p_t(x;y)
pt(x;y)获得目标图
X
t
X_t
Xt其中没有标签观察值。我们的目标是学习一个目标表示
M
t
M_t
Mt和分类器
C
t
C_t
Ct,尽管缺乏领域注释,但在测试时可以正确地将目标图像分类为
K
K
K个类别之一。由于在目标上的直接监督学习是不可能的,所以领域适应学习一个源表示映射,
M
s
M_s
Ms,以及一个源分类器,
C
s
C_s
Cs,然后学习调整该模型以用于目标领域。
在对抗性自适应方法中,主要目标是正则化源和目标映射
M
s
M_s
Ms和
M
t
M_t
Mt的学习,从而最小化经验源和目标映射分布
M
s
(
X
s
)
M_s(X_s)
Ms(Xs)和
M
t
(
X
t
)
M_t(X_t)
Mt(Xt)之间的距离。如果是这种情况,那么源分类模型
C
s
C_s
Cs可以直接应用于目标表示,不需要学习单独的目标分类器,而是设置
C
=
C
s
=
C
t
C = C_s = C_t
C=Cs=Ct。然后使用下面的标准监督损失来训练源分类模型:
min
M
s
,
C
L
c
l
s
(
X
s
,
Y
t
)
=
E
(
x
s
,
y
s
)
∼
(
X
s
,
Y
t
)
−
∑
k
=
1
K
1
[
k
=
y
s
]
log
C
(
M
s
(
x
s
)
)
(
1
)
\begin{aligned}\min_{M_{s},C}\mathcal{L}_{\mathrm{cls}}(\mathbf{X}_{s},Y_{t})&=\\\mathbb{E}_{(\mathbf{x}_{s},y_{s})\sim(\mathbf{X}_{s},Y_{t})}&-\sum_{k=1}^{K}\mathbb{1}_{[k=y_{s}]}\log C(M_{s}(\mathbf{x}_{s}))\quad(1)\end{aligned}
Ms,CminLcls(Xs,Yt)E(xs,ys)∼(Xs,Yt)=−k=1∑K1[k=ys]logC(Ms(xs))(1)我们现在可以描述对抗性适应方法的整体框架观点。我们注意到所有的方法都是通过两个函数之间的交替最小化来最小化源和目标的表示距离。首先是域鉴别器
D
D
D,它对数据点是从源域还是从目标域绘制进行分类。因此,
D
D
D是根据标准的监督损失
L
a
d
v
D
(
X
s
,
X
t
,
M
s
,
M
t
)
L_{adv_D}(X_s,X_t,M_s,M_t)
LadvD(Xs,Xt,Ms,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
)
)
]
(2)
−
E
x
t
∼
X
t
[
log
(
1
−
D
(
M
t
(
x
t
)
)
)
]
\begin{aligned}\mathcal{L}_{\mathrm{adv}_{D}}(\mathbf{X}_{s},\mathbf{X}_{t},M_{s},M_{t})&=\\&-\mathbb{E}_{\mathbf{x}_{s}\sim\mathbf{X}_{s}}[\log D(M_{s}(\mathbf{x}_{s}))]&\text{(2)}\\&-\mathbb{E}_{\mathbf{x}_{t}\sim\mathbf{X}_{t}}[\log(1-D(M_{t}(\mathbf{x}_{t})))]\end{aligned}
LadvD(Xs,Xt,Ms,Mt)=−Exs∼Xs[logD(Ms(xs))]−Ext∼Xt[log(1−D(Mt(xt)))](2)其次,根据约束的对抗目标对源和目标映射进行优化,其具体实例可能因方法而异。因此,我们可以推导出域对抗技术的一般公式如下:
min
D
L
a
d
v
D
(
X
s
,
X
t
,
M
s
,
M
t
)
min
M
s
,
M
t
L
a
d
v
M
(
X
s
,
X
t
,
D
)
(3)
s
.
t
.
ψ
(
M
s
,
M
t
)
\begin{aligned}\min_{D}&\mathcal{L}_{\mathrm{adv}_{D}}(\mathbf{X}_{s},\mathbf{X}_{t},M_{s},M_{t})\\\min_{M_{s},M_{t}}&\mathcal{L}_{\mathrm{adv}_{M}}(\mathbf{X}_{s},\mathbf{X}_{t},D)&\text{(3)}\\\mathrm{s.t.}&\psi(M_{s},M_{t})\end{aligned}
DminMs,Mtmins.t.LadvD(Xs,Xt,Ms,Mt)LadvM(Xs,Xt,D)ψ(Ms,Mt)(3)在接下来的部分中,我们将通过在我们的框架中定位最近的领域对抗方法来演示我们框架的价值。我们描述了潜在的映射结构,映射优化约束
(
ψ
(
M
s
;
M
t
)
)
(\psi(Ms;Mt))
(ψ(Ms;Mt))选择,最后选择对抗映射损失
L
a
d
v
M
L_{adv_M}
LadvM。
Source and target mappings 源和目标映射
在单独学习源映射Ms的情况下,很明显,通过使用已知标签Ys进行潜在空间判别损失的监督训练可以获得最终源识别的最佳表示。然而,考虑到我们的目标域是未标记的,如何最好地减小源映射和目标映射之间的距离仍然是一个悬而未决的问题。因此,要做的第一个选择是在这些映射的特定参数化中。
由于无监督域自适应一般考虑分类等目标判别任务,以往的自适应方法一般依赖于域间自适应判别模型[12,16]。使用判别基模型,输入图像被映射到特征空间,这对判别任务(如图像分类)很有用。例如,在数字分类的情况下,这可能是标准的LeNet模型。然而,Liu和Tuzel使用两个生成式对抗网络在无监督mist - usps上取得了最先进的结果[13]。这些生成模型通常使用随机噪声作为输入在图像空间中生成样本,然后使用对抗性鉴别器的中间特征作为训练特定任务分类器的特征。
一旦确定了源的映射参数化,我们必须决定如何对目标映射进行参数化。一般来说,目标映射在特定的功能层(架构)方面几乎总是与源匹配,但不同的方法提出了不同的正则化技术。所有方法都用源初始化目标映射参数,但不同方法在源和目标映射之间选择不同的约束,
ψ
(
M
s
,
M
t
)
\psi(M_s,M_t)
ψ(Ms,Mt)。目标是确保目标映射的设置,以便在各自的映射下最小化源域和目标域之间的距离,同时至关重要的是还要保持一个类别区分的目标映射。
考虑一个分层表示,其中每一层参数表示为
M
s
l
M _s^l
Msl或
M
t
l
M_ t^l
Mtl,对于给定的等效层集,
{
l
1
,
.
.
.
,
l
n
}
\{l_1,...,l_n\}
{l1,...,ln}。那么,文献中探索的约束空间可以通过分层的等式约束描述为:
ψ
(
M
s
,
M
t
)
≜
{
ψ
ℓ
i
(
M
s
ℓ
i
,
M
t
ℓ
i
)
}
i
∈
{
1...
n
}
(
4
)
\psi(M_s,M_t)\triangleq\{\psi_{\ell_i}(M_s^{\ell_i},M_t^{\ell_i})\}_{i\in\{1...n\}}\quad(4)
ψ(Ms,Mt)≜{ψℓi(Msℓi,Mtℓi)}i∈{1...n}(4)其中每个单独的层可以独立约束。一种非常常见的约束形式是源和目标分层相等:
ψ
ℓ
i
(
M
s
ℓ
i
,
M
t
ℓ
i
)
=
(
M
s
ℓ
i
=
M
t
ℓ
i
)
.
(
5
)
\psi_{\ell_i}(M_s^{\ell_i},M_t^{\ell_i})=(M_s^{\ell_i}=M_t^{\ell_i}).\quad(5)
ψℓi(Msℓi,Mtℓi)=(Msℓi=Mtℓi).(5)让层不受约束也是很常见的。这些等式约束可以很容易地通过权值共享在卷积网络框架中施加。
对于许多先前的对抗性自适应方法[16,12],所有层都是约束的,从而强制源和目标映射的精确一致性。学习对称转换可以减少模型中的参数数量,并确保用于目标的映射至少在应用于源域时是可判别的。然而,这可能会使优化条件不佳,因为相同的网络必须处理来自两个不同领域的图像。
另一种方法是学习不对称转换,仅约束层的子集,从而强制部分对齐。Rozantsev等[17]表明,在监督和无监督环境下,部分共享权重都能导致有效的适应。因此,最近的一些方法倾向于在两个域之间解除权重(全部或部分),允许模型单独学习每个域的参数。
Adversarial losses 对抗损失
一旦我们决定了
M
t
M_t
Mt的参数化,我们使用对抗损失来学习实际的映射。对抗性损失函数有各种不同的可能选择,每一种都有自己独特的用例。所有对抗性损失都使用标准分类损失
L
a
d
v
D
L_{adv_D}
LadvD来训练对抗性鉴别器,如公式2所示。然而,它们在用于训练映射
L
a
d
v
M
L_{adv_M}
LadvM的损失上有所不同。
[16]的梯度反转层对映射进行优化,直接使鉴别器损失最大化:
L
a
d
v
M
=
−
L
a
d
v
D
.
(
6
)
\mathcal{L}_{\mathrm{adv}_M}=-\mathcal{L}_{\mathrm{adv}_D}.\quad(6)
LadvM=−LadvD.(6)
这种优化对应于生成对抗网络的真正极大极小目标。然而这个目标可能有问题,由于在训练的早期,鉴别器收敛很快,导致梯度消失。
在训练GANs时,通常不是直接使用极大极小损失,而是使用带倒标签的标准损失函数来训练生成器[10]。这将优化分成两个独立的目标,一个用于生成器,一个用于鉴别器,其中
L
a
d
v
D
L_{adv_D}
LadvD保持不变,但
L
a
d
v
M
L_{adv_M}
LadvM变为:
L
a
d
v
M
(
X
s
,
X
t
,
D
)
=
−
E
x
t
∼
X
t
[
log
D
(
M
t
(
x
t
)
)
]
.
(
7
)
\mathcal{L}_{\mathrm{adv}_M}(\mathbf{X}_s,\mathbf{X}_t,D)=-\mathbb{E}_{\mathbf{x}_t\sim\mathbf{X}_t}[\log D(M_t(\mathbf{x}_t))].\quad(7)
LadvM(Xs,Xt,D)=−Ext∼Xt[logD(Mt(xt))].(7)该目标具有与最大最小损失相同的不动点属性,但为目标映射提供了更强的梯度。在本文的其余部分,我们将这种修正的损失函数称为“GAN损失函数”。
注意,在这个设置中,我们对源和目标使用独立映射,并且只对抗性地学习Mt。这模仿了GAN设置,其中真实图像分布保持固定,并且学习生成分布以匹配它。
在生成器试图模拟另一个不变分布的情况下,GAN损失函数是标准选择。然而,在两个分布都在变化的情况下,这个目标将导致振荡——当映射收敛到最优时,鉴别器可以简单地翻转其预测的符号作为响应。Tzeng等人提出了域混淆目标,在该目标下,映射使用针对均匀分布的交叉熵损失函数进行训练[12]:
L
a
d
v
M
(
X
s
,
X
t
,
D
)
=
−
∑
d
∈
{
s
,
t
}
E
x
d
∼
X
d
[
1
2
log
D
(
M
d
(
x
d
)
)
]
(8)
+
1
2
log
(
1
−
D
(
M
d
(
x
d
)
)
)
]
.
\begin{aligned}\mathcal{L}_{\mathrm{adv}_{M}}(\mathbf{X}_{s},\mathbf{X}_{t},D)&=\\&-\sum_{d\in\{s,t\}}\mathbb{E}_{\mathbf{x}_{d}\sim\mathbf{X}_{d}}\left[\frac{1}{2}\log D(M_{d}(\mathbf{x}_{d}))\right]&\text{(8)}\\&+\frac{1}{2}\log(1-D(M_{d}(\mathbf{x}_{d})))\biggr].\end{aligned}
LadvM(Xs,Xt,D)=−d∈{s,t}∑Exd∼Xd[21logD(Md(xd))]+21log(1−D(Md(xd)))].(8)这种损失确保了对抗性鉴别器以相同的方式查看两个域。
Adversarial discriminative domain adaptation 对抗性判别域适应
我们的领域对抗方法的广义框架的好处是,它直接促进了新的自适应方法的发展。实际上,设计一种新方法现在已经简化为做出三个设计选择的空间:是使用生成还是判别基础模型,是捆绑还是解开权重,以及使用哪个对抗性学习目标。根据这种观点,我们可以根据我们的选择总结我们的方法,对抗性判别域适应(ADDA),以及它与之前工作的联系(见表1“ADDA”)。具体来说,我们使用一个判别基础模型,未共享权值,和标准GAN损失。我们在图3中演示了整个顺序训练过程。
首先,我们选择了一个判别基础模型,因为我们假设生成令人信服的域内样本所需的许多参数与判别适应任务无关。由于这个原因,大多数先前的对抗性自适应方法直接在判别空间中进行优化。一个反例是cogan。然而,这种方法只在源域和目标域非常相似的情况下表现出优势,比如MNIST和USPS,在我们的实验中,我们很难让它收敛到更大的分布变化。
接下来,我们选择通过解除权重来允许独立的源和目标映射。这是一种更灵活的学习范例,因为它允许学习更多特定领域的特征提取。然而,请注意目标域没有标签访问,因此,如果我们不注意适当的初始化和训练过程,如果没有权值共享,目标模型可能会很快学习到退化的解决方案。因此,我们使用预训练的源模型作为目标表示空间的初始化,并在对抗训练期间固定源模型。
在这样做的过程中,我们有效地学习了一种不对称映射,在这种映射中,我们修改目标模型以匹配源分布。这与最初的生成对抗学习设置非常相似,即生成空间会不断更新,直到与固定的真实空间无法区分为止。因此,我们选择上一节中描述的倒标签GAN损耗。
因此,我们提出的方法ADDA对应如下无约束优化:
min
M
s
,
C
L
c
l
s
(
X
s
,
Y
s
)
=
−
E
(
x
s
,
y
s
)
∼
(
X
s
,
Y
s
)
∑
k
=
1
K
1
[
k
=
y
s
]
log
C
(
M
s
(
x
s
)
)
min
D
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
[
log
(
1
−
D
(
M
t
(
x
t
)
)
)
]
min
M
s
,
M
t
L
a
d
v
M
(
X
s
,
X
t
,
D
)
=
−
E
x
t
∼
X
t
[
log
D
(
M
t
(
x
t
)
)
]
.
(9)
\begin{aligned} &\min_{M_{s},C} \mathcal{L}_{\mathrm{cls}}(\mathbf{X}_{s},Y_{s})= -\mathbb{E}_{(\mathbf{x}_s,y_s)\sim(\mathbf{X}_s,Y_s)}\sum_{k=1}^K\mathbb{1}_{[k=y_s]}\log C(M_s(\mathbf{x}_s)) \\ &\operatorname*{min}_{D} \mathcal{L}_{\mathrm{adv}_{D}}(\mathbf{X}_{s},\mathbf{X}_{t},M_{s},M_{t})= -\mathbb{E}_{\mathbf{x}_{s}\sim\mathbf{X}_{s}}[\log D(M_{s}(\mathbf{x}_{s}))] -\mathbb{E}_{\mathbf{x}_t\sim\mathbf{X}_t}[\log(1-D(M_t(\mathbf{x}_t)))] \\ &\min_{M_{s},M_{t}}\mathcal{L}_{\mathrm{adv}_{M}}(\mathbf{X}_{s},\mathbf{X}_{t},D)= - \mathbb{E}_{\mathbf{x}_{t}\sim\mathbf{X}_{t}}[\log D(M_{t}(\mathbf{x}_{t}))]. \text{(9)} \end{aligned}
Ms,CminLcls(Xs,Ys)=−E(xs,ys)∼(Xs,Ys)k=1∑K1[k=ys]logC(Ms(xs))DminLadvD(Xs,Xt,Ms,Mt)=−Exs∼Xs[logD(Ms(xs))]−Ext∼Xt[log(1−D(Mt(xt)))]Ms,MtminLadvM(Xs,Xt,D)=−Ext∼Xt[logD(Mt(xt))].(9)我们选择分阶段优化这个目标。我们首先通过使用标记的源数据
X
s
X_s
Xs和
Y
s
Y_s
Ys进行训练来优化
M
s
M_s
Ms和
C
C
C上的
l
c
l
s
l_{cls}
lcls。因为我们选择在学习
M
t
M_t
Mt时保持
M
s
M_s
Ms不变,因此我们可以优化
L
a
d
v
D
L_{adv_D}
LadvD和
L
a
d
v
M
L_{adv_M}
LadvM,而无需重新访问第一个目标项。图3提供了整个培训过程的总结。
我们注意到,在前一节中提出的统一框架使我们能够比较先前的领域对抗方法,并对不同的变化因素做出明智的决定。通过这个框架,我们能够激发一种新的领域适应方法,ADDA,并为我们的设计决策提供见解。在下一节中,我们将展示无监督适应基准任务的有希望的结果,研究跨数字和跨模式的适应。