Domain-adversarial training of neural networks - 1 - 论文学习
Domain-adversarial training of neural networks
Abstract
我们介绍了一种新的用于域自适应的表征学习方法,其中训练和测试时的数据来自相似但不同的分布。我们的方法直接受到域自适应理论的启发,该理论认为,要实现有效的域转移,必须基于不能区分训练(源)域和测试(目标)域的特征进行预测。
该方法在神经网络体系结构的上下文中实现了这一思想,这些神经网络体系结构是根据来自源域的标记数据和来自目标域的未标记数据(不需要标记目标域数据)进行训练的。随着训练的进行,该方法促进如下特征的出现,这些特征(i)对源域上的主要学习任务具有区别性,(ii)对域之间的转移具有不区分性。我们表明,这种自适应行为可以通过增加一些标准层和一个新的梯度反转层在几乎任何前馈模型中实现。由此产生的增强体系结构可以使用标准反向传播和随机梯度下降进行训练,因此可以使用任何深度学习包很轻松地实现它。
我们在两个不同的分类问题(文档情感分析和图像分类)上证明了我们的方法的成功,在标准基准上实现了最先进的域自适应性能。我们还验证了该方法用于行人再识别应用的描述符学习任务中的有效性。
1. Introduction
为新的机器学习任务生成标记数据的成本往往是应用机器学习方法的一个障碍。特别是,这是深度神经网络体系结构进一步发展的一个限制因素,在各种各样的机器学习任务和应用中,深度神经网络体系结构已经带来了令人印象深刻的发展。对于缺乏标注数据的问题,仍然有可能获得足够大的训练集来训练大规模的深度模型,但在“测试时”遇到的数据分布可能会发生变化。一个重要的例子是在合成或半合成图像上训练图像分类器,这些图像可能大量出现并被完全标记,但它们不可避免地具有不同于真实图像的分布 (Liebelt and Schmid, 2010; Stark et al., 2010; V ́azquez et al., 2014; Sun and Saenko, 2014)。另一个例子是在书面评论的情感分析上下文中,其中一个可能已经为一种类型的产品(例如,电影)的评论标记了数据,而需要对其他产品(例如,书籍)的评论进行分类。
在训练分布和测试分布之间存在转移的情况下学习一个判别分类器或其他预测器被称为域自适应(DA)。提出的方法建立源(训练时)域和目标(测试时)域之间的映射关系,使源域学习到的分类器与域之间学习的映射组合在一起时,也可以应用于目标域。域自适应方法的吸引力在于,当目标领域数据完全没有标记(无监督的域注释)或只有很少的标记样本(半监督的域自适应)时,它能够学习域之间的映射。下面,我们将重点讨论更难的无监督情况,所建议的方法(域对抗学习)可以相当直接地推广到半监督情况。
不同于以往的许多关于域自适应的论文都是在固定的特征表征下进行的,我们侧重于在一个训练过程中结合域自适应和深度特征学习。我们的目标是将域自适应嵌入到学习表征的过程中,这最后的分类决策是基于对域的变化即有区分度又有不变性的特征的,即该特征在源和目标域上有着相同或非常相似的分布。这样,所得到的前馈网络就可以适用于目标域,而不受两个域之间转移的阻碍。我们的方法是基于域自适应理论(Ben-David et al.,2006, 2010)的,该理论表明,可用于跨域迁移的良好表征是一种算法无法学着去识别输入观测的起源域的方法。
因此,我们专注于学习结合了(i)判别性和(ii)域不变性的特征。这是通过联合优化底层特征以及两种操作在这些特征的判别分类器实现的:(i)一个是用于预测类标签标签预测器,可用于训练和测试,(ii)一个是训练时用于判别源域和目标域的域分类器。对分类器参数进行优化以使分类器在训练集上的误差最小化,对底层深度特征映射参数进行优化以使标签分类器的损失最小化,域分类器的损失最大化。因此,后者的更新工作与域分类器相反(因为它是最大化而不是最小化),它鼓励在优化过程中出现域不变特征。
关键的是,我们证明了这三个训练过程都可以嵌入到一个适当组成的深度前馈网络中,称为域对抗神经网络(DANN)(如图1所示),该网络使用标准层和损失函数,并且可以使用基于随机梯度下降或其修改版(例如,带momentum的SGD)的标准反向传播算法进行训练。这种方法是通用的,因为几乎可以为任何现有的使用后向传播进行训练的前馈架构创建其DANN版本。在实践中,所提出的体系结构中唯一的非标准组件是一个相当普通的梯度反转层(gradient reversal layer),它在正向传播期间保持输入不变,并在反向传播期间通过乘以一个负标量来逆转梯度(将最大化变为最小化)。
我们在一系列深层架构和应用中,对提出的域对抗学习思想进行了实验评估。我们首先考虑最简单的DANN体系结构,其中树形部分(标签预测器、域分类器和域预测器)是线性的,并演示了在这样的体系结构中域对抗学习的成功。对合成数据以及自然语言处理中的情感分析问题进行评价,其中DANN改进了Chen等人(2012)在common Amazon reviews基准上的最先进的marginalized Stacked Autoencoders(mSDA)方法。
我们进一步对图像分类任务的方法进行广泛评估,并展示了在传统深度学习图像数据集的结果,如MNIST (LeCun et al., 1998)和SVHN (Netzer et al., 2011)以及Office benchmarks(Saenko et al.,2010),域对抗学习允许获得一个深度架构,可大大提高以前最先进的准确性。
最后,我们在行人再识别应用(Gong et al., 2014)的背景下评估域对抗描述符学习,其中的任务是获得适合检索和验证的良好行人图像描述符。当我们考虑一个用Siamese-like损失训练的描述符预测器,而不是一个用分类损失训练的标签预测器时,我们在描述符预测器上应用域对抗学习。在一系列的实验中,我们证明了域对抗学习可以显著改善跨数据集的再识别。
2. Related work
从多个方面探讨了实现领域适应性的一般方法。多年来,大部分文献主要集中在线性假设(see for instance Blitzer et al., 2006; Bruzzone and Marconcini, 2010; Germain et al., 2013; Baktashmotlagh et al., 2013a; Cortes and Mohri, 2014)。最近,非线性表征得到了越来越多的研究,包括神经网络表征(gloria et al., 2011;Li et al.,2014)和最著名的是最先进的mSDA (Chen et al.,2012)。这些文献主要集中在利用基于去噪自编码器范式的鲁棒表征原理(Vincent et al.,2008)。
同时,提出了多种匹配源域和目标域特征分布的无监督域自适应方法。一些方法通过重新加权或从源域选择样本来实现这一点(Borgwardt et al., 2006; Huang et al., 2006; Gong et al., 2013),而其他人则寻求一种明确的特征空间变换,将源分布映射到目标分布 (Pan et al., 2011; Gopalan et al., 2011; Baktashmotlagh et al., 2013b)。分布匹配方法的一个重要方面是测量分布之间的(不)相似度。这里,一个流行的选择是匹配kernel-reproducing Hilbert空间中的分布均值 (Borgwardt et al., 2006; Huang et al., 2006),而Gong et al. (2012); Fernando et al. (2013)则是映射与每个分布相关的主轴。
我们的方法也试图匹配特征空间分布,然而这是通过修改特征表征本身来完成的,而不是通过重新加权或几何变换来完成。此外,我们的方法使用了一种相当不同的方法来衡量分布之间的差异,即基于分布的可分性,通过深度判别训练分类器来实现。还需要注意的是,有几种方法通过逐渐改变训练分布来从源域逐步过渡到目标域(Gopalan et al., 2011; Gong et al., 2012) 。在这些方法中,Chopra et al.(2013)通过对一系列深度自动编码器进行分层训练,逐步用目标域样本替换源域样本,进行“深度”训练。这改进了Glorot et al. (2011) 的类似方法,后者只是为两个领域训练了一个单独的深度自动编码器。在这两种方法中,实际的分类器/预测器是使用自动编码器学习的特征表征以分离的方式学习的。与Glorot et al. (2011) 、Chopra et al. (2013)相反,我们的方法在一个统一的体系结构中,使用单一的学习算法(backpropagation),共同进行特征学习、域自适应和分类器学习。因此,我们认为我们的方法更简单(无论是在概念上还是在实现方面)。我们的方法在流行的 Office benchmark测试中也获得了相当好的结果。
虽然上述方法实现了无监督域自适应,但也有一些方法通过利用目标域的标记数据来执行监督域自适应。在深度前馈体系结构的背景下,这些数据可以用来“微调”在源域上训练的网络(Zeiler and Fergus, 2013; Oquab et al., 2014; Babenko et al., 2014)。我们的方法不需要标记的目标域数据。同时,当这些数据可用时,我们的方法可以很容易地合并这些数据。
Goodfellow et al. (2014)描述了一个与我们相关的想法。尽管他们的目标截然不同(构建可以合成样本的生成深度网络),他们测量和最小化训练数据分布和合成数据分布之间的差异的方法与我们的架构测量和最小化两个域特征分布之间的差异的方法非常相似。此外,作者还提到了sigmoids饱和的问题,这种问题可能在训练的早期阶段出现,这是由于域的显著不同导致的。他们用来规避这个问题的技术(梯度的“对抗性”部分被根据合适的成本计算的梯度所取代)直接应用于我们的方法。
此外,最近的Tzeng et al. (2014); Long and Wang (2015)也关注了前馈网络的域自适应。他们的技术集 度量并最小化了跨域数据分布平均值之间的距离(可能是在将分布嵌入到RKHS之后)。因此,他们的方法与我们的想法不同,我们的想法是通过使鉴别分类器无法区分分布来实现的。下面,我们在 Office benchmark上将我们的方法与 Tzeng et al. (2014); Long and Wang (2015)的进行比较。Chen et al. (2015)同时开发了另一种深度域自适应方法,这与我们的方法有着更大的不同。
从理论的角度来看,我们的方法直接来源于Ben-David et al. (2006, 2010)的开创性理论工作。事实上,DANN直接优化了的概念。我们确实注意到Huang and Yates (2012)的工作,其使用后验正则化器学习HMM表征用于单词标记,该方法也受到Ben-David等人工作的启发。除了任务不同——Huang and Yates (2012)关注单词标注问题——,我们认为DANN学习目标更紧密地优化了,而Huang and Yates (2012)出于效率原因,依赖于粗糙的近似。
本文的一部分已作为会议论文Ganin and Lempitsky (2015)发表。该版本在很大程度上扩展了Ganin and Lempitsky (2015),纳入了Ajakan et al. (2014)的报告(作为第二届迁移和多任务学习研讨会的一部分),引入了新的术语、深入的理论分析和对方法的论证,在合成数据和自然语言处理任务(情感分析)上,对shallow DANN情况进行了广泛的实验。此外,在这个版本中,我们超越了分类的效果,并在行人再识别应用中评估用于描述符学习设置的域对抗学习。
3. Domain Adaptation
这里我们考虑了分类任务,其中是输入空间,是个可能出现的标签集。而且在上有两个不同的分布,命名为源域和目标域。然后为一个无监督域自适应学习算法提供了来自的标记源样本和来自的未标记目标样本,其中是在上的边际分布。
为样本总数。学习算法的目标是建立一个有着低目标风险的分类器:
没有任何关于标签的信息
3.1 Domain Divergence
为了解决这一具有挑战性的域自适应任务,许多方法用源error和源与目标分布之间的距离总和来约束目标误差。这些方法是通过一个简单的假设直观地证明的:当两个分布相似时,源风险被期望为目标风险的一个很好的指示器。一些距离的概念已经被提出用于域自适应中(Ben-David et al., 2006, 2010; Mansour et al., 2009a,b; Germain et al., 2013)。在本文中,我们主要关注Ben-David et al. (2006, 2010)使用并基于 Kifer et al. (2004)的早期工作的。注意,我们下面在定义1中的假设是 假设类是一个二分类器(离散或连续)集
Definition 1 (Ben-David et al., 2006, 2010; Kifer et al., 2004) 给定两个上的域分布和、一个假设类,和之间的为:
取决于假设类区分由生成样本和由生成样本的能力。Ben-David et al. (2006, 2010)证明了,对于一个对称假设类,可计算得到两个样本之间的经验,计算式子为:
是指标函数,当a为true时为1,否则为0
3.2 Proxy Distance
Ben-David et al. (2006, 2010)建议,即使计算比较难(即当是上线性分类器的空间时),我们可以通过运行用来解决源和目标样本的判别问题的学习算法来近似它。因此,我们构建了一个新的数据集:
其中源样本标记为0,目标样本标记为1。然后,训练在新数据集的分类器的风险近似于等式(1)的“min”部分。因此,在源和目标样本的判别问题中给定一个测试error ,Proxy A-distance (PAD)为:
在本文的实验部分(见第5.1.5节),我们采用了Glorot et al. (2011); Chen et al. (2012)的方法计算PAD值,即在一个子集(式子2)上训练线性支持向量机,将另一个子集上获得的分类器误差作为式子(3)中的值。
3.3 Generalization Bound on the Target Risk
Ben-David et al. (2006, 2010)也显示, 的上界为其经验估计值加上一个由的VC维度和样本和的大小决定的常数项。通过将该结果和源风险中相似的边界结合起来,就能够得到下面的定理。
Theorem 2 (Ben-David et al., 2006) 让为一个VC维d的假设类。在样本中以的概率进行选择,对于每个:
上面的结果告诉我们,只有当β项较低时,才可能较低,即只有当存在一个分类器可以在两个分布上实现低风险时。它还告诉我们,要在给定的固定VC维类中找到具有小的分类器,学习算法应该最小化(在该类中)源风险和经验 之间的权衡。Ben-David et al. (2006)指出,控制的一种策略是找到源域和目标域都尽可能不可区分的样例的表征。在该表征下,根据定理2,低源风险的假设在目标数据上会有很好的效果。本文提出了一种直接利用这一思想的算法。
4. Domain-Adversarial Neural Networks (DANN)
我们方法的一个原始想法是将定理2所展示的思想显式地实现到神经网络分类器中。也就是说,为了学习一个可以很好地从一个域推广到另一个域的模型,我们要确保神经网络的内部表征不包含关于输入(源或目标)的判别性信息,同时对源(标记的)样例保持低风险。
在本节中,我们将详细介绍我们提出的将“域自适应组件”并入神经网络的方法。在第4.1小节中,我们首先为最简单的可能情况开发该想法,即,单个隐含层的全连接神经网络。然后,我们描述如何将该方法推广到任意(深度)网络体系结构。
4.1 Example Case with a Shallow Neural Network
让我们首先考虑一个只有一个隐含层的标准神经网络(NN)体系结构。为简单起见,我们假设输入空间是由m维实向量构成的。因此。隐藏层学习了将一个样本映射到一个新的D维表征的函数,且其参数为一个矩阵向量对:
简单来说,预测层学习了一个参数为对的函数:
已知。通过使用softmax函数,向量的每一个分量都表示表示神经网络将x赋值给由该分量所代表的Y中的类的条件概率。给定源样本,使用的分类损失为正确标签的负对数似然:
然后训练神经网络将导致源域中出现如下的优化问题:
其中是第i个样本预测损失的缩写版,是一个使用超参数λ加权的可选正则项。
我们方法的核心是设计一个直接从定义1的导出的域正则化器。为此,我们将隐含层(式4)的输出视为神经网络的内部表征。因此,我们将源样本表征表示为:
类似地,给定一个来自目标域的未标记样本,我们表示相应的表征为:
基于等式(1),样本和之间对称假设类的经验为:
将作为表征空间中超平面的类。受Proxy A-distance(3.2节)的启发,我们建议使用一个学习逻辑回归的域分类层去估计等式(6)的“min”部分:,参数为vector-scalar pair ,该层构建了一个给定输入来自源域或目标域的概率。因此:
因此,函数是一个域回归器。我们定义其损失为:
其中表示第i个样本的二进制变量(域标签),用来表示来自源分布()或来自目标分布()
在训练时,对于来自源分布的样本(),其对应的标签是已知的。对于来自目标域的样本,在训练时我们不知道其标签,我们希望在测试时预测其标签。因此我们添加了一个域自适应项到等式(5)的目标函数中,给出了如下的正则化器:
其中。该正则化器尝试近似于等式(6)的,是的替代版。遵循定理2,等式(5)和(8)的优化问题实现了源风险最小化和散度之间的权衡。超参数λ被用于在学习过程中调节两项之间的平衡。
为了学习,我们首先注意到可以将等式(5)的完全优化目标重写为:
然后我们去寻找能够得到该目标函数鞍点的参数:
因此,优化问题涉及到对某些参数的最小化,以及对其他参数的最大化。
我们建议用一个简单的随机梯度程序来解决这个问题,在这个过程中,朝方程(9)梯度的相反方向进行更新,来最小化参数;而朝梯度的原方向进行更新来最大化其他参数。对梯度进行随机估计,使用训练样本的子集来计算平均值。算法1提供了这个学习过程的完整伪代码。在训练中,神经网络(参数为)和域回归器(参数为)在方程(9)的目标函数中以对抗性的方式相互竞争。由于这个原因,我们将根据这个目标函数训练的网络称为域对抗神经网络(DANN)。DANN将有效地尝试学习一个将样本(来自源域或目标域)映射为表征的隐藏层,且允许输出层准确地分类源样本,但削弱了用来检测每个例子是属于源或目标域的回归器的能力。
4.2 Generalization to Arbitrary Architectures
为了便于说明,我们到目前为止只关注一个隐藏层DANN的情况。然而,它可以直接推广到其他复杂的体系结构,这可能更适合于手头的数据。例如,以作为学习图像判别特征的最先进模型而闻名的深度卷积神经网络(Krizhevsky et al.,2012)。
我们为DANN的不同成分使用更通用的注释。主要有用表示D维神经网络特征抽取器,参数为。用表示DANN中用来计算网络标签预测的输出层,参数为;对应的是网络域预测输出的计算,参数为。为了保持定理2的理论保证,由域预测成分生成的假设类应该包含由标签预测成分生成的假设类。因此
预测损失和域损失分别为:
然后训练DANN,优化:
寻找鞍点:
定义在等式(11-12)的鞍点通过寻找以下梯度更新的平稳点来得到:
其中μ是学习率。我们通过从数据集中采样,然后使用这些样本的梯度进行随机估计。
方程(13-15)的更新非常类似于前馈深度模型的随机梯度下降(SGD)更新,该模型包括输入标签预测器和域分类器的特征提取器(损失以λ加权)。唯一的区别是,在(13)中,类和域预测器的梯度相减,而不是相加(这种差别是十分重要的,否则SGD会试图使跨域的特征不相同,以减少领域分类损失,而我们的目的正好相反)。由于SGD——以及它的许多变体,如ADAGRAD (Duchi et al.,2010)或ADADELTA (Zeiler, 2012)——是大多库中用于深度学习的主要学习算法,因此将我们的随机鞍点程序的实现设置为SGD是很方便的。
幸运的是,这种相减的变化可以通过引入特殊的梯度反转层(GRL)来实现,定义如下。梯度反转层没有与之相关的参数。在正向传播过程中,GRL充当一个恒等变换。然而,在反向传播过程中,GRL从下一层获取梯度并改变其符号,即在将其传递到前一层之前将其乘以−1。使用现有的面向对象的深度学习包实现这样一个层很简单,只需要定义前向传播(恒等变换)、后向传播(乘以−1)的过程。该层不需要参数更新。
上面定义的GRL将插入到特征抽取器和域分类器中,得到如图1所示的结构。当后向传播经过GRL时,GRL下流的损失(即)关于GRL上流的层参数(即)的偏导将乘以-1,即将被换成。因此,在最终模型上运行SGD实现了等式(13-15)的更新和等式(10)中鞍点的收敛。
在数学上,我们可以正式地将梯度反转层视为由两个(不兼容的)方程定义的“伪函数”,这两个方程描述了它的正向和反向传播行为:
是一个恒等矩阵。然后我们可以定义我们的方法中使用随机梯度下降优化的的目标“伪函数”为:
对(13-15)的更新可以通过对(18)执行SGD来实现,并导致同时出现域不变且具有区别性的特征。学习后,标签预测器可以用来预测来自目标域的样本的标签(当然也可以预测来自源域的样本)
5. Experiments
5.1 Experiments with Shallow Neural Networks
在第一个实验中,我们评估第4.1小节描述的简单版本的DANN的行为。请注意,本小节中报告的结果是使用算法1获得的。基本上,这种随机梯度方法包括对源例和目标例进行采样,并对DANN的所有参数进行梯度step更新。至关重要的是,尽管常规参数的更新通常遵循梯度的相反方向,但对于对抗参数,step必须遵循梯度的方向(因为我们会最大化它们,而不是最小化它们)。
5.1.1 Experiments on a Toy Problem
作为第一个实验,我们研究了所提出的算法在 inter-twinning moons 2D问题上的效果,其中目标分布是源分布的旋转。作为源样本,我们分别生成标记为0和1的lower moon和upper moon,每个都包含150个样本。目标样本通过以下步骤得到:(1)我们按照生成的相同方法生成一个样本;(2)我们将每个样本旋转35◦;(3)去掉所有的标签。因此,包含300个未标记的样本。我们已经在图2中表示了这些样本。
通过与标准神经网络(standard NN)的比较,研究了DANN的自适应能力。在这些toy实验中,两种算法共享相同的网络架构,隐藏层大小为15个神经元。我们甚至使用与DANN相同的程序训练NN。也就是说,我们使用目标样本(超参数λ = 6;DANN使用相同的值)去更新域回归器,但是我们禁用了隐藏层的反向传播。为此,我们通过省略编号为22和31的行来执行算法1。这允许在不使用任何正则化器的情况下恢复基于等式(5)的源风险最小化的神经网络学习算法,并同时训练等式(7)的域回归器来区分源域和目标域。有了这个toy经验,我们将首先说明与NN相比,DANN是如何适应其决策边界的。此外,我们还将说明由DANN隐藏层给出的表征如何比用NN给出的表征更不适合进行域任务(因为DANN的表征在域上不可分,这就是为什么我们在NN实验中需要一个域回归器)。我们记得这是我们提出的算法的基本思想。我们的广泛分析可见在图2中,上面的图与标准NN有关,下面的图与DANN有关。通过上下图,我们从四个不同的角度比较了NN和DANN,具体描述如下。
图2中的“Label Classification”列显示了DANN和NN对源例和目标例的标签预测问题的决策边界。如预期的那样,NN对源样本S的两类样本进行了准确的分类,但对目标样本并没有完全适应。相反,DANN的决策边界对源样本和目标样本的样本都进行了完美的分类。在研究任务中,DANN明显适应目标分布。
“Representation PCA”列研究了域自适应正则化器如何影响网络隐藏层提供的表征。对源数据点和目标数据点的所有表征集,即,应用主成分分析(PCA)得到图。因此,给定训练好的网络(NN或DANN), 和中的每一点都通过隐藏层映射到一个15维的特征空间,并通过PCA变换投影回一个二维平面。在DANN-PCA表征中,我们观察到目标点均匀地分布在源点之间;在NN-PCA表征中,目标点大量聚类,且其中没有源点。因此,标记目标点对给定DANN-PCA表征来说似乎是一个简单的任务。
为了进一步推动分析,PCA图用字母A、B、C和D标记了四个关键数据点,它们对应于原始空间中的moon极点(注意,原始点位置在第一列图中被标记)。我们观察到点A和点B在NN-PCA表征中非常接近,但它们显然属于不同的类别。同样的情况也发生在点C和点D。相反,这四个点在DANN-PCA表征相反的四个角上。还要注意目标点A (resp. D)(在原始空间中很难分类)DANN-PCA表征中位于簇中(resp. 簇)。因此,DANN所提出的表征更适合于适应问题。
“Domain Classification”列表示域分类问题的决策边界,由式(7)的域回归器给出。更准确地说,当时,将一个样本x归类为源样本,否则被归类为域样本。记住,在DANN的学习过程中,回归器努力区分源域和目标域,而隐藏表征则被对抗地更新以阻止其成功。如前所述,我们在NN学习过程中训练了域回归器,但不允许它影响学习到的表征。
一方面,DANN域回归器完全不能概括源和目标分布拓扑。另一方面,NN域回归器显示出较好的泛化能力(虽然不完全)。除此之外,它似乎能大致反映目标分布的旋转角度。这再次证实了DANN表征不允许对域进行区分。
列"Hidden Neurons"显示了隐藏层神经元的配置(通过方程4,我们知道每个神经元都是一个线性回归器)。换句话说,15条点线中的每一条对应着的第i 个分量的值为1/2的坐标,(因为这里隐藏层输出的是15维的特征)。我们观察到,标准NN神经元分为三个簇,每个簇允许为标签分类问题生成一条曲折的决策边界的直线。然而,大多数神经元也能够(大致)捕捉域分类问题的旋转角度。因此,我们观察到DANN的适应调节器阻止了这类神经元的产生。令人吃惊的是,NN神经元中的两种主要模式(即两条平行线从左下到右上跨越平面)在DANN神经元中消失了。
5.1.2 Unsupervised Hyper-Parameter Selection
为了进行无监督域自适应,需要以无监督方式设置超参数(如域正则化参数λ、学习率、我们方法的网络结构)的方法,即不参考目标域的标记数据。在接下来的5.1.3和5.1.4节的实验中,我们使用Zhong et al.(2010)提出的反向交叉验证(reverse cross-validation)方法的变体来选择每个算法的超参数,我们称之为反向验证(reverse validation)。
为了评估与超参数元组相关的反向验证风险(reverse validation risk),我们按以下步骤进行操作。给定已标记的源样本和未标记的目标样本,我们将每个集合分别划分为训练集(和,包含90%的原始样本)和验证集(和)。我们使用标记集和未标记目标集来学习一个分类器η。然后,使用相同的算法,我们使用自标记集和的未标记部分作为目标样本学习反向分类器ηr。最后,在源样本的验证集上对反分类器的ηr进行了评估。然后我们说分类器η具有的反向验证风险。该过程采用多个超参数值进行重复实验,所选分类器为反向验证风险最低的分类器。
注意,当我们训练神经网络结构时,验证集也被用作η的学习过程中的early stopping准则,自标记验证集被用作ηr学习过程中的early stopping准则。当我们用网络η学到的配置初始化反向分类器ηr的学习时,我们还观察到更好的准确度。
5.1.3 Experiments on Sentiment Analysis Data Sets
我们现在将我们提出的DANN算法的性能与一个有着方程(5)描述的隐藏层(NN)的标准神经网络和一个使用线性核的支持向量机(SVM)进行比较。我们在如Chen et al.(2012)进行预处理过的亚马逊评论数据集上对算法进行比较。该数据集包括四个域,每个域都由特定类型的产品(书籍、dvd磁盘、电子产品和厨房用具)的评论组成。评论被编码在5000维的unigrams和 bigrams的特征向量中,标签是二进制的:“0”表示产品排名为3星或以下,“1”表示产品排名为4星或5星。
我们执行12个域适应任务。给出了2000个标记源实例和2000个未标记目标实例。然后,我们在单独的目标测试集(在3000到6000个样本之间)上对它们进行评估。注意,神经网络和支持向量机不使用未标记的目标样本进行学习。
下面是关于每个学习算法使用的过程的更多细节,结果如表1所示。
- 对于DANN算法,自适应参数λ在10−2和1之间的9个对数范围内选择。隐藏层的大小是50或100。最后,学习率μ固定在10−3。
- 对于NN算法,我们使用与上面的DANN完全相同的超参数和训练过程,只是我们不需要自适应参数。注意,我们可以使用λ = 0的DANN实现(算法1)来训练NN。
- 对于SVM算法,超参数C是从10−5和1之间的10个对数值中选择的。这个取值范围与Chen et al.(2012)在他们的实验中使用的相同。
如第5.1.2节所述,我们对三种学习算法都采用了反向交叉验证来选择超参数,并以early stopping作为DANN和NN的停止准则。
表1a的““Original data”部分显示了所有算法的目标测试精度,表1b报告了根据泊松二项检验(Lacoste et al., 2012),一种算法的概率明显优于另一种算法。我们注意到,DANN的性能明显优于NN和SVM,概率分别为0.87和0.83。由于DANN和NN之间唯一的区别是域自适应正则化,我们得出结论,我们的方法成功地帮助找到适合目标域的表征。
5.1.4 Combining DANN with Denoising Autoencoders
我们现在想知道,我们的DANN算法是否可以改进由Chen et al.,(2012)提出的最先进的Marginalized Stacked Denoising Autoencoders(mSDA)方法所学习到的表征。简单地说,mSDA是一种无监督算法,它学习训练样本的一种新的鲁棒特征表征。它使用源样本和目标样本中未标记的部分学习一个从输入空间X到新的表征空间的特征映射。作为一种去噪自编码器算法,它发现了一种特征表示,可以(近似地)重构来自带噪声的对照组的样本的原始特征。Chen et al.,(2012)表明,使用mSDA和线性SVM分类器在Amazon Reviews数据集上达到了最先进的性能。作为SVM的替代方法,我们提出在mSDA生成的相同表征上应用我们的Shallow DANN算法(使用源样本和目标样本的表征)。请注意,即使mSDA和DANN是两种表征学习方法,它们优化的目标不同,可以互补。
我们在前面小节中描述的相同的Amazon Reviews数据集上执行这个实验。对于每一对source-target,我们使用50%的损坏概率和5层网络来生成mSDA表征。然后我们在这些表征上执行三种学习算法(DANN, NN, SVM)。更准确地说,按照Chen et al.(2012)的实验过程,我们使用5层输出和原始输入的串联作为新的表征。因此,每个样本现在都被编码在一个30,000维的向量中。注意,我们使用的参数与前面的第5.1.3小节相同,但是对于DANN和NN都使用了10−4的学习率μ 。表1a中“mSDA representation”列的结果证实了mSDA和DANN组合是一种合理的方法。实际上,泊松二项检验表明,DANN比NN和SVM的性能更好,概率分别为0.92和0.88,如表1b所示。
5.1.5 Proxy A-Distance
DANN算法的理论基础是Ben-David et al.(2006, 2010)的域自适应理论。我们声称,DANN发现了一种源和目标样本难以区分的表征。我们在5.1.1节的toy实验中已经指出了一些证据,但我们想用实际数据来证实它。为此,我们比较了Amazon Reviews数据集的各种表示表征上的Proxy A-distance(PAD);这些表征可以通过运行NN、DANN、mSDA或mSDA和DANN组合来获得。回想一下,如第3.2节所述,PAD是一个估计源和目标表征的相似性的度量。更准确地说,为了获得一个PAD值,我们使用以下步骤:(1)我们使用训练样本的源和目标表征去构造等式(2)的数据集;(2)将随机分成两个大小相等的子集;(3)在的第一个子集上使用大范围的C值训练线性支持向量机;(4)计算得到的分类器在的第二个子集上的error;(5)采用error最小的方法计算等式(3)的PAD值。
首先,图3a将5.1.3节实验中得到的DANN表征的PAD(使用得到表1的结果的超参数值)与在原始数据上计算的PAD进行了比较。正如预期的那样,DANN表征使PAD值下降。
其次,图3b比较了DANN表征的PAD和标准NN表征的PAD。由于PAD受隐藏层大小的影响(识别能力随着表征长度的增加而增加),我们在这里将两种算法的大小固定为100个神经元。我们还确定了DANN的自适应参数λ≃0.31;它是在我们之前对Amazon Reviews数据集进行的实验中大部分时间所选择的值。再一次说明了,DANN明显导致最低的PAD值。
最后,图3c给出了与5.1.4节实验相关的两组结果。一方面,我们重现了Chen et al. (2012)的结果,他们注意到mSDA表征比原始(原始)数据具有更大的PAD值。虽然mSDA方法明显有助于适应目标任务,但它似乎与Ben-David等人的理论相矛盾。另一方面,我们观察到,当在mSDA之上运行DANN时(使用得到表1的结果的超参数值),获得的表征有更低的PAD值。这些观察结果可能解释了DANN与mSDA程序结合时所提供的改进。
5.2 Experiments with Deep Networks on Image Classification
我们现在在一些流行的图像数据集及其修改版上进行DANN深度版本(参见小节4.2)的广泛评估。包括广泛使用深度学习方法的小图像的大规模数据集,以及OFFICE数据集(Saenko et al., 2010),这些数据集实际上是计算机视觉域自适应的标准,但包含的图像比较少。
5.2.1 Baselines
以下基线将在本分段实验中进行评估。训练source-only模型时不考虑目标域数据(网络中没有包含域分类器分支)。在显示类标签的目标域上训练train-on-target模型。该模型作为DA方法的上界,假设目标数据丰富且域间的位移相当大。
此外,我们将我们的方法与最近提出的基于subspace alignment (SA)的无监督DA方法(Fernando et al., 2013)进行了比较,该方法在新数据集上易于建立和测试,在与其他“shallow”数据挖掘方法的实验比较中也表现得很好。为了提高这个基线的性能,我们从{2,…, 60}范围选择最重要的free参数(主成分的数量),使目标域上的测试性能达到最大化。为了在我们的设置中应用SA,我们训练了一个source-only模型,然后将标签预测器(在最终线性分类器之前)最后一个隐含层的激活作为描述符/特征,并学习源和目标域之间的映射(Fernando et al., 2013)。
因为SA基线在适应特性后需要训练新的分类器, 且为了把所有的设置放到相等的水平上,我们为所有四种考虑方法(包括我们的;目标域上的性能在重新训练后保持大致相同)使用标准线性支持向量机重新训练标签预测器的最后一层 (Fan et al., 2008) 。
对于OFFICE数据集(Saenko et al.,2010),我们直接比较了我们的完整网络(特征提取器和标签预测器)的性能,并使用以前发表的结果与最近的DA方法进行了比较。
5.2.2 CNN architectures and Training Procedure
一般来说,我们从两个或三个卷积层组成特征提取器,从以前的工作中选择它们的精确配置。更准确地说,我们的实验使用了四种不同的结构。前三个如图5所示。对于OFFICE域,我们使用来自caffe包的预训练的AlexNet 模型(Jia et al., 2014)。适应架构与Tzeng et al.(2014)(A 2-layer domain classifier (x→1024→1024→2) is attached to the 256-dimensional bottleneck of fc7)相同
对于域自适应组件,我们使用了三个全连接层(x→1024→1024→2)(除了MNIST,其我们使用了一个更简单的(x→100→2)架构来加速实验)。我们承认,这些选择是任意的,如果调整架构的这一部分,可能会获得更好的适应性能。
对于损失函数,我们将和分别设为逻辑回归损失和二项式交叉熵。继Srivastava et al.(2014)之后,我们在训练SVHN架构时也使用了dropout和l2-norm限制。
其他超参数没有像第5.1节的小规模实验那样通过网格搜索(grid search)来选择,这样计算成本会很高。相反,在随机梯度下降过程中,使用以下公式调整学习率:
其中p为从0到1的线性变化的训练进度,μ0 = 0.01, α = 10, β = 0.75(在源域上对schedule进行了优化,以促进收敛和低误差)。momentum设置为0.9。
域自适应参数λ从0开始,通过下面的调度逐渐变为1:
在所有实验中γ被设置为10(schedule没有优化/调整)。这种策略允许域分类器在训练过程的早期阶段对噪声信号较不敏感。然而需要注意的是,这些λp仅用于更新特征提取器。为了更新域分类器组件,我们使用固定的λ = 1,以确保后者训练的速度与标签预测器一样快。
最后,需要注意的是,该模型是在128个大小的batches上训练的(图像通过均值减法进行预处理)。每个batch的一半由来自源域(带有已知标签)的样本填充,剩余部分由目标域(带有未知标签)组成。
5.2.3 Visualizations
我们使用t-SNE (van der Maaten, 2013)投影来可视化网络不同点的特征分布,同时对域进行颜色编码(图6)。正如我们已经观察到的DANN shallow版本(见图2),在目标域的分类精度方面,自适应的成功与否与此类可视化中域分布的重叠有很强的对应关系。
5.2.4 Results On Image Data Sets
我们现在讨论实验设置和结果。在每种情况下,我们在源数据集上进行训练,并在不同的目标域数据集上进行测试,域之间有相当大的变化(见图4)。结果总结在表2和表3中。
MNIST→MNIST-M. 我们的第一个实验处理MNIST数据集(LeCun et al., 1998)(源)。为了获得目标域(MNIST-M),我们将原始集合中的数字混合到从BSDS500(Arbelaez et al., 2011)中随机提取的彩色照片上。两个图像的操作定义为,其中i、j是轴的坐标,k是channel索引。换句话说,输出样本是通过从一张照片中获取一个patch,并在与某个数字的像素对应的位置上反转其像素来产生的。对于人类来说,分类任务只变得比原始数据集稍微困难一些(数字仍然可以清晰区分),而对于经过MNIST训练的CNN来说,这个域是相当不同的,因为背景和笔画不再是恒定的。因此,source-only模型的性能很差。我们的方法成功地对齐了特征分布(图6),这导致了成功的自适应结果(考虑到自适应是无监督的)。同时,subspace alignment (SA) (Fernando et al., 2013)对source-only模型的改进相当有限,从而突出了自适应任务的难度。
Synthetic numbers → SVHN. 为了解决对合成数据进行训练和对真实数据进行测试的常见场景,我们使用Street-View House Number数据集SVHN( Netzer et al.2011)作为目标域和合成数字作为源域。后者(合成数字)由我们自己通过改变文本(包括不同的一位数、二位数和三位数)、定位、方向、背景和笔画颜色以及模糊程度从WindowsTM字体生成的≈500,000张图像组成。人工选择变化程度来模拟SVHN,但两组数据集仍然存在较大差异,最大的差异在于SVHN图像背景中的结构杂波。
提出的基于反向传播的技术可以很好地覆盖仅使用源数据训练和使用已知目标标签的目标领域数据训练之间的近80%的差距。相比之下,SA Fernando et al. (2013)导致分类准确率略有下降(可能是降维过程中信息丢失的原因),这表明自适应任务比MNIST实验更具挑战性。
MNIST↔SVHN. 在本实验中,我们进一步增大了分布之间的差距,并对MNIST和SVHN进行了检验,这两种分布在外观上存在显著差异。即使没有自适应,训练SVHN仍是具有挑战性的-分类error在前150个epochs保持高值。因此,为了避免最终在一个较差的局部最小值,我们在这里不使用学习率退火方法。显然,MNIST→SVHN和SVHN→MNIST这两个方向的难度并不相同。由于SVHN更加多样化,在SVHN上训练的模型被认为更加通用,并能在MNIST数据集上合理地执行。事实上,结果也证实了该情况,且特性分布的出现也支持了这种情况。当我们将它们输入单独使用MNIST训练的CNN时,我们观察到域之间有相当强的分离,而对于SVHN训练的网络,这些特征更加混杂。这种差异可能解释了为什么我们的方法在SVHN→MNIST场景中通过自适应成功地提高了性能(见表2),但在相反的方向上却不能(SA在这种情况下也不能进行自适应)。从MNIST到SVHN的无监督自适应为我们的方法提供了一个失败的例子(我们不知道有任何无监督DA方法能够执行这种自适应)。
Synthetic Signs → GTSRB. 总的来说,这个设置类似于Syn Numbers→SVHN实验,除了特征的分布更为复杂,因为类的数量要多得多(43个而不是10个)。对于源域,我们获得了100,000幅模拟各种成像条件的合成图像(我们称之为Syn Signs)。在目标域,我们使用31,367个随机训练样本进行无监督自适应,其余的用于评估。再一次,我们的方法实现了一个合理的性能提高,证明它适合于synthetic-to-real的数据适应。
作为一个额外的实验,我们也评估了提出的算法的半监督域自适应,即提供少量标记目标数据。在这里,我们展示了430个带标签的样本(每类10个样本),并将它们添加到训练集用于标签预测器。图7显示了整个训练过程中验证error的变化。虽然图表清楚地表明,我们的方法在半监督设置中是有益的,但半监督设置的彻底验证有待于未来的工作。
Office data set. 最后,我们在OFFICE数据集上评估了我们的方法,这是三个不同领域的集合:AMAZON、DSLR和WEBCAM。与前面讨论的数据集不同,OFFICE是相当小的,其最大的域只有2817张标记图像分布在31个不同类别中。可用数据的数量对于成功训练深度模型是至关重要的,因此我们选择了在ImageNet(来自Caffe软件包的AlexNet (Jia et al., 2014))上预训练的CNN进行微调,正如最近DA的一些工作 (Donahue et al., 2014; Tzeng et al., 2014; Hoffman et al., 2013; Long and Wang, 2015)所做的那样。通过使用完全相同的网络架构,用域分类器取代基于域均值的正则化,我们使我们的方法与Tzeng et al. (2014)更具可比性。
在之前的工作之后,我们在三个最常用的迁移任务上评估了我们的方法的性能。我们的训练方案来自Gong et al. (2013); Chopra et al. (2013); Long and Wang (2015) ,在自适应过程中,我们使用了所有可用的已标记源样本和未标记目标样本(我们的方法的前提是目标域内有着丰富的未标记数据)。此外,所有源域都用于训练。在这种“fully-transductive”的设置下,我们的方法能够大大提高之前报道的无监督适应的最新准确度(表3),特别是在最具挑战性的Amazon→Webcam场景(两个域的域位移最大)。
有趣的是,在所有的三个实验中,随着训练的进行我们观察到轻微的过拟合,但它并没有破坏验证准确性。此外,关闭域分类器分支会使这种效果更加明显,由此我们可以得出结论,我们的技术可以作为一个正则化器。
5.3 Experiments with Deep Image Descriptors for Re-Identification
在本节中,我们将在行人再识别(re-id)问题中讨论所描述的自适应方法的应用。行人再识别的任务是将不同视角下的人联系起来。更正式地说,它可以定义如下:给出两套来自不同摄像机的图像(probe和gallery),这样每个在probe集上的人在gallery集上也有一张图片。不相交的相机视图,不同的照明条件,各种姿态和低质量的数据使这个问题甚至对人类来说都很困难(Liu et al.,2013,例如,在VIPeR上Rank1=71.08%)。
与上面讨论的分类问题不同,再识别问题意味着每个图像都被映射到一个向量描述符。然后使用描述符之间的距离来匹配来自probe集和gallery集的图像。Cumulative Match Characteristic(CMC)是评价再识别方法结果的常用方法。它是rank-k识别率(召回率)的一个图,即匹配到的gallery图像在距离probe图像最近的k张图像(根据描述符距离)内的概率。
大多数现有的研究对描述符映射进行训练,并在同一数据集中评估它们,这些数据集包含来自特定摄像机网络的具有相似成像条件的图像。然而,有几篇论文指出,当描述符在一个数据集上进行训练,在另一个数据集上进行测试时,由此产生的再识别系统的性能会显著下降。因此,很自然地将这种跨域的评估作为域自适应问题处理,其中每个摄像机网络(数据集)构成一个域。
最近,有几篇论文的再识别性能有了显著提高 (Zhang and Saligrama, 2014; Zhao et al., 2014; Paisitkriangkrai et al., 2015) ,Ma et al.(2015)报告了cross-data-set评价情景的良好结果。目前,深度学习方法(Yi et al., 2014)并没有达到最先进的结果,这可能是由于训练集的大小有限。因此,域自适应是改进深度再识别描述符的一个可行方向。
5.3.1 Data Sets and Protocols
继Ma et al.(2015)之后,我们使用PRID (Hirzer et al.), VIPeR (Gray et al., 2007), CUHK (Li and Wang, 2013) 作为我们实验的目标数据集。PRID数据集有两个版本,如Ma et al.(2015),我们使用single-shot的那个版本。它包含来自相机A的385个人的图像和来自相机B的749个人的图像, 200个人出现在两架相机中。VIPeR数据集也包含来自两个摄像机的图像,总共捕获了632人,对于每个人,两个摄像机视图中的每个视图都有一个图像。CUHK的数据集由5对相机拍摄的图像组成,每对相机拍摄某个人的两张图。我们只将包含第一对相机的数据集子集称为CUHK/p1(因为大多数论文使用这个子集)。
我们对不同的数据集进行了广泛的实验,其中一个数据集作为一个源域,即,它被用来以一种监督的方式训练对应probe和gallery图像之间的描述符映射。第二个数据集用作目标域,因此来自该数据集的图像无需probe-gallery也可使用。
更详细地说,CUHK作为目标域时使用CUHK/p1进行实验;CUHK作为源域时使用两个设置(“whole CUHK”和CUHK/p1)进行实验。以PRID为目标数据集,我们随机选择100个出现在两个摄像机视图中的人作为训练集。其他100名来自A摄像机的人的图像作为probe,所有来自B摄像机的图像(不包括训练中使用的图像(共649张)作为测试时的gallery。对于VIPeR,我们随机使用316人进行训练,其他所有人进行测试。CUHK的971人分为485人进行训练,486人进行测试。与Ma et al.(2015)不同,我们使用CUHK的第一对相机中的所有图像,而不是从每个相机视图中选择一个人的图像。我们还进行了两次实验,将整个CUHK数据集的所有图像作为源域,VIPeR和PRID数据集作为目标域,与原文一样(Yi et al., 2014)。
继Yi et al.(2014)之后,我们用镜像图像增强了我们的数据,在测试期间,我们计算两幅图像之间的相似性分数,作为两幅比较图像不同翻转所对应的四个分数的平均值。以CUHK为例,每个人的两张相机视图各有4张图像(包括镜像),则将所有16种组合的分数取平均值。
5.3.2 CNN architectures and Training Procedure
在我们的实验中,我们使用Yi et al.(2014)描述的siamese架构(深度度量学习或DML)来学习源数据集上的深度图像描述符。该体系结构包含两个卷积层(包含7 × 7和5 × 5滤波器组),其次是ReLU和max pooling,以及一个全连接层,输出500维的描述符。CNN内部有三个平行流用于处理图像的三个部分:上、中、下。第一卷积层在三个部分之间共享参数,并将第二卷积层的输出连接起来。在训练过程中,我们按照Yi et al.(2014)的方法计算每个batch内500维特征之间的pairwise余弦相似度,并反向传播batch内所有对的损失。
为了执行域对抗训练,我们构建了一个DANN体系结构。特性提取器包括上面讨论的两个卷积层(其次是max-pooling和ReLU)。在这种情况下,标签预测器被替换为包含一个全连接层的描述器预测器。域分类器在中间表征(x→500→1)中包含两个全连接的层,其中包含500个单元。
对于描述符预测器中的验证损失函数,我们使用了Yi et al.(2014)定义的具有相似参数的 Binomial Deviance损失:α = 2, β = 0.5, c = 2(负对的非对称代价参数)。如5.2.2所示,域分类器将以逻辑损失进行训练。
我们将学习率固定为0.001,momentum为0.9。采用了类似于5.2.2中所述的自适应schedule。我们还在第二个最大池化层的输出串联后插入了比率为0.5的dropout层。源数据使用128大小的batch,目标数据使用128大小的batch。
5.3.3 Results on Re-identification data sets
图9以CMC曲线的形式显示了八对数据集的结果。根据注释问题的难度,我们要么训练了50000次迭代(CUHK/p1→VIPeR, VIPeR→CUHK/p1, PRID→VIPeR),或训练了20000次迭代(其他5对)。
经过足够的迭代次数后,域对抗训练不断地提高了再识别的性能。对于涉及到PRID数据集的对,与其他两个数据集比较不同,其改进是相当可观的。总的来说,这证明了域对抗学习在分类问题之外的适用性。
图10进一步说明了在VIPeR→CUHK/p1实验中,自适应对学习到的描述符在源和目标集中的分布的影响。
6. Conclusion
本文提出了一种前馈神经网络的域自适应方法,可以基于源域的大量标注数据和目标域的大量未标注数据进行大规模训练。类似于许多以前的shallow和deep DA技术,自适应是通过对齐跨两个域的特征分布来实现的。然而,与以前的方法不同的是,对齐是通过标准的反向传播训练完成的。
该方法受到Ben-David et al.(2006,2010)域适应理论的激励和支持。DANN背后的主要思想是要求网络隐藏层学习一种表征,这种表征可以预测源样本标签,但不能提供关于输入域(源或目标)的信息。我们在shallow和deep前馈架构中都实现了这种新方法。后者通过引入一个简单的梯度反转层,允许在几乎任何深度学习包中进行简单实现。我们已经证明了我们的方法是灵活的,并在域自适应的各种基准上取得了最先进的结果,即用于情感分析和图像分类任务。
我们的方法的一个方便的方面是,域自适应组件可以添加到几乎任何可以用反向传播训练的神经网络体系结构中。为此,我们通过实验证明了该方法不仅适用于分类任务,而且可以用于其他前馈结构,例如用于行人再识别的描述符学习。