当前位置: 首页 > 科技观察

为深度度量学习十三年买单是不是错了?

时间:2023-03-20 11:31:48 科技观察

或许对每一个领域来说,停下来思考和低头赶路一样重要。“MetricLearning”就是学习一个度量空间,在这个空间中的学习是极其高效的。这种方法对于小样本分类效果很好,但是度量学习方法的效果还没有在回归或者强化学习等其他方法中使用。元学习领域的验证。在人脸识别、指纹识别等开放集分类任务中,往往类别数量较多,类中样本数量相对较少。在这种情况下,基于深度学习的分类方法往往会表现出一些局限性,例如缺乏类内约束、分类器优化困难等。这些局限性可以通过深度度量学习来解决。“在过去的四年里,深度度量学习领域的论文经常表示他们在准确率上有了很大的进步,基本上是十年前方法准确率的两倍多。”事实上,我们真的取得了如此惊人的进步吗?近日,来自FacebookAI和CornellTech的研究人员在论文预印本平台arXiv上发表了他们最新的研究论文,声称过去13年深度度量学习领域的研究进展“实际上并不存在”。论文链接:https://arxiv.org/pdf/2003.08505.pdf研究人员发现,这些关于度量学习的论文在实验设置上存在各种缺陷,例如实验比较不公平、测试集标签泄露、评价指标不合理等因此,他们提出了一种新的评估方法来重新审视度量学习领域的多项研究。最后,他们通过实验表明,现有论文所声称的改进确实“微不足道”。近年来,ArcFace、SoftTriple、CosFace等十种算法,与十三年前的Contrastive和Triplet基线方法相比,并没有实质性的改进。也就是说,论文声称的改进是稳步上升的:但实际情况是停滞不前的:之前论文的缺陷是什么?1.不公平的比较,以声称新算法的性能优于现有方法。保持尽可能多的参数不变是很重要的。这样就可以确定性能优化是新算法带来的提升,而不是额外参数引起的。但现有的度量学习论文研究并非如此。提高准确性的最简单方法之一是优化网络架构,但这些论文并没有保持这个基本参数不变。度量学习中架构的选择非常重要。较小数据集的初始精度会因所选网络而异。2017年一篇被广泛引用的论文使用了ResNet50,然后声称性能得到了巨大提升。这是有问题的,因为他们使用GoogleNet进行比较并且初始准确度要低得多(见表1)。2.Trainingwithtestsetfeedback该领域的大部分论文将每个数据集拆分,将类别中前50%的作为训练集,其余作为测试集。在训练过程中,研究人员定期检查模型在测试集上的准确性。也就是说,这里没有验证集,模型选择和超参数调整都是通过测试集的直接反馈来完成的。有些论文不定期检查性能,而是在预先设定的训练迭代次数后报告准确性。在这种情况下,如何设置迭代次数是不确定的,仍然根据测试集的性能调整超参数。这种方法违反了机器学习研究中的一个禁忌。根据测试集的反馈进行训练可能会导致测试集过度拟合。因此,可以质疑度量学习论文中报告的准确性的持续改进。3.常用准确度指标的缺点为了报告准确度,大多数度量学习论文使用的指标是Recall@K、NormalizedMutualInformation(NMI)和F1Score。但这些真的是最好的指标吗?图1显示了三个嵌入空间。尽管它们具有不同的特征,但每个Recall@1的分数都接近100%,表明该指标基本上没有提供信息。.新评估方法的上述缺点在度量学习领域掀起了一股“假热潮”。因此,研究人员提出了一种新的评估方法,希望能正确评估损失函数。为此,他们做了以下设置:1.公平比较和复现所有实验都在PyTorch上进行,使用ImageNet预训练BN-Inception网络。在训练期间冻结BatchNorm参数以减少过度拟合。批量大小设置为32。在训练期间,图像增强是通过随机调整大小的裁剪策略完成的。所有网络参数都使用RMSprop进行了优化,学习率为1e-6。在计算损失函数之前和评估期间,对嵌入进行L2归一化。2.通过交叉验证进行超参数搜索为了找到最佳损失函数超参数,该研究运行了50次贝叶斯优化迭代,每次迭代包括4次交叉验证:前半部分用于交叉验证,创建4个分区,第0-12.5%为第一个分区,12.5-25%为第二个分区,以此类推。后半部分用作测试集,与多年来在度量学习论文中使用的设置相同,以便于与之前论文的结果进行比较。超参数被优化为最大化验证准确性的平均值。对于最佳超参数,加载每个训练集分区的最高精度检查点,计算测试集的嵌入和L2归一化,然后计算精度。3.提供更多信息的准确性指标研究人员使用R的平均精度(MAP@R)来衡量准确性,它结合了平均精度和R精度的思想。R精度的一个弱点是它没有考虑正确检索的顺序。因此,本研究使用MAP@R。MAP@R的好处是它比Recall@1提供更多信息(见图1)。它可以直接从嵌入空间计算而无需聚类步骤并且易于理解。它奖励良好聚集的嵌入空间。实验1.LossandDataset研究人员选取了近年来metriclearning领域的多篇会议论文提出的先进方法(如表6所示),对11种loss和loss+miner的组合进行了实验。此前,度量学习领域的论文并没有面向验证损失,因此本研究纳入了该领域的两个损失。研究人员选取了度量学习领域广泛使用的3个数据集:CUB200、Cars196和StanfordOnlineProducts(SOP),选取这3个数据集也便于与以往论文进行对比。表3-5显示了训练运行的平均准确度,适用时具有95%的置信区间,最佳平均准确度以粗体表示。它还包括预训练模型的准确性,使用PCA将模型的嵌入值降低到512或128。2.PapervsReality首先,让我们看一下论文结果的总体趋势,图4(a)显示字段“我认为”的准确率得到了提升,即新方法完全淘汰了旧方法。但如图4(b)所示,实验结果与预期不符。研究人员发现,这些论文夸大了他们对两种经典方法的改进:对比损失和三元组损失。许多论文表示,他们的方法比对比损失好一倍多,比三元组损失好50%以上。这些改进是由于这些损失导致的非常低的准确性。其中一些数据来自2016年的LiftingStructureLoss论文。在他们实施对比损失和三元组损失时,他们每批次采样N/2个样本对和N/3个样本三元组(N是批次的大小)。因此,他们在每批次中只使用了一小部分数据信息。他们将triplets的margin设置为1,最优值在0.1左右。尽管存在这些实施缺陷,但大多数论文仍然简单地引用这些较低的数字,而不是依靠自己实施损失来获得更有意义的基线。通过良好的实施、公平的竞争环境以及以这些基线损失为代表的机器学习实践,我们获得了图4(b)所示的趋势图——实际上,它似乎是一个平滑的趋势。这说明无论是2006年还是2019年,各种方法的表现都差不多。也就是说,metriclearning算法并没有取得论文中所说的那么夸张的进步,论文中没有提到的前沿论文也值得商榷。十几年的科研投入到底是不是白白付出了?这篇论文出现后,很多人都在讨论:度量学习是否到了瓶颈期?是否应该继续朝这个研究方向前进?第一个问题的答案是肯定的,第二个问题的答案也是肯定的。中科院计算所博士生、知乎用户@王晋东认为:“其实大可不必被压垮,攻击别人,对这个领域的未来感到失望。”事实上,每个领域在经过长期的发展之后,难免会有研究者退一步反思。学术研究也适用于这个规律:“走得太远,忘记了你为什么开始”。来源:知乎@王晋东不在家。https://www.zhihu.com/question/394204248/answer/1219383067还有深度度量学习领域的研究者和CVPR2019论文的第一作者来回答,并把本文开头介绍了自己的研究项目。希望“能被从事这个领域的人看到,引导新入坑的人往正确的方向走。因为,我也踩过这些坑。”来源:知乎@王菣.https://www.zhihu.com/question/394204248/answer/1219001568质疑引发讨论,讨论引发反思,停下来思考和开车一样重要。你所在领域的讨论?参考链接:https://www.zhihu.com/question/394204248【本文为微信《机器之心》专栏原文翻译♂》机器之心(id:almosthuman2014)》】点此查看该作者更多好文