图像检索(imageretrieval)-13-Smooth-AP:Smoothingth。。
Smooth-AP: Smoothing the Path Towards Large-Scale Image Retrieval
Abstract
优化⼀个基于排名的度量,⽐如Average Precision(AP),是出了名的具有挑战性,因为它是不可微的,因此不能直接使⽤梯度下降⽅法进⾏优化。为此,我们引⼊了⼀个优化AP平滑近似的⽬标,称为Smooth-AP。Smooth-AP是⼀个即插即⽤的⽬标函数,允许对深度⽹络进⾏端到端训练,实现简单⽽优雅。我们还分析了为什么直接优化基于AP度量的排名⽐其他深度度量学习损失更有好处。
我们将Smooth-AP应⽤于标准检索基准:Stanford Online products和VehicleID,也评估更⼤规模的数据集:INaturalist⽤于细粒度类别检
索,VGGFace2和IJB-C⽤于⼈脸检索。在所有情况下,我们都改善了最先进的技术的性能,特别是对于更⼤规模的数据集,从⽽证明了Smooth-AP在真实场景中的有效性和可扩展性。
1 Introduction
本⽂的⽬标是提⾼“实例查询”的性能,其任务是:给定⼀个查询图像,根据实例与查询的相关性对检索集中的所有实例进⾏排序。例如,假设你有⼀张朋友或家⼈的照⽚,想要在你的⼤型智能⼿机图⽚集合中搜索那个⼈的所有图⽚;或者在照⽚授权⽹站上,您希望从⼀张照⽚开始查特定建筑或对象的所有照⽚。在这些⽤例中,⾼recall是⾮常重要的,不同于“Google Lens”应⽤程序从图像中识别⼀个物体,其中只有⼀个“hit”(匹配)就⾜够了。
检索质量的基准度量是Average Precision(AP)(或其⼴义变体,Normalized Discounted Cumulative Gain,其中包括⾮⼆进制相关性判断)。随着深度神经⽹络的兴起,端到端训练已经成为解决特定视觉任务的实际选择。然⽽,AP和类似度量的核⼼问题是,它们包含了⼀个既不可微也不可分解的离散排序函数。因此,他们的直接优化,例如梯度下降⽅法,是出了名的困难。
在本⽂中,我们引⼊了⼀种新的可微AP近似,Smooth-AP,它允许⽤于基于排序任务的深度⽹络的端到端训练。Smooth-AP是⼀种简单、优雅、可扩展的⽅法,它通过放宽在使⽤了sigmoid函数的⾮可微AP中的指⽰函数(indicator function),去采⽤即插即⽤的⽬标函数的形式。为了证明其有效性,我们在两个常⽤的图像检索基准上进⾏了实验,即Stanford Online Products和VehicleID,其中Smooth-AP优于所有最近的AP近似⽅法[5,54]以及最近的深度度量学习⽅法。我们还在三个⼤规模检索数据集(VGGFace2, IJB-C, INaturalist)上进⾏了实验,这些数据集⽐现有的检索基准⼤了⼀个数量级。据我们所知,这是第⼀个证明了在拥有数百万张图像的数据集上训练AP⽹络以完成图像检索任务的可能性
的⼯作。我们发现,与最近提出的所有AP近似⽅法相⽐,性能有了很⼤的提⾼,⽽且,有些令⼈惊讶的是,性能也显著优于强验证系统[14,36],这反映了这样⼀个事实,即度量学习⽅法在训练⼤规模检索系统时确实效率低下,⽽这些系统是由全局排名指标来衡量的。
splitwise2 Related Work
作为信息检索的⼀个基本组成部分[38],优化排序指标的算法多年来⼀直是⼴泛研究的焦点。⼀般来说,之前的⽅法可以分为两种研究路线,即度量学习和AP的直接近似。
Image Retrieval.  这是视觉界研究最多的话题之⼀。⼏个主题已经在⽂献中探索,例如,⼀个主题是关于检索的速度和探索近似近邻的⽅法[13,28,29,31,47,60]。另⼀个主题是关于如何获得⽤于检索的紧凑的图像描述符,以减少内存占⽤。描述符通常是通过局部特征的集合来构
建的,例如Fisher 向量[46]和VLAD[2,30]。最近,神经⽹络在学习图像检索的表⽰⽅⾯取得了令⼈印象深刻的进展[1,3,18,51,69],但普遍的是选择⽤于训练的损失函数;特别是,理想情况下,它应该是⼀种能够促进良好排名的损失。
Metric Learning.  为了避免直接优化基于排序的度量的困难,⽐如Average Precision ,有⼤量的⼯作集中在度量学习
[1,2,4,8,10,12,31,34,42,44,52,64,70,73]。例如contrastive[12]和triplet[73]损失,考虑成对或三对元素,迫使所有正的实例在⾼维嵌⼊空间内接近,⽽把负例的⽤固定的距离(边界)隔开。然⽽,正如Burges 等⼈[4]所指出的,由于pair/triplet 提供的排序-位置感知有限,模型很可能会浪费容量,以牺牲⾼阶正实例的排序为代价来提⾼低(差)阶正实例的排序。更有相关性的是,list-wise ⽅法[4,8,42,44,70]查看了检索集中的许多例⼦,并被证明可以提⾼训练效率和性能。尽管取得了成功,但度量学习⽅法的⼀个缺点是,它们⼤多是由最⼩化距离驱动的,因此忽略了改变排名顺序的重要性——后者在使⽤基于排序的度量时⾄关重要。
Optimizing Average Precision (AP).  最近在检索界,直接优化不可微AP 的趋势⼜重新流⾏起来。复杂的⽅法
[5,10,16,23,24,25,40,48,53,54,61,63,64,76,78]已经开发出来,以克服AP 优化中的不可分解和不可微性的挑战。⽅法包括:通过把每个相关性分数看作⾼斯随机变量[63]来创建⼀个分布排名、loss-augmented 推论[40]、直接损失最⼩化[61]、优化平滑和可微的AP 上界[40,41,78]、训练⼀个LSTM 去近似离散排名步骤[16]、可微的histogram binning[5,23,24,53,64](如listwise loss)、错误驱动的更新⽅案[11]和最近的⿊箱优化[54]⽅法。信息检索界在AP 优化⽅⾯取得了显著进展[4,9,19,35,50,63],但是这些⽅法在很⼤程度上被视觉界所忽视,这可能是因为它们从未在⼤规模图像检索中得到证明,或者由于所提出的平滑⽬标的复杂性。这项⼯作的动机之⼀是为了表明,随着深度学习研究的进展,例如
⾃微分、更好的优化技术、⼤规模数据集和快速计算设备,直接优化AP 近似值是可能的,⽽且实际上⾮常容易。
3 Background
在这⼀节中,我们定义了整篇⽂章中使⽤的符号。
Task definition. 给定⼀个输⼊查询,检索系统的⽬标是在检索集
中,基于他们与查询的相关性,排序所有的实
例。对于每个查询实例,检索集被分成正例和负例集,分别使⽤所有实例的同类和不同类组成。注意,对于每个查询,有⼀个不同
的正例⼦和负例集。
Average Precision (AP).  AP 是信息检索任务[38]的标准度量之⼀。它是⼀个单⼀值,定义为精确-召回曲线下的⾯积。对于⼀个查询,检索集中所有实例的预测相关性分数是通过⼀个选定的度量来度量的。在我们的例⼦中,我们使⽤余弦相似度(尽管Smooth-AP ⽅法与这个选择⽆关):
其中
分别是正、负相关性分数集合,v q 表⽰查询向量,v i 表⽰
向量检索集。查询的AP 可以计算为:
其中
分别表⽰实例i 在和中的排序。注意,在本论⽂中提到的排序假设为proper 排序,即不会有两个样本等价排序。
Ranking Function (). 指明AP 是基于排序的⽅法,直接优化的关键元素是定义⼀个实例i 的排序。在这⾥,我们遵循[50]将其定义为:
其中表⽰指⽰函数,表⽰任意集合,如。简单来说,其可以通过计算差分矩阵实现:
来⾃等式(2)的⽤于⼀个查询实例的真实AP 为:
Derivatives of Indicator. ⽤来计算AP的特殊指⽰函数是⼀个Heaviside step function [50],其分布式导数定义为Dirac delta function:
这要么是处处平坦的,即处处零梯度的;要么是不连续的,因此不能⽤基于梯度的⽅法对其进⾏优化(图2)。
4 Approximating Average Precision (AP)
如上所述,AP和类似的度量标准包括⼀个既不可微也不可分解的离散排序函数。在本节中,我们⾸先描述了Smooth-AP,它本质上⽤sigmoid函数代替了离散的指⽰函数,然后我们分析了它与其他排序损失的关系,如triplet loss[26,73]、FastAP[5]和Blackbox AP[54]。4.1 Smoothing AP
为了平滑排序过程,实现AP的直接优化,Smooth-AP使⽤了⼀个简单的解决办法,即使⽤sigmoid函数替换指⽰函数,其中
表⽰调节锐度的温度指标:
替换到等式(5)中,即真正的AP被近似为:
有着更严格的近似,且当是收敛于原来的指⽰函数。优化期间,⽬标函数被表⽰为:
平滑参数⽀配了替换指⽰函数的sigmoid的温度。它定义了⼀个操作区域,其中的差分矩阵的项是由Smooth-AP损失给定的梯度。
如果项排列错误,Smooth-AP将尝试将它们转换到正确的顺序。具体来说,⼀个⼩的值导致⼩的操作区域(图2 (b) -标注在sigmoid导数中可见梯度的⼩区域,即横轴0处的有梯度区域),和更严格的真实AP的近似。在零点周围梯度的强加速(图2 (b) - (c)第⼆⾏)是复制AP期望质量的基础,因为它⿎励实例在嵌⼊空间的转移,其导致排名的变化(因此改变AP),⽽不是改变⼀些⼤距离的实例但不改变排序。较⼤的值提供了⼀个⼤的操作区域,然⽽,以AP的⼀个松散的近似为代价,因为它偏离了原始的指⽰函数。
Relation to Triplet Loss. 在这⾥,我们证明了triplet损失(⼀个流⾏的替代排序损失)实际上是优化了距离度量⽽不是排序度量,其在使⽤排序
度量进⾏评估时结果是次优的。如等式(5)所⽰,优化AP的⽬标等价于最⼩化所有的,即violating项。我们之所以这样等价,是因为这些项指的是这样⼀种情况:就查询的相关性⽽⾔,负例排在了正例的前⾯。只有当所有正例都排在负例前⾯时,才能获得最佳AP。
例如,考虑⼀个具有预测相关性分数和ground-truth相关性标签的查询实例:
其中violating项有。
理想的AP损失实际上会不平等地对待每⼀个项,即模型将被迫花费更多的能⼒去转移s4和s1之间的顺序,⽽不是s3和s7,因为这会对AP的改善产⽣更⼤的影响。
对这些violating情况的另⼀种解释,也可以从triplet损失的⾓度得出。具体来说,如果我们将查询实例视为⼀个“anchor”,s j表⽰“anchor”与负例之间的相似性,s i表⽰“anchor”与正例之间的相似性。在本例中,triplet损失试图优化margin hinge损失:
这可以看作是对AP优化⽬标的可微近似,其中指⽰函数已被margin hinge损失取代,从⽽解决了梯度问题。然⽽,使⽤triplet损失来近似AP 可能会遇到两个问题:⾸先,所有的项都是线性结合的,并且在L triplet中同等对待。这样⼀个替代损失可能会迫使模型优化AP只有⼀个⼩的影响的项,如在triplet损失中,优化s4−s1和优化s7−s4是相同的。然⽽,从AP的⾓度来看,在⾼排名处纠正错误排序的实例是⼗分重要的。其次,线性导数意味着优化过程纯粹是基于距离(⽽不是排序顺序),这使得AP在评价时处于次优状态。例如,在triplet损失情况下,将s4−s1的距离从0.8减⼩到0.5等同于从0.2减⼩到−0.1。然⽽,在实践中,后⼀种情况(移动顺序)对AP计算的影响显然要⽐前⼀种情况⼤得多。
Comparison to other AP-optimising methods. Smooth-AP与最近引⼊的FastAP和Blackbox AP之间的
两个关键区别是Smooth-AP (i)提供了更接近AP的⽅法,以及(ii)实现起来更简单。⾸先,由于采⽤了sigmoid函数,Smooth-AP优化了排序度量,因此与AP具有相同的⽬标。相⽐之下,FastAP和Blackbox AP对不可微(分段常数)函数进⾏线性插值,这可能会导致与triplet损失相同的潜在问题,即优化距离度量,⽽不是排名。其次,Smooth-AP只需将AP⽬标中的指标函数替换为sigmoid函数即可。FastAP使⽤抽象,⽐如Histogram Binning,⽽Blackbox AP使⽤数值导数的变体。这些差异通过⼏个数据集上的Smooth-AP改进的性能得到了肯定(第6.5节)。
5 Experimental Setup
在本节中,我们将描述⽤于评估、测试协议和实现细节的数据集。接下来的步骤是采⽤⼀个预先训练好的⽹络,并使⽤Smooth-AP损失进⾏微调。具体来说,ImageNet预训练⽹络⽤于对象/动物检索数据集,⾼性能⼈脸验证模型⽤于⼈脸检索数据集。
5.1 Datasets
我们评估Smooth-AP损失的五个数据集包含⼴泛的领域和⼤⼩。其包括常⽤的检索基准数据集,以及⼀些额外的⼤规模(>100K图像)数据集。表1描述了它们的详细信息。
Stanford Online Product (SOP)[61]最初是为调查度量学习问题⽽收集的。其中包括12万张⽹上销售的产品图⽚。我们使⽤与[70]相同的评估协议和训练/测试分割。
VehicleID[67]包含26267个车辆类别的222,736幅图像,其中有13,134类⽤于训练(包含110178幅图像)。按照与[67]相同的测试协议,使⽤三个增⼤⼤⼩的测试集进⾏评估(称为small、medium、large),分别包含800个类(7,332幅图像)、1600个类(12,995幅图像)和2400个类(20,038幅图像)。
INaturalist[65]是⼀个⼤型的动植物物种分类数据集,旨在通过8142个类别的461,939张图像来复制真实世界的场景。它以许多视觉上相似的物种为特⾊,拍摄于各种各样的环境中。根据与现有基准测试相同的测试协议,我们从这个数据集中构建了⼀个新的图像检索任务,通过保留5,690个类⽤于训练,以及2,452个不可见类⽤于测试时评估图像检索[70]。我们将公开训练/测试split。
VGGFace2[7]是⼀个⼤规模的⼈脸数据集,拥有9131个受试者的331万张图像。这些照⽚在姿势、年龄、光照、种族和职业(如演员、运动员、政治家)⽅⾯有很⼤的变化。对于训练,我们使⽤带有8,631个⾝份的预定义训练集,对于测试,我们使⽤带有500个⾝份的测试集,总共有169K张测试图像。
IJB-C[39]是⼀种具有挑战性的⼈脸识别公开基准,它包含静态帧和视频中受试者的图像。通过将每帧CNN产⽣的向量平均为单个向量,每个视频都被视为单个实例。少于5个实例(图像或视频)的⾝份将被删除。
5.2 Test Protocol
在这⾥,我们描述了评估检索性能的协议,Average Precision (mAP)和Recall@K (R@K)。对于所有数据集,按序使⽤每个类的每个实例作
为查询,检索Ω由所有剩余的实例形成。我们确保每个类数据集包含⼏个图⽚(表1),这样如果使⽤类的⼀个实例的查询,这样在检索集中也能有⼀些剩余正例。对于对象/动物的检索评估,为了与现有的其他⼯作作⽐较,我们还使⽤Recall@K度量。对于⼈脸检索,AP是根据每个查询的结果输出排名计算的,⽽mAP得分是通过对数据集中每个实例的AP进⾏平均计算的,从⽽得到⼀个值。
5.3 Implementation Details
Object/animal retrieval (SOP, VehicleID, INaturalist). 与之前的⼯作⼀样[5,5,56,58,72,74],我们使⽤ResNet50[21]作为主⼲架构,它是在ImageNet[57]上预先训练的。我们将最后的softmax层替换为⼀个线性层(如[5,54],维度设置为512)。所有图像⼤⼩调整为256×256。在训练时,我们使⽤随机裁剪和翻转作为数据增强,在测试时,使⽤单⼀中⼼裁剪,⼤⼩为224×224。对于所有实验,我们都将设置为
0.01(6.4节)。
Face retrieval datasets (VGGFace2, IJB-C).  我们使⽤两个⾼性能⼈脸验证⽹络:该⽅法使⽤SENet-50架构[7][27]和最先进的ArcFace[14](使⽤ResNet-50),都在VGGFace2训练集上训练。对于SENet-50,我们遵循[7]和使⽤相同的⼈脸裁剪(延长建议的量),⼤⼩为224×224,我们L2-normalize最后的256维嵌⼊。对于ArcFace,我们使⽤提供的⼈脸检测器[14]⽣成归⼀化的⼈脸裁剪(112×112),并将其与预测的5个⼈脸关键点进⾏对齐,然后对最终的512维嵌⼊进⾏l2-归⼀化。对于这两种模型,我们将批⼤⼩设置为224,将设置为0.01(章节6.4)。
Mini-batch training.  在训练过程中,我们通过对类进⾏随机抽样,形成每个⼩batch,使每个出现的类每个类都有|P|个样本。在所有实验中,我们对嵌⼊进⾏L2-normalize,使⽤余弦相似度计算查询和检索集之间的相关性得分,将|P|设为4,使⽤学习率为10−5,权值递减为
4e−5的Adam[33]优化器。我们仅对Online Products数据集采⽤了与[5,54]相同的hard negative mining技术。否则,我们不使⽤特殊的抽样策略。
6 Results
在这⼀节中,我们⾸先通过检查不同模型在五个检索数据集上的性能来探讨所提出的Smooth-AP的有效性。具体来说,我们⽐较了最近在标准基准SOP和vehicleID上的AP优化和更⼴泛的度量学习⽅法(章节6.1),然后转向进⼀步的⼤规模实验,例如⽤于动物/植物检索的INaturalist,⽤于⼈脸检索的IJB-
C和VGGFace2(章节6.2-6.3)。然后,我们对影响Smooth-AP性能的各种超参数进⾏了ablation研
究:sigmoid温度、正集的⼤⼩和batch size(6.4节)。最后,我们将讨论各种发现并分析各种模型之间的性能差异(第6.5节)。
注意,虽然有丰富的论⽂使⽤这些图像检索基准去研究度量学习⽅法[15,17,20,32,34,37,42,43,45,49,54,61,62,64,68,70,71,72,74,75,77],我们只列出了最近最先进的⽅法,并试图与他们尽可能公平地⽐较,如没有模型集合,且使⽤相同的⾻⼲⽹络和图像分辨率。然⽽,在⼀些⼩的实验细节上仍然存在差异,⽐如嵌⼊维度、优化器和学习率。INaturalist数据集的定性结果如图3所⽰。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。