深度迁移度量学习 ———————————————————————————————— 作者: ———————————————————————————————— 日期:
ﻩ深度迁移度量学习 摘要:传统的迁移学习方法通常假定训练样本和测试样本在类似的场景中被捕获,使得它们的分布被假定为相同。这个假设在许多真实的视觉识别应用中不成立,特别是当在不同的数据集中捕获样本时。在本文中,我们提出了一种新的深度迁移度量学习(DTML)方法,通过将标记源域中的辨别知识传输到未标记的目标域来学习一组用于跨域视觉识别的层级非线性变换. 具体来说,我们的DTML通过最大化类间变化和最小化类内变化来学习深度量度网络,以及最小化网络的顶层处的源域和目标域之间的分布散度。为了更好地利用来自源域的判别信息,我们进一步开发了深度监督的迁移度量学习(DSTML)方法,通过包括对DTML附加目标,其中DTML的隐藏层和顶层的输出被联合优化。在交叉数据集的人脸验证和人员重新识别的实验结果验证了提出的方法的有效性。 1、引言 如何设计良好的相似性函数在许多计算机视觉和模式识别任务中发挥重要作用。通常,给定视觉问题的最佳相似度函数是任务特定的,因为不同任务的基础数据分布通常是不同的。机器学习的最新进展表明,比hand-crafed距离度量,直接从一组训练示例样本学习距离度量通常可以实现提出的性能要求。近年来,在文献中提出了各种度量学习算法,其中一些已成功应用于视觉分析应用,如面部识别,图像分类,人类活动识别,人物重新识别和视觉搜索。 现有的度量学习方法可以主要分为两类:无监督和监督。对于第一类别,学习低维子空间或mainfold以保留样本的几何信息。对于第二类别,学习辨别距离度量以最大化来自不同类别的样本的可分离性。由于使用训练样本的标签信息,监督度量学习方法更适合于识别任务。尽管近年来已经提出了许多监督度量学习算法,但是这些方法仍然存在两个缺点:1) 它们中的大多数通常是寻求单个线性距离来将样本变换为线性特征空间,这使得样本的非线性关系不能被充分利用。即使核方法可以用于解决非线性问题,这些方法仍然存在可扩展性问题,因为它们不能获得显式非线性映射函数; 2) 大多数人假设训练样本和测试样本是在类似的情景中捕获的,因此假设它们的分布是相同的。这个假设在许多真实的视觉识别应用中不成立,特别是当在不同的数据集中捕获样本时。 为此,在这项工作中,我们提出一种新的深度迁移度量学习(DTML)方法用于跨数据集(交叉数据集)的视觉识别。图1示出了所提出的方法的基本思想。
图1 提出的DTML方法的基本思想。对于来自源域和目标域的训练集中的每个样本,我们将其迁移到开发的深层神经网络。我们对网络顶部的所有训练样本的输出执行两个约束:1) 类间变化被最大化,并且类内变化被最小化2) 在网络的顶层的源域和目标域之间的分布散度被最小化。 我们的方法通过将区分性知识从标记的源域传输到未标记的目标域来学习一组分层的非线性变换,在该目标域下,类间变化被最大化并且类内变化被最小化,同时最小化网络的顶层处的源域和目标域之间的分布散度。为了更好地利用来自源域的判别信息,我们进一步开发了深度监督的迁移度量学习(DSTML)方法,通过在DTML中包括附加的目标,其中隐藏层和顶层的输出被联合优化。交叉数据集的人脸验证和人员重新识别的实验结果证明了所提出的方法的有效性。 2、相关工作 深度学习:近年来,由于其在各种任务中的卓越性能,深度学习在计算机视觉和机器学习中已经引起了很多关注。通常,深度学习旨在直接从原始数据学习层次特征表示。最近的进展表明,深度学习已经成功应用于许多视觉任务,如图像分类[10,20],对象检测[29],动作识别[21]和面部识别[17,30]。近年来已经提出了许多深度学习模型,代表性的方法包括深层卷积神经网络[20],深层神经网络[4],深层自动编码器[21],深层信任网络和深层监测网络。然而,他们中的大多数目的是通过深度模型而不是相似性度量来学习特征表示。最近,深度学习也已被用于度量学习,并且已经提出了几种度量学习方法。例如,Cai et al引入了一种使用堆叠独立子空间分析的非线性度量学习方法。Hu et al提出了一种区分性深度学习方法,其采用传统的神经网络,通过在网络的顶层执行大余量标准。虽然这些方法已经实现了相当好的性能,但是他们假定训练和测试样本在相同的环境中捕获,这在许多实际应用中并不总是满足。在这项工作中,我们通过学习深度量度网络并考虑源域和目标域之间的分布差异,提出了一种深度迁移度量学习方法。 迁移学习:迁移学习旨在解决来自源域的训练数据的分布与目标域的分布不同时的问题。在过去几十年中,已经提出了各种迁移学习算法,并且它们可以主要分为两类:基于实例的[8]和基于特征的[2]。对于第一类,为了在目标域中更好地学习,学习不同的权重以对源域中的训练样本进行排序。对于第二类,通常学习公共特征空间,其可以将从源域学习的信息传送到目标域。近年来,已经提出了几种迁移学习技术,并且代表性的方法包括域迁移支持向量机[11],迁移维数降低[27]和迁移度量学习[37,38]。虽然通过这些迁移学习方法可以获得一些建议结果,但是如果分布差大,它们中的大多数仅通过使用线性映射或核方法来考虑最小化源域和目标域之间的分布差异,并且通常不明确获得迁移函数。在这项工作中,我们借鉴了深度学习的想法,并提出一种深度迁移度量学习方法,通过从源域迁移的一些信息学习一个有区别的距离网络。 3、DTML 在本节中,我们首先介绍本工作中使用的符号。 然后,我们提出了深度指标学习框架。 最后,我们提出了建议的深度迁移度量学习方法。 3.1符号
设是源域中的训练集,其包含个例子,其中是d维特征向量,是的标签,是类的数量。类似地,我们表示是目标域中的训练样本,其中是集合中的样本数,是的标签。令是标记训练集,其包含仅来自源域或来自源域和目标域的样本 。在我们的实验中,我们考虑挑战性情况,其中标记的训练集合仅从源域采样并且没有从目标域获得标记的训练集合。 3.2深度度量学习 以前的度量学习通常寻求一个线性距离将样本转换为线性特征空间,与大多数以前的度量学习方法不同,我们构造一个深度神经网络,通过将每个样本x迁移给多层非线性变换来计算每个样本x的表示,如图 2。
图2我们的方法中使用的是网络架构。网络的输入是x,隐藏层和顶层的输出分别为h(1)和h(2),这里,W(m)和b(m)是要学习的网络的参数,1≤m≤2。 使用这样的网络来映射x的主要优点是可以明确地获得非线性映射函数。假设在设计的网络中存在M + 1个层,在第m层中存在p(m)个单元,其中m = 1,2,...,M。在第m层的x的输出计算为:
其中和是该层参数的权重矩阵和偏差; 并且φ是在分量方面操作的非线性激活函数,诸如广泛使用的tanh或sigmoid函数。非线性
映射f(m):是由和参数化的函数。对于第一层,我们假设和。 对于每对样本和,它们最终可以在我们设计的网络的第m层表示为和,并且它们的距离度量可以通过计算第m层的表示和之间的平方欧几里得距离来测量: 根据图嵌入框架,我们对顶层的所有训练样本的输出执行marginal fisher analysis(降维),并且形成强监督深度度量学习方法如下:
其中是平衡类内紧致性和类间可分性之间的重要性的自由参数; 表示矩阵Z的Frobenius范数; 是可调正正规参数; 和定义了类内紧致性和类间可分性,定义如下:
其中如果是的(k1类内)最近邻之一,则被设置为1,否则为0; 如果是的k2个类间最近邻之一,则被设置为1,否则为0。 3.3深度迁移度量学习 给定目标域数据Xt和源域数据Xs,当它们从不同的数据集捕获时,它们的概率分布通常在原始特征空间中不同。为了减小分布差异,我们期望使源域的概率分布和目标域的概率分布在变换空间中尽可能接近。为了实现这一点,我们应用最大平均偏差(MMD)准则来测量它们在第m层的分布差异,其定义如下:
通过组合(3)和(6),我们将DTML制定为以下优化问题: 其中β(β≥0)是正则化参数。 为了解决(7)中的优化问题,我们采用随机子梯度下降法来获得参数和。 (7)中的目标函数相对于参数和的梯度计算如下: 其中更新方程式计算如下: 其中m = 1,2,...,M-1。这里,操作⊙表示元素级乘法,并且给出为
。 算法1:DTML 输入:训练集:标记的源域数据Xs和未标记的目标域数据Xt; 参数:α,β,γ,M,k1,k2,学习率λ,收敛误差ε和总迭代数T. for k = 1, 2, · · · , T do { 向前传播到所有数据点;
通过(4)计算紧致度; 通过(5)计算分离度; 通过(6)获得MMD项; for m = M,M − 1, · · · , 1 do {
通过(8)和(9)通过反向传播计算和 } end //更新权重和偏差 for m = 1, 2, · · · ,M do {
} end
//降低学习率 通过(7)获得; 如果,转到输出。 } end
输出:权重和偏差。
然后,可以通过使用如下的梯度下降算法来更新和,直到收敛: