本篇是迁移学习专栏介绍的第十三篇论文,发表在ICML15上。论文提出了用对抗的思想进行domain adaptation,该方法名叫DANN(或RevGrad)。核心的问题是同时学习分类器 、特征提取器 、以及领域判别器 。通过最小化分类器误差,最大化判别器误差,使得学习到的特征表达具有跨领域不变性。
高性能的深层体系结构是针对大量标记数据进行训练的。在缺少特定任务的标记数据的情况下,域自适应通常提供了一个有吸引力的选项,因为具有类似性质但来自不同域的标记数据(例如合成图像)是可用的。在此,我们提出了一种在深层体系结构中进行域自适应的新方法,该方法可以训练来自源域的大量标记数据和来自目标域的大量未标记数据(不需要标记的target domain数据)。
随着训练的进行,该方法促进了
我们证明,这种自适应行为几乎可以在任何前馈模型中实现,通过增加几个标准层和一个简单的新的梯度逆转层。生成的增强体系结构可以使用标准的反向传播进行训练。
总的来说,使用任何深度学习包都可以轻松地实现该方法。该方法在一系列的图像分类实验中取得了良好的效果,在存在较大的域迁移的情况下,取得了较好的自适应效果,在Office数据集上的性能优于以往的先进方法。
深度前馈体系结构为各种机器学习任务和应用程序带来了令人印象深刻的最新进展。然而,目前,只有在有大量标记的训练数据可用时,才能实现这些性能飞跃。同时,对于缺少标记数据的问题,仍然有可能获得足够大的训练集来训练大规模的深度模型,但是这些训练集的数据分布与测试时遇到的实际数据发生了变化。一个特别重要的例子是合成的或半合成的训练数据,这些数据可能非常丰富,并且被完全标记,但是它们不可避免地具有与真实数据不同的分布(Liebelt & Schmid, 2010; Stark et al., 2010; Vazquez et al. , 2014; Sun & Saenko, 2014)。
在训练分布和测试分布之间存在迁移的情况下学习判别分类器或其他预测器被称为域适应(DA)。在浅层学习的背景下,已经提出了一些领域适应的方法,例如在给定和固定了数据表示/特征的情况下。然后,这些方法构建源(训练时间)域和目标(测试时间)域之间的映射,这样,当使用域之间的学习映射组合时,为源域学习的分类器也可以应用于目标域。域适应方法的吸引力在于,当目标域数据要么完全无标记(无监督域注释),要么标记样本很少(半监督域适应)时,能够学习域之间的映射。下面,我们将重点讨论较难的无监督情况,尽管所提出的方法可以相当直接地推广到半监督情况。
与以往大多数使用固定特征表示的领域适应相关论文不同,我们侧重于将领域适应和深度特征学习结合在一个训练过程中(深度领域适应)。我们的目标是将领域自适应嵌入到学习表示的过程中,使最终的分类决策基于对领域变化既具有区别性又不变性的特征,即在源域和目标域中具有相同或非常相似的分布。这样,得到的前馈网络可以应用于目标域,而不受两个域之间位移的影响。
因此,我们关注结合(i)辨别力和(ii)领域不变性的学习特性。这是通过联合优化基础特性以及对这些特性进行操作的两个判别分类器来实现的:(i)用于预测类标签的标签预测器,在训练期间和测试时都使用域分类器,用于在训练过程中区分源域和目标域。对分类器参数进行优化,使其在训练集上的误差最小;对底层深度特征映射参数进行优化,使标签分类器的损失最小,使域分类器的损失最大。后者鼓励在优化过程中出现域不变的特性。
关键的是,我们证明了这三个训练过程都可以嵌入到一个适当组成的使用标准层和损失函数的深度前馈网络中(图1),并且可以使用基于随机梯度下降或其修改的标准反向传播算法(例如带动量的SGD)进行训练。我们的方法是通用的,因为它可以用于向任何可以通过反向传播训练的现有前馈体系结构添加域适配。实际上,所提议的体系结构的唯一非标准组件是一个相当简单的梯度反转层,它在正向传播期间保持输入不变,并在反向传播期间通过将其乘以一个负标量来反转梯度。
下面,我们详细的建议方法领域适应深架构,传统的深度学习和现在的结果图像数据集(如MNISTT (LeCun et al., 1998)和SVHN(Netzer et al., 2011))以及OFFICE benchmarks (Saenko et al., 2010),在该方法的精度比以往大大提高。
近年来,人们提出了大量的领域自适应方法,这里我们将重点介绍相关的领域自适应方法。多种方法通过匹配源域和目标域的特征分布来实现无监督域自适应。有些方法通过重新权衡或从源域中选择样本来实现这一点(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)最近的一份并发报告也关注了前馈网络中的域适应。他们的技术集度量并最小化跨域数据手段的距离。这种方法可以看作是我们的方法的一阶近似,它寻求分布之间更紧密的对齐。
现在,我们详细介绍了所提出的领域适应模型。我们假设模型适用于输入样本,其中
是某个输入空间和来自标签空间
的某些标签(输出)y。下面,我们假设分类问题中Y是一个有限集
,但是我们的方法是通用的,可以处理其他深度提要的任何输出标签空间正向模型可以处理。我们进一步假设在
上存在两个分布
,分别称为源分布和目标分布(或源域和目标域)。这两种分布都假定为复杂和未知的,而且相似但不同(换句话说,
从
移到某个域上)。
我们的最终目标是能够预测标签y给定目标分布的输入x。在训练时,我们可以访问大量的训练样本来自源和目标域的分布式根据边际分布
我们与di表示二进制变量(域标签)i的例子,这表明是否xi来自源分布
或从目标分布
。对于源分布(
)中的示例,在训练时已知对应的标签
。对于来自目标域的示例,我们不知道训练时的标签,我们希望在测试时预测这些标签。
现在,我们定义了一个深度前馈体系结构,对于每个输入x,它预测其标签y和域标签。我们将这种映射分解为三个部分。我们假设输入x是第一次由一个映射映射
(特征提取器)采用特征向量
。功能映射可能还包括几层前馈和我们表示向量的参数
所有层的映射,即
。然后,特征向量f是由一个映射映射
标签(标签预测)y,和我们与
表示这种映射的参数。最后,映射到相同的特征向量f域标签d由一个映射
(域分类器)参数(图1)。
在学习阶段,我们的目标是最小化预测损失的标签带注释的一部分(即源部分)的训练集和特征提取器和标签的参数预测因此优化以减少源领域的经验损失样品。这保证了特征f的鉴别性,保证了特征提取器和标签预测器在源域上的组合具有良好的整体预测性能。
同时,我们希望使特性f域不变。也就是说,我们想让分布和
是相似的。在协变量移位假设下,这将使目标域上的标签预测精度与源域上的相同(Shimodaira, 2000)。然而,测量分布
的不同之处并不简单,因为f是高维的,而且分布本身随着学习的进展而不断变化。估计不同的一种方法是看域分类器
的损失,提供的参数θd域分类器的训练来区分这两个特性分布以最优的方式。
这一观察结果引出了我们的想法。在训练时,为了获得域不变特性,我们寻求参数最大化的功能映射域分类器的损失(通过两个特性分布尽可能相似),同时寻求域分类器的参数
域分类器的损失最小化。此外,我们寻求最小化标签预测器的损失。
更正式地说,我们考虑功能:
其中,为标签预测的损失(如多项),
为域分类的损失(如logistic),而
表示第i个训练示例中评估的相应损失函数。根据我们的想法,我们正在寻求参数
,交付一个鞍点的功能(1)
在鞍点处,域分类器的参数最小化域分类损失(因为它进入(1)负号)的参数
标签预测减少标签预测损失。特征映射参数
最小化标签预测损失(即功能是区别的),而最大化域分类损失(即功能域不变)。参数λ控制两个目标之间的权衡,形状特征在学习。下面,我们证明了标准随机梯度求解器(SGD)可用于鞍点(2)-(3)的搜索。
鞍点(2)-(3)可以作为后续随机更新的一个固定点:
哪里是学习率(可能随时间而变化)。更新(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)的收敛于一个鞍点。在数学上,我们可以正式将梯度逆转层视为伪函数
定义为两个(不相容)方程描述其向前和反向传播:
其中I是一个单位矩阵。我们可以定义的客观“伪函数” 内被随机梯度下降优化我们的方法:
运行更新(4)-(6)可以实现为(9)做SGD,并导致同时出现域不变和有区别的特性。学习后,标签预测因子可以用来预测标签样本目标域(以及从源域)。
面概述的简单学习过程可以按照(Goodfellow et al., 2014)中的建议重新推导/概括(见附录A)。
在本节中,我们从距离的角度简要分析了我们的方法(Ben-David et al., 2010; Cortes & Mohri, 2011),在非保守域适应理论中得到了广泛的应用。正式,
定义了两个分布之间的差异距离和
w.r.t.假设集h .使用这个概念可以获得概率约束(Ben-David et al., 2010)的性能
的一些分类器h
评估目标领域由于其性能
源域:
其中和
分别是源分布和目标分布,
不依赖于特定的h。
在特征提取器和一组标签预测器
生成的表示空间上考虑固定的
和
。我们假设域分类器
族足够丰富,可以包含
的对称差分假设集:
这并不是一个不切实际的假设,因为我们可以自由选择我们想要的。例如,我们可以将域鉴别器的体系结构设置为标签预测器的两个副本逐层串联,然后是一个旨在学习or函数的两层非线性感知器。假设成立,可以很容易地看出,
的训练与
的估计密切相关。事实上,
在是最大化的最佳
。
因此,最优判别器给出了的上界。逆转的同时,反向传播梯度变化表示空间,使
成为小有效地减少设计
,导致更好的近似
。
我们对一些流行的图像数据集及其修改进行了广泛的评估。其中包括深受深度学习方法欢迎的小图像的大规模数据集,以及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方法应提供方法来设置metaparameters(如λ、学习速率、动量率,方法)的网络体系结构以一种无监督的方式,即没有指带安全标签的数据时在目标域。在我们的方法中,我们可以通过观察测试误差对源域和域分类器误差的影响来评估整个系统的性能(以及改变超参数的影响)。一般来说,我们观察到自适应的成功与这些错误之间有很好的对应关系(当源域测试错误较低时,自适应更成功,而域分类器错误较高时)。此外,根据(Tzeng et al., 2014)中提出的计算均值之间的差值,可以选取所连接的域适配器所在的层。
现在我们讨论实验设置和结果。在每种情况下,我们对源数据集进行训练,并在不同的目标域数据集上进行测试,这些数据集在域之间具有相当大的迁移(参见图2)。
MNIST → MNIST-M. 我们的第一个实验处理MNIST数据集(LeCun et al., 1998) (source)。为了获得目标域(MNIST-M),我们将从BSDS500的彩色照片中随机抽取的原始集合上的数字混合到patch上(Arbelaez et al., 2011)。这个操作被正式定义为两个图像,因为
,其中I, j是一个像素的坐标,k是一个通道索引。换句话说,输出示例是通过从照片中提取一个补丁生成的,将其像素移动到与数字像素对应的位置。对于人类来说,与原始数据集相比,分类任务只会变得稍微困难一些(数字仍然可以清楚地区分),而对于接受MNIST训练的CNN来说,这个领域是相当不同的,因为背景和笔画不再是恒定的。因此,仅使用源代码的模型性能很差。我们的方法成功地对齐了特征分布(图3),这导致了成功的适应结果(考虑到适应是无监督的)。与此同时,o
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中执行自适应)。
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场景中(两个领域的领域迁移最大)。
提出了一种新的基于深度前馈体系结构的无监督域自适应方法,该方法允许基于源域的大量带注释数据和目标域的大量无注释数据进行大规模训练。与以前的许多浅层和深层DA技术类似,通过调整这两个领域的特性分布来实现自适应。然而,与以前的方法不同,对齐是通过标准的反向传播训练完成的。因此,该方法具有相当的可伸缩性,可以使用任何深度学习包来实现。为此,我们计划发布梯度反转层的源代码,以及作为Caffe扩展的使用示例(Jia等,2014)。
对大规模任务和半监督环境的进一步评价构成今后的工作。同样有趣的是,该方法能否从特性提取器的良好初始化中获益。为此,一个自然的选择是使用 (Glorot et al., 2011; S. Chopra & Gopalan, 2013),有效利用(Glorot et al., 2011; S. Chopra & Gopalan, 2013),作为方法的初始化。