没有合适的资源?快使用搜索试试~ 我知道了~
跨批次记忆增强的深度度量学习方法
Xun Wang∗, Haozhi Zhang∗ , Weilin Huang†, Matthew R. ScottMalong Technologies{xunwang, haozhang, whuang, mscott}@malong.com63880用于嵌入学习的跨批次记忆0摘要0挖掘信息丰富的负样本对于深度度量学习(DML)至关重要,然而这个任务在小批量训练中受到固有限制,每次迭代只能访问一小批量的实例。在本文中,我们通过观察到即使在训练过程中模型参数在更新,嵌入特征也漂移得非常缓慢,从而确定了一种“缓慢漂移”现象。这表明在前面的迭代中计算的实例特征可以很大程度上近似当前模型提取的特征。我们提出了一种跨批次记忆(XBM)机制,用于记忆过去迭代的嵌入,使模型能够在多个小批次中收集足够的难负样本对,甚至整个数据集。我们的XBM可以直接集成到通用的基于对比的DML框架中,XBM增强的DML可以显著提高性能。特别地,没有炫耀的东西,仅使用我们的XBM的简单对比损失在三个大规模图像检索数据集上可以获得12%-22.5%的大幅度R@1改进,超过了最先进的方法[37, 26,2]。我们的XBM在概念上简单,易于实现-只需几行代码,且内存效率高-额外的GPU内存几乎可以忽略不计。代码可在以下网址获取:https://github.com/MalongTech/research- xbm。01. 引言0深度度量学习(DML)旨在学习一个嵌入空间,使得来自同一类的实例比来自不同类的实例更接近。作为计算机视觉中的一个基本问题,DML已经应用于各种任务,包括图像检索[39, 12, 7]、人脸识别[38]、零样本学习[47, 1,16]、视觉跟踪[17, 34]和人物再识别[44, 13]。0� 同等贡献 † 通讯作者0DML方法中的一类称为基于对比的方法,其目标可以通过小批量内的成对相似性来定义,例如对比损失[3]、三元组损失[29]、提升结构损失[22]、n对损失[30]、多相似性(MS)损失[37]等等。此外,大多数现有的基于对比的DML方法可以统一为通用对权重(GPW)框架下的加权方案[37]。基于对比的方法的性能在很大程度上依赖于其挖掘信息负样本的能力。为了从每个小批量中收集足够的信息负样本,已经付出了许多努力来改进采样方案,可以分为两个主要方向:(1)基于全局数据分布采样信息丰富的小批量[32, 6, 28, 32,9];(2)在每个单独的小批量中加权信息丰富的对[22, 30,37, 35, 40]。0已经开发了各种复杂的采样方案,但是硬挖掘能力受到小批量大小的限制,而小批量的大小取决于可能的训练对的数量。因此,为了改进采样方案,直接扩大小批量是一个直接有效的方法,可以立即提高基于对比的DML方法的性能。我们通过实验证明,当小批量在大规模数据集上变大时(图1,左和中),基于对比的方法(例如对比损失[3]和最近的MS损失[37])的性能可以显著提高。这并不令人意外,因为负样本对的数量随着小批量大小的增加呈二次增长。然而,仅仅扩大小批量并不是解决困难挖掘问题的理想方法,因为它有两个限制:(1)小批量大小受到GPU内存和计算成本的限制;(2)一个大的小批量(例如[29]中使用的1800)通常需要跨设备同步,这是一个具有挑战性的工程任务。收集丰富的信息对的一个简单方法是在每次训练迭代中计算整个训练集中实例的特征,然后从整个数据集中搜索难负样本对。显然,这种方法非常耗时,特别是对于大规模数据集,但它启发我们突破在单个小批量中挖掘难负样本的限制。4550556065704050607080904050607080906389016 32 64 128 256 批量大小(对数刻度)0召回率@1(%)0多样性三元组 对比损失016 32 64 128 256 批量大小(对数刻度)0召回率@1(%)00.0 0.01 0.05 0.1 0.2 0.5 1.0 内存比例0召回率@1(%)0图1.使用GoogleNet的R@1结果。左:SOP上的R@1与对比、三元组和多样性三元组方法的小批量大小。中间:R@1与数据集的小批量大小变化。右:R@1与对比损失下的内存比例在小批量大小为16时。0在本文中,我们发现了一个有趣的“慢漂移”现象,即实例的嵌入在训练过程中实际上以相对缓慢的速度漂移。这表明在过去的迭代中计算的小批量的深层特征可以与当前模型提取的特征相当接近。基于“慢漂移”现象,我们提出了一个跨批次内存(XBM)模块,用于记录和更新最近小批量的深层特征,从而允许在多个小批量之间挖掘信息丰富的样本。我们的XBM可以通过直接连接当前小批量中的每个锚点与最近小批量的嵌入来提供丰富的难负样本对。我们的XBM在概念上简单、易于实现且内存效率高。内存模块可以使用简单的入队出队机制来更新,利用过去迭代中计算的无需计算的特征,仅使用大约可忽略的0.2GB额外的GPU内存。更重要的是,我们的XBM可以直接集成到大多数现有的基于对比的方法中,只需几行代码即可显著提高性能。我们在三个广泛使用的大规模图像检索数据集上评估了我们的XBM:斯坦福在线产品(SOP)[22],店内服装检索(In-shop)[20]和北大车辆识别(VehicleID)[19]。在图1(中间和右侧)中,我们的方法展示了出色的鲁棒性,并在所有设置下带来了一致的性能改进;在相同的配置下,与相应的基于对比的方法相比,我们的XBM在所有三个数据集上都获得了非凡的R@1改进(例如对于对比损失,超过20%)。此外,借助我们的XBM,一个简单的对比损失可以轻松超越最先进的复杂方法,例如[37, 26,2],差距很大。与我们的工作并行进行,He等人[10]构建了一个动态字典作为先前小批量的队列,为无监督学习(使用对比损失)提供了丰富的负样本集。然而,与[10]不同,它使用特定的编码网络来计算当前小批量的特征,我们的特征更加高效,直接从当前模型的前向传播中获取。0而且,为了解决特征漂移的问题,He等人设计了一种动量更新,逐渐推进关键编码器,以确保不同迭代之间的一致性,而我们发现了“慢漂移”现象,表明当训练的早期阶段结束时,特征可以自行变得稳定。02. 相关工作0基于对比的度量学习(DML)。基于对比的DML方法可以通过计算嵌入空间中实例之间的成对相似性来进行优化[8,22, 29, 35, 30,37]。对比损失[8]是经典的基于对比的DML方法之一,它通过孪生网络学习判别度量。它鼓励正样本对的深层特征彼此更接近,负样本对的深层特征与固定阈值相距较远。三元组损失[29]要求正样本对的相似度高于负样本对(具有相同的锚点)一定的边界。受到对比损失和三元组损失的启发,已经开发了许多基于对比的DML算法,试图通过加权所有小批量中的所有对(例如,通过对数-指数公式来加权信息丰富的对,如N-pair loss[30],多相似性(MS)损失[37],或者根据对之间的距离均匀采样负样本对[40]。通常,基于对比的方法可以通过通用对权重(GPW)框架将其统一为加权公式。然而,大多数深度模型是使用SGD进行训练的,每次迭代只能访问一小批样本,而且相对于整个数据集来说,小批量的大小可能相对较小,尤其是对于大规模数据集。此外,随着模型学习正确嵌入大多数平凡对,大部分对缺乏信息。因此,传统的基于对比的DML技术缺乏难负样本对,这对于促进模型训练至关重要。为了缓解上述问题,已经开发了一些方法来收集小批量中包含的更多潜在信息,例如构建m�m̸m,(1)wij =eβ(Sij−λ)1 + �k∈Nieβ(Sik−λ) ,63900基于聚类的方法通常通过构建类级层次树[6]、更新类级签名来选择困难的负样本[32],或从单个聚类中获取样本[28]来丰富小批量中的信息。与这些方法不同,我们的XBM旨在直接跨多个小批量挖掘困难的负样本。0基于代理的DML。还有另一类DML方法旨在通过将每个样本与代理进行比较来学习嵌入,包括代理NCA[21]、NormSoftmax [46]和SoftTriple[25]。实际上,我们的XBM模块在某种程度上可以被视为代理。然而,代理方法和我们的XBM模块之间存在两个主要区别:(1)代理通常与模型权重一起优化,而我们的记忆嵌入直接来自过去的小批量;(2)代理用于表示类级信息,而我们的记忆嵌入计算每个个体实例的信息。基于代理的方法和我们增强的基于对比的方法都能够在训练过程中捕捉到整个数据集的全局分布。0特征记忆模块。非参数化记忆模块在各种计算机视觉任务中展现出强大的能力[36, 43, 41, 42, 48,18]。例如,外部记忆可以用于解决传统NCA[41]在大规模识别中的计算需求过高的问题,并在域自适应中鼓励实例不变性[48,42]。但是[41]中只优化了正样本对,而忽略了负样本。我们的XBM能够为基于对比的DML方法提供丰富的负样本对,更具一般性,并能充分利用过去的嵌入。其关键区别在于现有的记忆模块只存储当前小批量的嵌入[36],或者维护整个数据集[41,48]并进行移动平均更新,而我们的XBM作为一组小批量的动态队列进行维护,在极大规模的数据集中更加灵活和适用。03. 跨批次记忆嵌入网络0在本节中,我们首先分析现有基于对比的DML方法的局限性。然后我们介绍了“慢漂移”现象,这为我们的跨批次挖掘方法提供了支持的潜在证据。最后,我们描述了我们的XBM模块并将其集成到现有的基于对比的DML方法中。03.1. 深入研究基于对比的DML0设X = {x1, x2, ..., xN}表示一组训练实例,yi是xi的相应标签。嵌入函数f(∙; θ)将数据点xi投影到D维单位超球面上的向量vi= f(xi;θ)。我们在嵌入空间中测量一对样本的相似性。在训练过程中,我们将当前小批量内所有样本对的亲和矩阵表示为S,其中(i, j)元素是第i个样本和第j个样本的嵌入之间的余弦相似度:vTivj。为了进一步分析,我们使用[37]中描述的GPW框架来深入研究基于对比的DML方法。通过GPW,可以将基于对比的函数统一表示为一种对比加权形式:0维度单位超球面,vi = f(xi;θ)。我们在嵌入空间中测量一对样本的相似性。在训练过程中,我们将当前小批量内所有样本对的亲和矩阵表示为S,其中(i,j)元素是第i个样本和第j个样本的嵌入之间的余弦相似度:vTivj。为了进一步分析,我们使用[37]中描述的GPW框架来深入研究基于对比的DML方法。通过GPW,可以将基于对比的函数统一表示为一种对比加权形式:0L = 10m0i = 10�0yj ≠ yi wij Sij -0yj = yi wij Sij0�0其中m是小批量大小,wij是分配给Sij的权重。公式1显示了任何基于对比的方法都可以被视为一种关注信息对的加权方案。这里我们列出了对比损失、三元组损失和MS损失的加权方案。0- 对比损失。对于每个负样本对,w ij = 1 if S ij >λ,否则 w ij = 0。所有正样本对的权重都设置为1。0- 三元组损失。对于每个负样本对,w ij = |P ij |,其中Pij 是与锚点共享标签的有效正样本集合。形式上,P ij = {x i,k | y k = y i , and S ik < S ij + η},η是三元组损失中的预定义边界。类似地,我们可以得到正样本对的三元组权重。0-MS损失。与对比损失和三元组损失只能分配整数权重不同,MS损失[37]能够通过同时考虑多个相似性来更合理地加权配对。负样本对的MS权重计算如下:0其中β和λ是超参数,N i是锚点x i的有效负样本集合。正样本对的MS权重可以类似地计算。0事实上,发展基于对比的度量学习的主要路径是设计更好的小批次内配对的加权机制。一般来说,对于小批次(例如16或32),复杂的加权方案可以取得更好的效果(图1,左图)。然而,除了加权方案之外,小批次大小对于度量学习也非常重要。图1(左图和中图)显示,使用较大的小批次在大规模数据集上可以显著提高各种基于对比的方法的R@1。直观地说,当小批次大小增长时,负样本对的数量呈二次增长,这自然地提供了更多的有信息量的配对。我们不再开发另一个复杂的加权算法来加权有信息量的配对,而是采用了一种简单的方法。-+D(x, t; ∆t) ..= ||f(x; θt) − f(x; θt−∆t)||22(2)0.0.51.01.52.0t = 1000t = 100t = 10������∂L∂θ − ∂ �L∂θ������22 < Cǫ,(3)63910���� − �����0���0�������0卷积0卷积0卷积0池化0FCL2范数0�(∙, �)0������������0基于对比的损失0�������0�������0图2.交叉批次记忆(XBM)通过使用基于对比损失的方法,将每个锚点与记忆库进行比较来训练嵌入网络。记忆库以队列的形式维护,当前小批次被入队,最旧的小批次被出队。我们的XBM模块为每个锚点提供了大量有效的负样本,以便在许多基于对比的方法中提高模型训练效果。0然而,对于加权有信息量的配对,我们的直觉是简单地收集足够多的有信息量的负样本,其中简单的加权方案(如对比损失)可以轻松超越现有的加权方法。这提供了一种新的路径,即通过更直接但更高效的方法解决度量学习中的困难挖掘问题。直观地说,收集更多有信息量的负样本的一种直接解决方案是增加小批次的大小。然而,使用大型小批次训练深度网络受到GPU内存的限制,并且通常需要在多个GPU之间进行大量的数据流通信。为此,我们尝试通过引入一种替代方法来实现相同的目标,该方法使用非常低的GPU内存和最小的计算负担。我们提出了一个XBM模块,允许模型在多个过去的小批次上收集有信息量的配对,基于下面描述的“慢漂移”现象。03.2. 慢漂移现象0通常认为过去小批次的嵌入是过时的,因为模型参数在训练过程中不断变化[10, 32,25]。这些过时的特征通常被丢弃,但我们发现它们可以是一个重要的资源,同时又不需要计算,通过识别“慢漂移”现象。我们通过测量在不同训练迭代中计算的相同实例的特征之间的差异来研究嵌入的漂移速度。形式上,输入x在第t次迭代中的特征漂移(步长为∆t)定义为:0我们从零开始训练GoogleNet[33],使用对比损失,并计算在不同步骤下一组随机抽样实例的平均特征漂移:{10,100,1000}(见图3)。特征漂移始终很小,仅在少量迭代中发生,例如10次迭代。对于较大的步骤,例如100和1000,特征在早期阶段发生了剧烈变化,但是00 1 2 3 4 5 6 迭代次数(1e4)0特征漂移0图3.SOP数据集上不同步骤下的特征漂移。即使在较大的时间间隔下,例如∆t = 1000,训练实例的嵌入也只发生了相对较小的漂移。0在大约3K次迭代内变得相对稳定。此外,当学习率降低时,漂移变得极其缓慢。我们将这种现象定义为“慢漂移”,这表明在一定数量的训练迭代中,实例的嵌入可以非常缓慢地漂移,导致在不同训练迭代中计算的特征之间存在边际差异。此外,我们证明了这种“慢漂移”现象可以为基于对比损失的梯度误差提供一个严格的上界。为简单起见,我们考虑一个单一负样本对的对比损失 L = v T i v j ,其中 v i , v j是当前模型的嵌入,� v j 是 v j 的近似值。0引理1. 假设 || v j − � v j || 2 2 < � ,� L = v T i � v j ,并且 f满足Lipschitz连续条件,则与 v i 相关的梯度误差为,0其中C是Lipschitz常数。0引理1的证明和讨论见补充材料。从经验上看,C通常小于1anchors = f.forward(x)loss.backward()optimizer.step()Li =j̸= iwij �Sij −j= iwij �Sij∂Li∂vi=�yj̸=yiwij�vj −∂Li∂θ = ∂Li63920算法1. XBM的伪代码。0使用K个epoch常规训练网络f 初始化XBM为队列M0对于loader中的每个x,y: # x: 数据,y: 标签0# 内存更新 enqueue(M, (anchors.detach(), y))dequeue(M)0# 使用 M.sim = torch.matmul(anchors.transpose(), M.feats)比较anchors loss = pair_based_loss(sim, y, M.labels)0使用我们实验中使用的主干网络。引理1表明,在Lipschitz假设下,梯度的误差受到嵌入误差的控制。因此,“慢漂移”现象确保了跨小批次挖掘可以为基于对比的方法提供具有有效信息的负样本对。此外,我们发现“慢漂移”现象不仅在度量学习中存在,而且在其他常规任务中也存在,如补充材料中所示。03.3. 跨批次内存模块0我们首先描述了我们的跨批次内存(XBM)模块,包括模型初始化和更新机制。然后我们展示了我们的内存模块易于实现,可以直接作为插件模块集成到现有的基于对比损失的度量学习框架中,只需使用几行代码(在算法1中)。0XBM。由于特征在早期epoch中相对较大地漂移,我们使用1k次迭代对神经网络进行预热,使模型达到一定的局部最优状态,嵌入变得更加稳定。然后,我们通过使用预热模型计算一组随机抽样训练图像的特征来初始化内存模块M。形式上,M = { (� v 1 , � y 1 ) , (� v 2 , � y 2 ) , . . . , (� v m , � y M},其中� v i 初始化为第i个样本x i的嵌入,M是内存大小。我们定义一个内存比例R M =M/N,即内存大小与训练大小的比率。我们将我们的XBM模块作为队列来维护和更新:在每次迭代中,我们将当前小批次的嵌入和标签入队,并出队最早的小批次的实体。因此,我们的内存模块直接使用当前小批次的嵌入进行更新,无需进行任何额外的计算。此外,整个训练集可以缓存在内存模块中,因为存储嵌入特征所需的内存非常有限,例如512维浮点向量。请参阅补充材料中的其他更新策略。0XBM增强的基于对比对的深度度量学习。我们在基于对比对的深度度量学习中使用XBM进行难负样本挖掘。对于基于对比对的损失,基于[37]中的GPW,可以将其转化为小批量内的成对相似性的统一加权公式,如公式(1)所示,其中在小批量内计算了一个相似性矩阵S。为了执行我们的XBM机制,我们简单地计算当前小批量实例与内存库之间的跨批次相似性矩阵�S。形式上,内存增强的基于对比对的深度度量学习可以如下表示:0L = 10m0m �0m �0i =10�0�0M �0M �0�0� , (4)0其中�Sij =viTvj。公式(4)中的内存增强的基于对比对的损失与公式(1)中的普通基于对比对的损失形式相同,通过计算新的相似性矩阵�S。当前小批量中的每个实例与内存中存储的所有实例进行比较,使我们能够收集足够的信息丰富的对用于训练。损失Li相对于vi的梯度为:0M �0� y j = y i w ij � v j (5)0以及相对于vi模型参数(θ)的梯度可以通过链式法则计算得到:0∂ vi0∂ v i ∂ θ (6)0最后,通过随机梯度下降优化模型参数θ。引理1确保了由于嵌入漂移引起的梯度误差可以严格受到限制,从而最小化对模型训练的副作用。0难样本挖掘能力。我们研究了XBM机制的难样本挖掘能力。我们研究了内存模块在每次迭代中产生的有效负样本对的数量。具有非零梯度的负样本对被认为是有效的。统计结果如图4所示。在整个训练过程中,我们的内存模块每次迭代稳定地贡献约1000个难负样本对,而原始的小批量机制只生成不到10个有效对。图5展示了定性的难样本挖掘结果。以自行车图像作为锚点,小批量提供了有限且不同的图像,例如屋顶和沙发,作为负样本。相反,我们的XBM提供了与自行车相关的图像以及其他样本,例如车轮和衣服。这些结果清楚地证明了我们提出的110102103104639300 0.2 0.4 0.6 0.8 1 20 40 60 迭代次数(1e3)0负样本数量(对数刻度)0内存小批量0图4.每次迭代从小批量和内存中获得的有效负样本数量。模型在SOP数据集上训练,R M = 1,小批量大小为64,GoogleNet作为骨干网络。0图5.给定一个锚点图像(黄色),来自小批量(灰色)和内存(紫色)的正样本(绿色)和负样本的示例。当前小批量只能提供少量信息较少的有效负样本,而我们的XBM模块可以提供各种信息丰富的负样本示例。0XBM可以提供多样、相关甚至细粒度的样本来构建负样本对。我们的结果证实了:(1)现有的基于对比对的方法在学习区分模型时缺乏信息丰富的负样本对;(2)我们的XBM模块可以以一种非常简单而高效的方式显著增强基于对比对的深度度量学习的难样本挖掘能力。更多示例请参见补充材料。04. 实验和结果04.1. 实现细节0为了公平比较,我们遵循[22, 30, 23,14]中的标准设置。具体来说,如果没有提到,我们采用GoogleNet[33]作为默认的主干网络。主干的权重是在ILSVRC2012-CLS数据集[27]上进行预训练的。全局池化层后添加了一个512维的全连接层,并进行l2归一化。默认的嵌入维度设置为512。对于所有数据集,输入图像首先被调整为256×256,然后裁剪为224×224。训练过程中使用随机裁剪和随机翻转进行数据增强。测试时,我们只使用0在每个实例上使用单个中心裁剪计算嵌入,如[22]所示。在所有实验中,我们使用Adam优化器[15]进行优化,权重衰减为5e-4,并使用PK采样器(P类别,每类K个样本)构建小批量。04.2. 数据集0我们的方法在三个大规模数据集上进行了少样本图像检索。报告了Recall @k。训练和测试协议遵循标准设置:Stanford OnlineProducts(SOP)[22]包含22,634个类别的120,053个在线产品图像。每个类别只有2到10个图像。根据[22],我们使用59,551个图像(11,318个类别)进行训练,使用60,502个图像(11,316个类别)进行测试。In-shop服装检索(In-shop)包含7,986个类别的72,712个服装图像。根据[20],我们使用3,997个类别的25,882个图像作为训练集。测试集被分为一个包含3,985个类别的查询集,其中包含14,218个图像,以及一个包含3,985个类别的图库集,其中包含12,612个图像。PKUVehicleID(VehicleID)[19]包含26,267个车辆类别的221,736个监控图像,其中13,134个类别(110,178个图像)用于训练。根据[19]中描述的测试协议,在预定义的小型、中型和大型测试集上进行评估,分别包含800个类别(7,332个图像)、1600个类别(12,995个图像)和2400个类别(20,038个图像)。04.3. 消融研究0我们在SOP数据集上使用GoogleNet进行消融研究,以验证我们的XBM模块的有效性。内存比例。我们的跨批次难例挖掘的搜索空间可以通过内存比例RM进行动态控制。我们在三个基准测试上说明了内存比例对XBM增强对比损失的影响(如图1右侧所示)。首先,我们的方法在所有三个数据集上使用各种RM配置相对于基线(RM =0)都有超过20%的改进。其次,我们的方法使用16个小批量可以比使用256个小批量的非内存对应物获得更好的性能,例如,在recall@1上的改进为71.7%→78.2%,同时大大节省了GPU内存。更重要的是,我们的XBM可以在小的RM(例如,在In-shop上,recall@1从52.0%提高到79.4%,RM =0.01)的情况下大大提升对比损失,并且当内存扩展到适度大小时,其性能将趋于饱和。这是有道理的,因为具有小RM(例如1%)的内存已经包含了数千个嵌入,以在大规模数据集上生成足够的有效负实例,特别是在In-shop或VehicleID等细粒度数据集上。因此,我们的内存方案可以在各种内存比例下具有一致且稳定的性能改进。5060708063940车辆ID0小型 中型 大型 Recall @ K (%) 1 10 100 1000 1 10 20 30 40 50 1 5 1 5 1 50对比 64.0 81.4 92.1 97.8 77.1 93.0 95.2 96.1 96.8 97.1 79.5 91.6 76.2 89.3 70.0 86.0 对比 w/ M 77.8 89.8 95.4 98.5 89.1 97.3 98.1 98.4 98.7 98.894.1 96.2 93.1 95.5 92.5 95.50三元组 61.6 80.2 91.6 97.7 79.8 94.8 96.5 97.4 97.8 98.2 86.9 94.8 84.8 93.4 79.7 91.4 三元组 w/ M 74.2 87.4 94.2 98.0 82.9 95.7 96.9 97.4 97.898.0 93.3 95.8 92.0 95.0 91.3 94.80多尺度损失 69.7 84.2 93.1 97.9 85.1 96.7 97.8 98.3 98.7 98.8 91.0 96.1 89.4 94.8 86.7 93.8 多尺度损失(带记忆模块) 76.2 89.3 95.498.6 87.1 97.1 98.0 98.4 98.7 98.9 94.1 96.7 93.0 95.8 92.1 95.6表1.记忆增强(带记忆模块)配对学习方法与各自基线在三个数据集上的检索结果。016 32 64 128 256 批大小(对数刻度)0召回率@1(%)0对比损失对比损失(带记忆模块)对比损失(带记忆模块*)0图6.使用不同的小批量大小训练的对比损失性能。与传统的配对学习方法不同,增强的对比损失在随机洗牌小批量采样器下同样有效(用上标*表示)。0小批量大小。小批量大小对许多配对学习方法的性能至关重要(图1左侧)。我们进一步研究了它对我们的记忆增强配对学习方法的影响(如图6所示)。我们的方法将小批量大小从16增加到256,性能提升了3.2%,而原始的对比方法性能提升了25.1%。显然,借助提出的记忆模块,小批量大小的影响显著降低。这表明小批量大小的影响可以通过我们的记忆模块得到很好的补偿,从而提供了更加有原则性的解决方案来解决配对学习中的难例挖掘问题。0使用通用配对学习(GPW)框架。我们的记忆模块可以直接应用于GPW框架。我们使用对比损失、三元组损失和多尺度损失进行评估。如表1所示,我们的记忆模块可以显著且一致地改进原始的配对学习方法在所有基准数据集上的性能。具体而言,记忆模块使对比损失的性能从64.0%提升到77.8%,使多尺度损失的性能从69.7%提升到76.2%。此外,在复杂的采样和加权方法的支持下,多尺度损失在VehicleID大型测试集上的召回率@1相比对比损失提高了16.7%。我们的记忆模块可以轻松填补这样的差距,并进一步提高5.8%。多尺度损失的改进较小,因为它将极难的负样本赋予较大权重,而这些负样本可能是异常值,而对比损失的等权重方案可以减弱这种有害影响。有关详细信息,请参见0方法 时间 GPU内存 R@1 增益0继续。批大小为64,训练时间为2.10小时,占用内存为5.12GB,准确率为63.9%。0继续。批大小为256,训练时间为4.32小时,增加内存15.7GB,准确率增加7.8%。继续使用1%记忆比率,训练时间为2.48小时,增加内存0.01GB,准确率增加5.9%。继续使用100%记忆比率,训练时间为3.19小时,增加内存0.20GB,准确率增加13.5%。表2.在64、256小批量大小和1%、100%记忆比率下的训练时间和GPU内存消耗。0分析见补充材料(SM)。结果表明:(1)无论是简单的(例如对比损失)还是精心设计的加权方案(例如多尺度损失),我们的记忆模块都能大幅改进,(2)在我们的记忆模块的作用下,简单的对比损失等一种简单的配对加权方法能够轻松地大幅超越最先进的方法,例如多尺度损失[37]。0记忆和计算成本。我们分析了我们的XBM模块在内存和计算成本上的复杂性。在内存成本方面,XBM模块M(O(DM))和亲和矩阵S(O(mM))需要极小的0.2GBGPU内存来缓存整个训练集(表2)。在计算复杂性方面,亲和矩阵S(O(mDM))的成本随着内存大小M线性增加。通过GPU实现,与前向和后向过程相比,它需要合理的额外训练时间的34%。值得注意的是,XBM在推理阶段不起作用。它只需要额外的1小时训练时间和0.2GB内存,就能够使用单个GPU实现惊人的13.5%性能提升。此外,我们的方法可以扩展到极大规模的数据集,例如10亿个样本,因为我们的XBM模块可以使用小内存比率生成一组丰富的有效负样本,这需要可接受的成本。04.4. 定量和定性结果0在本节中,我们将我们的XBM增强对比损失与最先进的DML方法在图像检索的三个基准上进行比较。即使我们的方法可以在更大的小批次大小下达到更好的性能(图6),我们只使用了64个小批次,可以在单个GPU上使用ResNet50[11]进行实现。由于骨干架构和嵌入维度可能会影响召回度指标,我们列出了我们的方法在不同配置下的结果。Recall@K (%)1101001000HDC [45]G38469.584.492.897.7A-BIER [24]G51274.286.994.097.8ABE [14]G51276.388.494.898.2SM [32]G51275.287.593.797.4Clustering [31]B6467.083.793.2-ProxyNCA [21]B6473.7---HTL [6]B51274.888.394.898.4MS [37]B51278.290.596.098.7SoftTriple [25]B51278.686.691.895.4Margin [40]R12872.786.293.898.0Divide [28]R12875.988.494.998.1FastAP [2]R12873.888.094.998.3MIC [26]R12877.289.495.6-Cont. w/ MG51277.489.695.498.4Cont. w/ MB51279.590.896.198.7Cont. w/ MR12880.691.696.298.7Table 3. Recall@K(%) performance on SOP. ‘G’, ‘B’ and ‘R’denotes applying GoogleNet, InceptionBN and ResNet50 as back-bone respectively, and the superscript is embedding size.Recall@K (%)11020304050HDC [45]G38462.184.989.091.292.393.1A-BIER [24]G51283.195.196.997.597.898.0ABE [14]G51287.396.797.998.298.598.7HTL [6]B51280.994.395.897.297.497.8MS [37]B51289.797.998.598.899.199.2Divide [28]R12885.795.596.997.5-98.0MIC [26]R12888.297.0-98.0-98.8FastAP [2]R51290.997.798.598.898.999.1Cont. w/ MG51289.497.598.398.698.798.9Cont. w/ MB51289.997.698.498.698.898.9Cont. w/ MR12891.397.898.498.799.099.1Table 4. Recall@K(%) performance on In-Shop.151515GS-TRS [5]75.083.074.182.673.281.9BIER [23]G51282.690.679.388.376.086.4A-BIER [24]G51286.392.783.388.781.988.7VANet [4]G204883.395.981.194.777.292.9MS [37]B51291.096.189.494.886.793.8Divide [28]R12887.792.985.790.482.990.2MIC [26]R12886.993.4--82.091.0FastAP [2]R51291.996.890.695.987.595.163950公平比较的表3、4和5中的结果。在SM中查看更多数据集上的结果。结果表明,我们的XBM模块配合对比损失,在所有数据集上都能大幅超越最先进的方法。在SOP上,我们的R128方法的性能超过了当前最先进的方法MIC [26],提高了77.2% →80.6%。在In-shop上,我们的R 128方法0与MIC相比,我们的方法在R 512上的性能甚至比FastAP[2]更高,提高了88.2% →91.3%。在VehicleID上,我们的方法明显优于现有方法。例如,在大型测试数据集上,使用相同的G512,它将最近的A-BIER [24]的R@1大幅提高了81.9% →92.5%。使用R 128,我们的方法超过了FastAP [2]使用R512获得的最佳结果,提高了87% →93%。图7显示了我们的内存模块促进了更具辨别力的编码器的学习。例如,在第一行,我们的模型意识到了灯下的鹿,这是查询产品的一个特定特征,并检索到了正确的图像。此外,我们还在底部行中呈现了一些糟糕的情况,其中我们的检索结果在视觉上更接近查询,而不是基线模型的结果。在SM中查看更多可视化结果。05. 结论0我们提出了一个概念上简单、易于实现和内存高效的跨批次挖掘机制,用于基于对比损失的成对深度度量学习。在这项工作中,我们发现了嵌入在训练过程中漂移异常缓慢的“慢漂移”现象。然后,我们提出了一个跨批次内存(XBM)模块,用于动态更新最近多个小批次实例的嵌入,这使我们能够收集足够的跨多个小批次甚至整个数据集的困难负样本对。没有0方法0小 中 大0带记忆模块的连续 G 512 94.0 96.3 93.2 95.4 92.5 95.5带记忆模块的连续 B 512 94.6 96.9 93.4 96.0 93.0 96.1带记忆模块的连续 R 128 94.7 96.8 93.7 95.8 93.0 95.8表5。在VehicleID上的召回率@ K (%)性能。0图7。没有和有记忆模块的前4个检索图像。正确结果用绿色标出,错误结果用紫色标出。0提出的XBM可以直接集成到通用的基于对比的DML框架中,并显著提高现有基于对比的方法在图像检索上的性能。特别是,使用我们的XBM,对比损失可以轻松地超过三个大规模数据集上的最先进方法[37, 26,2]。这为解决各种计算机视觉任务中的困难负样本挖掘问题开辟了新的道路。此外,我们希望动态内存机制可以扩展到改进各种机器学习任务,因为“慢漂移”不仅发生在DML中。[1] Maxime Bucher, St´ephane Herbin, and Fr´ed´eric Jurie. Im-proving semantic embedding consistency by metric learningfor zero-shot classiffication. In ECCV, 2016.[2] Fatih Cakir, Kun He, Xide Xia, Brian Kulis, and StanSclaroff. Deep metric learning to rank. In CVPR, 2019.[3] S. Chopra, R. Hadsell, and Y. LeCun. Learning a similaritymetric discriminatively
下载后可阅读完整内容,剩余1页未读,立即下载
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)