Unsupervised Domain Adaptation by Backpropagation(2015)学习笔记
tip
是第一篇将对抗性训练的思想使用到域适应中的论文。
abstract
现如今,深度体系结构的良好性能大多得益于大量已标注样本下的训练。在某项任务缺乏已标记样本的情况下,如果可以获得特征相似但来自不同领域的已标记样本(例如合成图像),则领域域适应便成为一种有吸引力的选择。这里,作者提供了一种适用于深度框架下的新方法,该方法由源域中的已标注样本以及目标域中的未标注样本来进行训练(其中目标域中)。
在训练进行的过程中,这种方法促进了“深层”特征的出现:
(1)区分源域上的主要学习任务
(2)域之间的不变性( ?)
这种域适应行为几乎可以在任何前馈模型
中通过增加几个标准层和一个简单的梯度反转层
来实现,可以使用标准反向传播来训练最终的增强后的架构。
1.introduction
深度前馈网络架构为现在很多在机器学习任务和应用带来了先进的技术,可是这些提升只有在大量已标注的样本供给训练的情况下从才能实现。虽然对于缺乏已标注样本的问题,仍然有可能获得足够大的样本集来训练大规模的深度模型,但是这样获得的样本会与测试样本集中的样本分布不同,从而造成域偏移问题。例如合成图片或者半合成图片,虽然这些图片易于获取并且样本已标注,但是它们与真实的样本还是有着不小的差异。
域域适应就是在源域与目标域之间存在域偏移的情况下学习拥有良好辨别能力的分类器或者是其它鉴别器。在“浅度学习”(数据样本的特征表示已经给出)中,很多域适应方法已经取得显著成效。这些方法建立源域到目标域的映射,这样一来,在源域学习到的分类器结合了之前建立的映射后就可以应用到目标域的特定任务中
。域适应方法的成效主要取决于该方法利用完全未标注的目标域样本集(无监督域适应)或者在目标域部分已标注的样本集(半监督域适应)学习两个域中间映射的能力
。本文主要讲重点放在更具挑战性的无监督域适应问题上。
一般的域适应方法对比使用固定的特征表示,但是本方法不同,该方法致力于在训练过程中结合域适应
与深度特征学习
于一体。该方法的目标是将域适应嵌入学习特征表示
的过程中,使得最终的分类决策是基于对域变化的区别性与不变性特征而做出的。这样,所获得的前馈网络可以适用于目标域,而不受域偏移的阻碍。
于是我们的方法在学习特征时主要将(1)分辨性与(2)域不变性结合,而该方法通过联合优化潜在的特征以及随这些特征进行操作的两个鉴别分类器实现的。这两个分类器分别是(i)用来在训练过程与测试过程中预测类别的标签的标签分类器label classifier和(ii)在训练期间区分源域与目标域的域分类器domain classifier。
该方法的三个训练步骤
分别为:(i)优化两个分类器的参数来最小化其在训练集上的误差;(ii)优化底层深层特征映射的参数来最小化标签分类器的损失(iii)优化底层深层特征映射的参数来最大化域分类器的损失。
上述的三个训练步骤都可以嵌入到一个合适的深度前馈网络中
(如下图fiture1所示),并可以使用基于随机梯度下降或其修改的标准反向传播算法
进行训练。
作者提出的模型架构中包括一个特征提取器(图中的绿色部分)以及一个深度标签预测器(图中蓝色部分),二者结合构成了一个标准的前馈架构。
而该模型为了解决无监督域适应问题还添加了一个域分类器,并将一个梯度反转层插入到在特征提取器与域分类器之间。该梯度反转层在反向传播的训练期间,将梯度乘以某个负常数。而模型在正常的前向训标准练中,最小化标签预测损失(对于源域的样本)和域分类损失(对于所有样本)。梯度反转确保两个域上的特征分布是相似的(对于域分类器来说是尽可能不可区分的),从而产生域不变的特征。
本文提出的方法是通用的,因为它可以向任何通过反向传播训练的前馈体系结构添加域域适应模块。该方法的体系结构中唯一的非标准组件是一个相当简单的梯度反转层
,它在前向传播期间保持输入不变,并在反向传播期间通过乘以负标量来反转梯度。
之后文章详细介绍了在深度体系结构中提出的域域适应方法,并给出了在传统深度学习图像数据集(MNIST、SVHN、OFFICE)上的结果。
2.related work
近年来,许多域适应方法相继提出,其中很多方法通过匹配源域和目标域中的特征分布
来执行无监督的域域适应。有些方法将源域的样本重新加权(Borgwardt et al., 2006; Huang et al., 2006; Gong et al., 2013),有些则利用一个显示的特征空间的变换来将源域映射到目标域((Pan et al., 2011; Gopalan et al., 2011; Baktashmotlagh et al., 2013)。
当一些方法进行两个域分布的匹配时,重点是要使用高效的策略来衡量源域与目标域分布的差异。其中一个流行的选择是在再生核希尔伯特空间中匹配分布均值,在每个分布中匹配主轴(?)
作者的方法也是通过匹配特征空间的分布
来执行无监督下的域适应,然而分布的匹配是通过修改特征本身的表示
实现的,而不是通过重新加权或几何变换来实现。此外,作者还使用一个辨别分类器,基于分布的可分性来测量分布之间的差异。(?)
还有一些方法通过训练分布的逐渐变化来执行从源域到目标域的逐渐过渡(Gopalan et al., 2011; Gong et al., 2012)。在这些方法中,(S. Chopra & Gopalan,2013)通过深度自动编码器序列的分层训练以“深度”的方式做到这一点,同时用目标域样本逐渐替换源域样本。其中方法中的分类器在单独的步骤中使用由自动编码器学习的特征表示来学习训练。
而作者的方法集特征学习、领域域适应和分类器学习于一体,在一个统一的体系结构中,执行单一的反向传播算法。
3.Deep Domain Adaptation
3.1The model
作者使用(x in X)来表示输入的样本,其中(X)表示输入空间;对应样本的标签使用(yin Y)表示,(Y)表示标签空间。作者假设(Y)是一个有限集(Y={1,2,...,L}),并假设在(Xotimes Y)中存在源域的样本分布(S(x,y)) 与目标域的样本分布(T(x,y)),两个分布都未知且不同。
作者的最终目标就是为目标域分布中的样本x分配标签y。在训练中,我们可以接触到大量边缘分布不同((S(x) e T(x)))的源域样本与目标域样本,其中我们使用一个二元变量(d_i)来表示该样本来自源域的分布((d_i=0))还是来自于目标域的分布((d_i=1))。
作者将从源域到目标域的映射过程分为三部分
:
1.首先假设样本x首先被一个特征提取器(G_f)映射到一个D维的特征向量(mathbf{f}in mathbb{R}^D)中。这个映射过程还包括几个前馈层,我们将该映射中所有层的参数向量表示为( heta_f),即(mathbf{f}=G_f(x; heta_f)).
2.特征向量(mathbf{f})通过标签预测器(G_y)来预测样本的标签y,我们将这个映射中的参数设为( heta_y).
3.最后,通过拥有参数( heta_d)的域分类器(G_d),相同的特征向量(mathbf{f})被映射得到域标签d。
在训练阶段,我们的目标是最小化训练集源域部分的标签预测损失,于是我们以此优化特征提取器和标签预测器的参数,以便最小化源域样本的损失。这确保了特征向量(mathbf{f})的区分性以及特征提取器和标签预测器的组合在源域上的整体良好的预测性能。
同时,我们还要使得特征向量(mathbf{f})拥有域不变性,即我们想让分布(S(mathbf{f})={G_f(x; heta_f)|xsim S(x)}) 与分布(T(mathbf{f})={G_f(x; heta_f)|xsim T(x)}) 相似。然而,测量分布(S(mathbf{f}))和(T(mathbf{f}))的不相似性并不简单,因为(mathbf{f})是高维的,并且分布本身随着学习的进展而不断变化。一种估计差异的方法是查看域分类器(G_d)的损失,假设域分类器已经可以通过参数( heta_d)以最佳方式区分两个特征分布。 于是,在训练时,为了获得域不变特征,我们寻找能够最大化域分类器损失的特征映射参数( heta_f)(通过使两个特征分布尽可能相似),同时寻找最小化域分类器损失的域分类器的参数( heta_d)。此外,我们还要最小化标签分类器的损失。
通过公式描述即为:
其中(L_y(.,.))表示标签预测的损失;(L_d(.,.))表示域分类器的损失;而(L^i_y)与(L^i_d)则分别表示第i个样本对应标签预测的损失以及域分类器的损失。我们寻找参数(hat{ heta}_f,hat{ heta}_y,hat{ heta}_d)来表示公式(1)的鞍点:
在鞍点的时候,域分类器中的参数(hat{ heta}_d)最小化了域分类的损失;标签分类器中的参数(hat{ heta}_y)最小化了标签预测的损失;特征映射的参数(hat{ heta}_f)不但通过最小化标签分类的损失来实现特征的可分性,还通过最大化域分类的损失来实现域特征不变性。参数(lambda)来平衡学习期间两个目标的协调性。
下面,我们证明了标准随机梯度解算器(SGD)可以适用于鞍点(2)-(3)的搜索。
3.2 Optimization with backpropagation
鞍点可以通过以下随机更新来寻找:
其中(mu)表示学习率。
更新(4)-(6)非常类似于前馈深度模型的随机梯度下降(SGD)更新,前馈深度模型包括馈送到标签预测器和域分类器的特征提取器,不同之处在于(lambda)参数的使用。如果方法中不使用(lambda)参数,随机梯度下降就会将使得跨域特征变得不同来最小化域分类损失。
上述更新(4)-(6)通过使用一个特别的梯度反转层(GRL)就是变为SGC的某种形式。在梯度反转层中,除了(lambda)参数外没有别的参数与之相关联,而(lambda)参数在反向传播不更新。在前向传播过程中,GRL起到了身份转换的作用。在反向传播过程中,GRL从后续层获取梯度,将其乘以λ,并将其传递到前一层。
从数学上讲,我们可以将梯度反转层视为由两个(不相容的)方程定义的“伪函数”(R_lambda(x)),这两个方程描述了它的前向和后向传播行为:
其中(mathbf{I})是一个单位矩阵。这样我们就可以定义(( heta_f, heta_y, heta_d))通过我们方法中的随机梯度下降进行优化后的伪函数:
运行更新(4)-(6)可以对(9)进行SGD,并导致同时出现域不变性和特征的可分性。
在学习之后,我们可以使用标签预测函数(y(x)=G_y(G_f(x; heta_f); heta_y))来预测目标域样本的标签。
4.experiments
baselines
1.只使用源域的样本进行训练,不考虑目标域的样本。(source-only model)
2.只使用目标域样本进行训练,并将目标域样本的标签加入训练,这样的结果作为模型性能衡量的上限。(train-ontarget model)
3.使用基于子空间对齐的无监督域适应方法(SA)。该方法易于在新的数据集上设置和测试,但是在与其他“浅层”数据挖掘方法的实验比较中也表现得非常好。为了在我们的设置中应用服务协议,我们训练一个source-only model,然后将标签预测器中最后一个隐藏层的激活视为特征,并学习源和目标域之间的映射。
由于SA要求在调整特征后训练新的分类器,并且为了将所有比较的设置放在平等基础上,我们使用LSVM对所有四种考虑的方法(包括我们的方法)重新训练标签预测器的最后一层。
CNN architectures
对于特征分类器,作者使用两个或三个卷积层来组成特征提取器。对于域分类器,作者使用三个全连接层((x → 1024 → 1024 → 2),而针对MNIST数据集,作者使用(x → 100 → 2)来加速训练。
对于损失函数,(L_y)设置为逻辑回归损失,(L_d)设置为二元交叉熵损失。
CNN training procedure
该模型在128个大小的批次上进行训练。图像通过均值减法进行预处理。每个批次的一半由来自源域样本填充,其余由目标域组成。为了在训练过程的早期阶段抑制来自域分类器的噪声信号,而不是固定域适应因子λ,我们使用下面的方法将其从0逐渐改变为1
其中(gamma)的值被设置为10
Visualizations
作者使用t-SNE估计方法来进行网络中不同点的特征分布,并将不同的颜色嵌入到领域中。就目标域样本的分类精度而言,适应的成功率与这种可视化中的域分布之间的重叠率之间有很强的对应关系。
其中,蓝色的点表示源域的样本,红色的点表示目标域的样本。(a)图表示的是没有任何适应手段的结果,而(b)图表示的是经过作者的适应方法后的结果。由此可见,经过作者的适应方法,两个域的特征分布更加接近。
Choosing meta-parameters
通常情况下,一个好的域适应方法都会提供高效的超参数的选择方法((lambda)、学习率、动量等)。在作者的方法中,可以通过观察源域上的测试误差和域分类器误差
来评估整个系统的性能(以及改变超参数的效果)。总的来说,我们观察到域适应的成功率和上述这些误差之间有很好的对应关系(当源域测试误差低而域分类器误差高时,域适应更成功
)。此外,域适配器所连接的层可以通过计算方法之间的差异来选择。
4.1 results
MNIST → MNIST-M.
为了获得MNIST-M,作者将原始集合中的数字与从BSDS500的彩色照片中随机提取的小片相混合。输出样本是通过从照片中获取一个小片,然后在对应于数字的位置反转其像素而产生的。对于人眼来说,二者的分辨还是比较容易的,但是对于CNN模型来说,这个数据集与mnist有很大不同,因为背景和笔画不再是恒定的。
Synthetic numbers → SVHN.
SVHN: Street-View House Number dataset,拥有500000张图片。作者使用SVHN数据集作为目标域样本,而使用子集制作的合成图片作为源域样本。作者通过改变文本(包括不同的一位数、二位数和三位数)、定位、方向、背景和笔画颜色以及模糊程度,由我们自己从Windows字体生成。合成数据集与SVHN数据集的差异是可以由人工对合成数据集进行手动调整的,但是这两个数据集仍然相当大的不同,最大的区别是在SVHN样本图像的背景中的结构是混乱的。
MNIST ↔ SVHN
在该部分实验中,作者进一步加大了源域与目标域的域间差异。即使不使用域适应方法,关于在SVHN直接进行的训练也是具有挑战性的,分类错误在前150个时期保持很高。因此,为了避免陷入局部极小值,这里不使用学习率退火。显然,两个方向(MNIST → SVHN和SVHN → MNIST)并的难度不相同。
对于SVHN → MNIST场景,由于SVHN数据集更加多样化,在SVHN上训练的模型会更加通用,在MNIST数据集上的表现也会更好。当分别使用分类器在MNIST数据集以及SVHN数据集进行单独的训练的时候,我们发现SVHN训练后的网络中的特征会更加复杂,这也就解释了为什么作者的方法在SVHN → MNIST场景中成功地提高了性能,但在相反的方向上却没有。也就是说,该方法在MNIST → SVHN上的实验是失败的。
Synthetic Signs → GTSRB.
该部分的设定与之前的SYN NUMBERS → SVHN实验大致相似,只不过由于该部分的数据集中的类别更多,所以特征的分布也就更复杂。
5.Discussion
作者提出了一种深度前馈体系结构的无监督领域自适应的新方法,它允许基于源域中的大量已标注样本和目标域中的大量未标注样本进行大规模训练。与许多以前的浅层和深层数据采集技术类似,这种域适应是通过调整两个域中的特征分布来实现的。然而,与以前的方法不同,对齐是通过标准的反向传播训练来完成的。因此,该方法是相当可扩展的,并且可以使用任何深度学习包来实现。