会议:ICML 2015
论文题目:Unsupervised Domain Adaptation by Backpropagation
论文地址: http://proceedings.mlr.press/v37/ganin15.pdf
论文代码: GitHub - fungtion/DANN: pytorch implementation of Domain-Adversarial Training of Neural Networks
前言:
这篇文章提出了一种新的无监督域自适应深度架构的方法,可以在源域的大量标记数据和目标域的大量未标记数据上进行训练。该方法促进了“深度”特征的出现,这些特征对源域的主要学习任务具有区分性,并且对域之间的转移具有不变性。所得到的增强架构可以使用标准反向传播进行训练。该方法在一系列图像分类实验中表现非常好,在存在大域转移的情况下实现了自适应效果,并且在Office数据集上优于以前的最新技术。
目录
3. Deep Domain Adaptation(深度域适应)
3.2. Optimization with backpropagation (反向传播优化)
4.1. Results(结果)
Abstract: (摘要)
高性能的深层体系结构是针对大量标记数据进行训练的。在缺少特定任务的标记数据的情况下,域自适应通常提供了一个有吸引力的选项,因为具有类似性质但来自不同域的标记数据(例如合成图像)是可用的。在此,我们提出了一种在深层体系结构中进行域自适应的新方法,该方法可以训练来自源域的大量标记数据和来自目标域的大量未标记数据(不需要标记的target domain数据)。
随着训练的进行,该方法促进了:
(i)对源域上的主要学习任务具有鉴别性的深层特征的出现
(ii)关于域之间的迁移具有不变性
我们证明,这种自适应行为几乎可以在任何前馈模型中实现,通过增加几个标准层和一个简单的新的梯度逆转层。生成的增强体系结构可以使用标准的反向传播进行训练。
总的来说,使用任何深度学习包都可以轻松地实现该方法。该方法在一系列的图像分类实验中取得了良好的效果,在存在较大的域迁移的情况下,取得了较好的自适应效果,在Office数据集上的性能优于以往的先进方法。
1. Introduction (引言)
深度前馈体系结构为各种机器学习任务和应用程序带来了令人印象深刻的最新进展。然而,目前只有在有大量标记的训练数据可用的情况下,性能才会有这些飞跃。同时,对于缺乏标记数据的问题,仍然有可能获得足够大的训练集,以训练大规模的深度模型。但是这些训练集的数据分布与测试时遇到的实际数据发生了变化。一个特别重要的例子是合成的(或半合成的)训练数据,这些数据可能非常丰富,并且被完全标记,但是它们不可避免地具有与真实数据不同的分布(Liebelt & Schmid, 2010; Stark et al., 2010; Vazquez et al. , 2014; Sun & Saenko, 2014)。
在训练分布和测试分布之间存在-迁移-的情况下学习判别分类器或其他预测器被称为域适应(DA)。在浅层学习背景下,已经提出了一些域适应的方法,例如在给定且固定了数据表示/特征的情况下。然后,所提出的方法构建(训练时间)源域和(测试时间)目标域之间的映射,这样,当使用域之间的学习映射组合时,为源域学习的分类器也可以应用于目标域。域适应方法的吸引力在于,在目标域数据完全无标记(无监督域注释),或者标记样本很少(半监督域适应)时,能够学习域之间的映射。下面,我们将重点讨论较难的无监督情况,尽管所提出的方法可以相当直接地推广到半监督学习情况。
与之前大多数使用固定特征表示的域适应相关论文不同,我们的目标是将域适应和深度特征学习结合在一个训练过程中(深度领域适应)。我们的目标是将领域自适应嵌入到学习表示的过程中,使最终的分类决策基于对领域变化既具有区别性又不变性的特征,即在源域和目标域中具有相同或非常相似的分布。这样,得到的前馈网络可以应用于目标域,而不受两个域之间位移的影响。
因此,本文关注结合(i)判别性和 (ii)域不变性 的特征。这是通过联合优化底层特性以及对这些特性进行操作的两个判别分类器来实现的:(i)用于预测类标签的标签预测器,在训练时和测试时都使用;(ii)域分类器,用于在训练过程中区分源域和目标域。对分类器参数进行优化,使其在训练集上的误差最小;对底层深度特征映射参数进行优化,使标签分类器的损失最小,而使域分类器的损失最大。后者鼓励在优化过程中出现域不变特征。
这三个训练过程都可以嵌入到一个适当组成的使用标准层和损失函数的深度前馈网络中(图1),并且可以使用基于随机梯度下降或其修改的标准反向传播算法(例如带动量的SGD)进行训练。我们所提出方法是通用的,因为它可以用于向任何可通过反向传播训练的现有前馈架构添加域适应。在实践中,所提出架构的唯一非标准组件是一个相当琐碎的梯度反转层,在正向传播期间保持输入不变,并在反向传播期间通过乘以负标量来反转梯度。
图1
如图1所示:所提出的架构包括一个深度特征提取器(绿色)和一个深度标签预测器(蓝色),它们共同构成了一个标准的前馈架构。无监督域适应是通过添加一个域分类器(红色)来实现的,该分类器通过一个梯度反转层连接到特征提取器,该层在基于反向传播的训练期间将梯度乘以某个负常数,(否则,训练将以标准的方式进行),并最小化标签预测损失(对于源样本)和域分类损失(对于所有样本)。梯度反转确保两个域上的特征分布是相似的(对于域分类器来说尽可能不可区分),从而产生域不变特征。
下面详细介绍了深度架构中领域自适应的方法,并给出了在传统深度学习图像数据集(LeCun et al., 1998)和SVHN(Netzer et al., 2011))以及OFFICE benchmarks (Saenko et al., 2010)上的结果,在这些数据集上,所提出的方法较此前最精确的精度有了相当大的提高。
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)。分布匹配方法的一个重要方面是度量分布之间(是否有)相似性的方法。在这里,一个流行的选择是匹配核再生希尔伯特空间中的分布方式 (Borgwardt et al., 2006; Huang et al., 2006),而(Gong et al., 2012; Fernando et al., 2013) 绘制与每个分布相关的主轴。我们的方法也尝试匹配特征空间分布,但是这是通过修改特征表示本身来实现的,而不是通过重新加权或几何变换。此外,我们的方法(隐式地)使用了一种非常不同的方法来衡量分布之间的差异,该方法基于分布的可分性,采用了一种经过深度判别训练的分类器。
有几种方法从源领域逐渐过渡到目标领域(Gopalan et al., 2011; Gong et al., 2012)通过训练分布的逐步变化。在这些方法中(S. Chopra & Gopalan, 2013)通过对一系列深层自编码器进行分层训练,逐步将源域样本替换为目标域样本,实现了这一目标。相对于(Glorot et al., 2011)的类似方法,这种方法只需要为两个域训练一个深层的自动编码器,这是一种改进。在这两种方法中,实际的分类器/预测器都是使用自动编码器学习的特征表示在单独的步骤中学习的。与(Glorot et al., 2011; S. Chopra & Gopalan, 2013)不同,我们的方法在统一的体系结构中,使用单一的学习算法(反向传播),共同进行特征学习、领域自适应和分类器学习。因此,我们认为我们的方法更简单(无论是在概念上还是在实现上)。我们的方法在流行的OFFICE基准测试上也取得了相当好的结果。
虽然上述方法执行无监督域自适应,但也有一些方法通过利用目标域的标记数据来执行监督域自适应。在深度前馈体系结构的文中,这些数据可用于”微调“在源域上训练的网络(Zeiler & Fergus, 2013; Oquab et al., 2014; Babenko et al., 2014)。我们的方法不需要标记目标域数据。同时,它可以很容易地在可用时合并这些数据。
(Goodfellow et al., 2014)描述了一个与我们相关的想法。虽然他们的目标是完全不同(构建可以合成样本的生成式深度神经网络),他们测量的方式,减少训练数据的分布之间的差异和合成数据的分布非常类似于我们的架构方式措施和最小化两个域之间的差异特征分布。
最后,(Tzeng et al., 2014)最近的一份并发报告也关注了前馈神经网络中的域适应。他们的技术集测量和最小化跨域数据的距离。这种方法可以看作是我们的方法的”一阶”近似,我们寻求分布之间更紧密的对齐。
3. Deep Domain Adaptation(深度域适应)
3.1. The model (模型)
现在,我们详细介绍了所提出的领域适应模型。我们假设模型适用于输入样本,其中是某个输入空间,来自标签空间的某些标签y(输出)。 下面,我们假设分类问题中Y是一个有限集,但是我们的方法是通用的,可以处理其他深度提要的任何输出标签空间正向模型可以处理。我们进一步假设在上存在两个分布,分别称为源分布和目标分布(或源域和目标域)。这两种分布都假定为复杂和未知的,而且相似但不同(换句话说,从偏移到某个域上)。
我们的最终目标是能够预测标签y给定目标分布的输入x。在训练时,我们可以访问大量的训练样本来自源和目标域的分布式根据边际分布我们与di表示二进制变量(域标签)i的例子,这表明是否xi来自源分布或从目标分布。对于源分布()中的示例,在训练时已知对应的标签。对于来自目标域的示例,我们不知道训练时的标签,我们希望在测试时预测这些标签。
现在,我们定义了一个深度前馈体系结构,对于每个输入x,它预测其标签y和域标签。我们将这种映射分解为三个部分。我们假设输入x是第一次由一个映射映射(特征提取器)采用特征向量。功能映射 可能还包括几层前馈和我们表示向量的参数所有层的映射,即。然后,特征向量f是由一个映射(标签预测)y,和我们与表示这种映射的参数。最后,映射到相同的特征向量f域标签d由一个映射(域分类器)参数(图1)。
在学习阶段,我们的目标是最小化标签预测损失的带注释的部分(即源部分)的训练集和特征提取器和标签的参数预测,从而优化以减少源领域的经验损失样品。这保证了特征f的鉴别性,保证了特征提取器和标签预测器在源域上的组合具有良好的整体预测性能。
同时,我们希望使特性 f 域不变。也就是说,我们想让分布和是相似的。在协变量偏移假设下,这将使目标域上的标签预测精度与源域上的相同(Shimodaira, 2000)。然而,测量分布的不同之处并不简单,因为f是高维的,而且分布本身随着学习的进展而不断变化。估计不同的一种方法是看域分类器的损失,前提是提供的参数θd已经被训练成最优,以此来区分这两个特性分布。
这一观察结果引出了我们的想法。在训练时,为了获得域不变特性,我们寻求参数,最大化域分类器的损失(通过两个特性分布尽可能相似),同时寻求域分类器的参数,使得域分类器的损失最小化。此外,我们寻求最小化标签预测器的损失。
更正式地说,我们考虑泛函:
(1)
其中,为标签预测的损失(如多项),为域分类的损失(如logistic),而表示第i个训练示例中评估的相应损失函数。根据我们的想法,我们正在寻求参数,实现鞍点的功能(1)
(2)/(3)
在鞍点处,域分类器的参数最小化域分类损失(因为它进入(1)负号)的参数,而标签预测减少标签预测损失。特征映射参数最小化标签预测损失(即功能是区别的),而最大化域分类损失(即功能域不变)。参数λ控制两个目标之间的权衡,形状特征在学习。下面,我们证明了标准随机梯度求解器(SGD)可用于鞍点(2)-(3)的搜索。
3.2. Optimization with backpropagation (反向传播优化)
鞍点(2)-(3)可以作为后续随机更新的一个固定点:
(4)(5)(6)
μ是学习率(可随时间变化)。更新(4)-(6)非常类似于前馈深度模型的随机梯度下降(SGD)更新,该模型由特征提取器输入标签预测器和区域分类器。(4)的区别是λ因子(区别很重要,因为没有这样的因子,随机梯度下降法试图使特征在不同区域间不相似,从而使区域分类损失最小化)。虽然直接实现(4)-(6)作为SGD是不可能的,但我们非常希望将更新(4)-(6)减少到某种形式的SGD,因为SGD(及其变体)是大多数用于深度学习的包中实现的主要学习算法。
幸运的是,可以通过引入定义如下的特殊梯度反转层(GRL)来实现这种缩减。梯度逆转层没有与之关联的参数(除了meta-parameter λ,不通过反向传播更新)。在正向传播过程中,GRL作为一个恒等变换。在反向传播,GRL梯度从随后的水平,增加了λ和将其传递给前面的层。使用现有的面向对象包实现这样的层来进行深度学习非常简单,比如为前向支持(标识转换)、后向支持(乘以常量)和参数更新(没什么)定义过程非常简单。
上面定义的GRL插入到特征提取器和域分类器之间,得到图1所示的体系结构。反向传播过程通过GRL,下游的偏导数的损失GRL (Ld) w.r.t.上游的GRL层参数(即)乘以-λ,例如实际上是所取代。因此,运行SGD在生成的模型实现了更新(4)-(6)和(1)的收敛于一个鞍点。在数学上,我们可以正式将梯度逆转层视为伪函数定义为两个(不相容)方程描述其向前和反向传播:
(7)(8)
其中 I 是一个单位矩阵。我们可以定义的客观“伪函数” 内被随机梯度下降优化我们的方法:
(9)
运行更新(4)-(6)可以实现为(9)做SGD,并导致同时出现域不变和有区别的特性。学习后,标签预测因子可以用来预测标签样本目标域(以及从源域)。
上面概述的简单学习过程可以按照(Goodfellow et al., 2014)中的建议重新推导/概括(见附录A)。
3.3.Relation to -distance
在本节中,我们从距离的角度简要分析了我们的方法(Ben-David et al., 2010; Cortes & Mohri, 2011),在非保守域适应理论中得到了广泛的应用。正式来讲,
(10)
定义了两个分布之间的差异距离和 .假设集H .使用这个概念我们可以从目标域上的T得到某个分类器h的性能的概率界(Ben-David et al., 2010)给定它在源域上的性能:
(11)
其中和分别是源分布和目标分布,不依赖于特定的h。
在特征提取器和一组标签预测器生成的表示空间上考虑固定的和。我们假设域分类器族足够丰富,可以包含的对称差分假设集:
这并不是一个不切实际的假设,因为我们可以自由选择我们想要的。例如,我们可以将域鉴别器的体系结构设置为标签预测器的两个副本逐层串联,然后是一个旨在学习or函数的两层非线性感知器。假设成立,可以很容易地看出,的训练与的估计密切相关。事实上,
在是最大化的最佳。
因此,最优判别器给出了的上界。逆转的同时,反向传播梯度变化表示空间,使成为小有效地减少设计,导致更好的近似。
4. Experiments (实验)
我们对一些流行的图像数据集及其修改进行了广泛的评估。其中包括深受深度学习方法欢迎的小图像的大规模数据集,以及OFFICE数据集(Saenko et al., 2010),后者实际上是计算机视觉领域适应的标准,但图像要少得多。
Baselines. 对于大多数实验,评估以下基线。只训练源模型而不考虑目标域数据(网络中没有包含域分类器分支)。训练-目标模型在目标域上训练,显示类标签。该模型是DA方法的一个上界,假设目标数据是丰富的,并且域之间的移动是相当大的。
此外,我们将我们的方法与最近提出的 基于子空间对齐(SA)的无监督 DA 方法进行了比较(Fernando et al., 2013),该方法在新数据集上易于设置和测试,但在与其他浅层DA方法的实验比较中也表现得很好。为了提高这个基线的性能,我们从{2,…,60}使目标域上的测试性能最大化。 为了在我们的设置中应用SA,我们训练了一个只包含源的模型,然后考虑标签预测器(在最终的线性分类器之前)中最后一个隐藏层的激活作为描述符/特征,并学习源和目标域之间的映射(Fernando et al., 2013)。
因为SA基线需要训练新的分类器适应特性后,为了把所有的平等设置相比,我们重新训练的最后一层标签使用 标准线性支持向量机预测(Fan et al., 2008)为所有四种考虑方法(包括我们的再训练后,目标域的性能基本保持不变)。
对于OFFICE数据集(Saenko et al.,2010),我们使用以前发表的结果直接比较了我们的全网络(特征提取器和标签预测器)与最近DA方法的性能。
CNN architectures. 一般来说,我们从两个或三个卷积层组成特征提取器,从以前的工作中选择它们的精确配置。我们在附录b中给出了准确的体系结构。对于域适配器,我们坚持使用三个完全连接的层,但是MNIST使用了一个更简单的结构来加速实验。·
对于损失函数,我们将分别设为logistic回归损失和二项式交叉熵
CNN training procedure. 该模型在128个批次上进行了训练。图像经过平均减法预处理。每个批处理的一半由来自源域的示例填充(使用已知标签),其余由目标域(使用未知标签)组成。为了抑制噪声信号域分类器的训练过程的早期阶段,而不是修复适应因子λ,我们逐渐改变它从0到1,使用下面的表:
Visualizations. 我们使用t-SNE (van der Maaten, 2013)投影来可视化分布在网络上不同点的特征分布,同时对域进行彩色编码域(图3)。我们观察到,在目标域的分类精度方面,自适应的成功与这种可视化中域分布之间的重叠之间存在很强的对应关系。
Choosing meta-parameters. 一般来说,良好的无监督DA方法应提供方法来设置多变量(如λ、学习速率、动量率,方法)的网络体系结构以一种无监督的方式,即在目标域没有标签的数据时。在我们的方法中,我们可以通过观察测试误差对源域和域分类器误差的影响来评估整个系统的性能(以及改变超参数的影响)。一般来说,我们观察到自适应的成功与这些错误之间有很好的对应关系(当源域测试错误较低时,而域分类器错误较高时,自适应更成功,)。此外,根据(Tzeng et al., 2014)中提出的计算均值之间的差值,可以选取所连接的域适配器所在的层。
4.1. Results (结果)
现在我们讨论实验设置和结果。在每种情况下,我们对源数据集进行训练,并在不同的目标域数据集上进行测试,这些数据集在域之间具有相当大的迁移(参见图2)。
MNIST → MNIST-M. 我们的第一个实验处理MNIST数据集(LeCun et al., 1998) (source)。为了获得目标域(MNIST-M),我们将从BSDS500的彩色照片中随机抽取的原始集合上的数字混合到patch上(Arbelaez et al., 2011)。这个操作被正式定义为两个图像因为,其中i, j是一个像素的坐标,k是一个通道索引。换句话说,输出示例是通过从照片中提取一个补丁生成的,将其像素移动到与数字像素对应的位置。对于人类来说,与原始数据集相比,分类任务只会变得稍微困难一些(数字仍然可以清楚地区分),而对于接受MNIST训练的CNN来说,这个领域是相当不同的,因为背景和笔画不再是恒定的。因此,仅使用源代码的模型性能很差。我们的方法成功地对齐了特征分布(图3),这导致了成功的适应结果(考虑到适应是无监督的)。与此同时,通过子空间实现了对纯源模型的改进对齐(SA) (Fernando et al., 2013)相当适中,从而凸显了适应任务的难度。
Synthetic numbers → SVHN. 为了解决合成数据训练和真实数据测试的常见场景,我们使用街景房号数据集SVHN (Netzer et al., 2011)作为目标域,合成数字作为源。后者(SYN数字)由我们自己通过改变文本(包括不同的一位数、二位数和三位数)、位置、方向、背景和笔画颜色以及模糊度,从Windows字体生成的50万张图像组成。人工选取变异度来模拟SVHN,但两个数据集的差异较大,最大的差异是SVHN图像背景中的结构化杂波。提出的基于反向传播的训练方法,较好地解决了仅使用源数据训练与使用已知目标标签的目标域数据训练之间三分之二的差距。相比之下,SA (Fernando et al., 2013)并没有显著提高分类精度,这凸显了适应任务比MNIST实验更具挑战性。
MNIST ↔ SVHN. 在本实验中,我们进一步增大了分布之间的差距,并对MNIST和SVHN进行了测试,两者在外观上存在显著差异。在前150个时代,即使没有适应能力,SVHN的训练也面临着分类错误居高不下的挑战。为了避免最终得到一个很差的局部极小值,因此,这里不使用学习率退火。显然,这两个方向(MNIST SVHN和SVHN MNIST)并不相同困难。由于SVHN的多样性,在SVHN上训练的模型具有一定的推广意义更通用,在MNIST数据集上执行得更合理。事实证明确实如此,特性分布的出现支持这种情况。我们观察到,当我们将这些域输入到只接受MNIST训练的CNN时,它们之间有相当强的分离,而对于接受svhn训练的网络,这些特性则更加混杂。这一差异可能解释了为什么我们的方法在SVHN→MNIST场景中通过自适应成功地提高了性能(见表1),但不是在相反的方向(SA不能在这个c中执行自适应)。
表1。用于不同源和目标域的数字图像分类的分类精度。mist - m对应于非均匀背景下的差分混合数字。第一行对应较低的性能界限(即如果没有执行任何调整)。最后一行对应于使用已知类标签(DA性能的上限)对目标域数据进行训练。对于两种DA方法(我们的方法和(Fernando et al., 2013))中的每一种,我们都展示了下界和上界之间的差距被覆盖了多少(在括号中)。在所有五种情况下,我们的方法都有显著的优势(Fernando et al., 2013),并拉开了很大一部分差距。
Synthetic Signs → GTSRB. 总的来说,这个设置类似于SYN number SVHN实验,只是由于类的数量显著增加(43个而不是10个),所以特性的分布更加复杂。对于源域,我们获得了100,000张模拟各种拍摄条件的合成图像(我们称之为SYN符号)。再次,我们的方法实现了性能的显著提高,再次证明了它适合于从合成到实际数据的适应。作为一个附加实验,我们也评估了半监督域自适应算法,即当一个额外提供了少量的标记目标数据。为此,我们将GTSRB分为火车集(带有标签的1280个随机样本)和验证集(数据集的其余部分)。验证部分仅用于评估,不参与适配。随着标签预测器现在暴露在目标数据中,训练过程略有变化。
图4显示了整个训练过程中验证错误的变化。虽然从图中可以清楚地看出,我们的方法可以应用于半监督设置中,但是对于半监督设置的验证还有待进一步的工作。
Office dataset.
最后,我们对OFFICE dataset上的方法进行了评估,该数据集由三个不同的域成:AMAZON、DSLR和WEBCAM。与之前讨论过的数据集不同,OFFICE非常小,在最大域中只有2817张带标签的图像分布在31个不同类别中。可用数据的数量对于深度模型的成功训练至关重要,因此我们选择对在ImageNet上进行预训练的CNN进行微调(Jia et al., 2014),正如DA最近的一些工作(Donahue et al., 2014; Tzeng et al., 2014; Hoffman et al., 2013)。我们使用完全相同的网络架构,用域分类器替代基于域均值的正则化,从而使我们的方法更具有可比性(Tzeng et al., 2014)。
在之前的大部分工作中,我们使用5个随机分割来评估我们的方法,每个随机分割对应3个通常用于评估的传输任务。我们的训练方案接近(Tzeng et al., 2014; Saenko et al., 2010; Gong et al., 2012),因为我们每个类别都使用相同数量的标记源域图像。与DLID不同 (S. Chopra & Gopalan, 2013)我们使用整个未标记目标域(我们方法的前提是目标域中未标记数据的丰富性)。在这种转换设置下,我们的方法能够极大地提高先前报道的最先进的无监督自适应精度(表2),特别是在最具挑战性的AMAZON WEBCAM场景中(两个领域的领域迁移最大)。
表2。在标准OFFICE (Saenko et al., 2010)数据集上对不同DA方法的准确性进行评估。我们的方法(最后一行)比竞争对手设置的最新技术更好。
5. Discussion (讨论)
我们提出了一种新的基于深度前馈体系结构的无监督域自适应方法,该方法允许基于源域的大量带注释数据和目标域的大量无注释数据进行大规模训练。与以前的许多浅层和深层DA技术类似,通过调整这两个领域的特性分布来实现自适应。然而,与以前的方法不同,对齐是通过标准的反向传播训练完成的。因此,该方法具有相当的可伸缩性,可以使用任何深度学习包来实现。为此,我们计划发布梯度反转层的源代码,以及作为Caffe扩展的使用示例(Jia等,2014)。
对大规模任务和半监督环境的进一步评价构成今后的工作。同样有趣的是,该方法能否从特性提取器的良好初始化中获益。为此,一个自然的选择是使用深度自编码器/反褶积网络在两个域(或目标域)上进行训练 (Glorot et al., 2011; S. Chopra & Gopalan, 2013),与有效使用(Glorot et al., 2011; S. Chopra & Gopalan, 2013),作为方法的初始化。