Skip to main content

搞清楚深度度量学习中哪些管用(以及为什么)

Created on January 28|Last edited on July 12

概述

深度度量学习(DML)旨在为如何最好地学习那些编译(图像)相似度的模型提供理论基础。通常情况下,深度度量学习设置包括训练一个深度神经网络,深度神经网络获取一个图像并返回一个密度值,这一密度值是向量表征(不同于比如说分类,分类中网络输出的是属性表征)。在完美世界里,这些表征之间的距离直接与原始数据空间中的“语义”相似度有关。举例来说:有三张图像——其中两张包含同一辆车,但旋转角度不同,另一张图像中是一辆其它品牌的车。良好的深度度量学习模型会提供每张图像的表征(嵌入),并且前两张图像的表征的距离比其中任意一个与第三张的表征的距离都要近。

__ 这种模型有很多用途,尤其是图像相似性任务,图像相似性任务可简化为图像检索功能:给定一张查询图像,以及别的图像组成的一个大型数据集,然后告诉我数据集中的哪些图像与查询图像在语义上相似。这种检索功能在很多领域发挥重大作用,例如产品建议、人脸识别、医学领域中将某种细胞类型的变异集合在一起。例如,Yang等人利用类似的基于相似性的方法来聚合相似的显微镜细胞图像,让医生更容易诊断疾病(Yang等人)。

image.png 图像来源: https://github.com/easonyang1996/DML_HistoImgRetrieval

很可惜,研究被不一致性所困扰——各家的论文都带有不同的训练协议、架构和参数,所以就不可能比较不同的技术并找出哪些管用、哪些不管用。为解决这一问题,我们这篇论文引入以下严格要素:

  1. 我们把深度度量学习研究管道的变化因素对最终报告结果的影响加以量化。这些因素包括比如使用不同的网络架构、不同的批大小、不同的数据集扩充、不同的权重正则化。我们也是最先观察小批次的选择对训练表现的影响,此前这个问题从未被正视。我们的结果表明,所有这些因素,如果调整恰当都能够提升表现,并且不依赖于实际提出的方法。如果一个人想使用表现最佳的模型,知道这些是有用的,尽管如此,这也打破了公平对比。因此,根据这些变化因素,我们提出了一个标准化的训练配置,这一训练配置能够使不同方法公平比较。
  2. 15篇论文的基准模型都使用我们公平、标准化的配置,这些论文涵盖了基线以及所宣称的最先进方法。我们发现,在公平比较中,近些年公布的大多数方法表现都相差无几,这使得深度度量学习研究的实际进展受到质疑。
  3. 尽管相差不大,有些方法仍然略胜一筹。为了弄明白其原因,我们研究了一组嵌入空间指标,以观察表现好的方法(隐式)优化了哪些属性。文献中常用一些指标来解释为什么比别的方式表现好,但我们发现, 当评估我们的大量研究目标时,这些指标就不能解释测试集的表现差异。为了矫正这一问题,我们引入了另外两个嵌入空间指标,这两个指标和测试表现有更强的联系。
  4. 最后,为了方便该领域的新人做研究,我们在附录中介绍了深度度量学习的关键方法、指标和方式,我们还提供了一个代码仓库,其中包含本论文全部东西的实现。

Screenshot 2020-12-01 at 18.44.08.png (绿色表示现有目标的正则化变量,橘色表示在我们的公平训练和公平评估设置下上述目标的表现。可以看到,有一个较大的表现平稳阶段,使用我们的正则化后才被打破。).

快捷链接



1. 搞清楚别人为什么能在深度度量学习中“作弊”

注意: 这部分的图表是基准数据集CARS196的结果。对于其它基准,请看论文;领悟到的远见卓识可以传播。.

为了了解所报告的表现对所用的训练管道的依赖程度,我们首先用基准检测不同的常见变化因素分别对表现提升起多大作用,比如主干网架构的选择、嵌入空间的维度、数据扩充协议以及批大小:

Full_Ablations_Cars.png

该图表将相对表现变化可视化,可以看出,在不同的方法之间,单独调节这些因素会使表现发生显著变化。这可被有意或无意地用来提升方法的表现,要不然就会在公平竞争中落后。

另外,我们还考虑到一个常常被忽略的因素,也就是小批次的构建:因为大部分深度度量学习方法对从小批次采样的元组采用排名代理,去研究这种批中的样本分布如何影响表现看起来也是合理的。

cars_meta_sampler.png

简而言之,提高类(进而负例)的多样性有明显好处,提高单个类中样本的多样性则不然;这是文献中最常忽略的问题。

因此,把这些因素量化就能提供一个统一的训练管道,即可在下一章节保证公平的对比。



2. 检测发布的方法在公平对比中表现如何

为了检测深度度量学习模型的实际表现有多大差距,我们在相似的训练管道中,既训练了近来最先进的方法,也训练了已建立的基线方法。

为了重现实验和进一步研究,我们公布了这些运行项,其中包含的信息有:与深度度量学习评估相关的全部指标测定的表现,以及嵌入空间指标的值和级数,这些还会在后续章节用到):




Run set
333


因为我们关心的主要是平均峰值表现,结果还被概括为一个表格,涵盖全部方法和基准:

Perf_table.png

可以看到,取得的大部分提升都是在标准偏差范围内,这与大部分方法宣称是最顶尖表现形成鲜明对比,通常差距并不大!



3. 为了取得最大的泛化表现,搞清楚嵌入空间应该是什么样的

然而,尽管在表现上存在明显的饱和,仍然能看出各种方法的零样本泛化表现的差异。因此我们要问自己,为什么有些方法比别的表现好——这些方法如何构建表征空间、学习表征空间以促使更好的泛化表现?

为了搞清楚这一点,我们研究了两个指标,这两个指标常用来解释表现差距: Intra-class距离和Inter-class距离。

Intra-class距离πinter用来衡量同一个类中的样本在嵌入空间中的聚合紧密程度,\pi_\text{inter}用来衡量同一个类中的样本在嵌入空间中的聚合紧密程度,\pi_\text{inter}$用来衡量不同类簇的投影距离。这两个指标常用来验证表现上的差异。

但是,通过研究测试指标与这些训练数据上的指标之间的关联性(利用第2部分中的W&B运行项,官方Github仓库有一个脚本,可用来下载、评估、可视化这些运行项),我们可以发现,这些指标的变化与下游的零样本测试表现之间并没有稳定不变的联系。

emb_metrics_croped.png

因此,我们引入了两个新指标,这两个新指标可能会帮我们弄明白:嵌入空间密度_ $\pi\text{ratio},这仅仅是Intra−class距离和Inter−class距离的比值,用来衡量训练数据嵌入到可用嵌入空间的均匀程度和密度;频谱衰减,这仅仅是Intra-class距离和Inter-class距离的比值,用来衡量训练数据嵌入到可用嵌入空间的均匀程度和密度;频谱衰减\rho(\Phi)$,实质上是通过奇异值分解(SVD)计算被学习的嵌入空间的奇异值分布,并使其与均匀分布做对比,目的就是测定为了完成训练目标使用了多少种特征。

我们发现以上两者都与泛化表现有更强的关联,这与Wang等人的后续工作相吻合,强调了嵌入空间均匀度对自监督表征学习中的泛化能力有近似好处。尤其是频谱衰减似乎是新类的泛化表现的最可靠预测器。仅凭直觉,一个人会把这归因于——较高的特征多样性就有更大几率在测试时获得新数据和类的描述符。



4. 用这个小技巧提高你的深度度量学习方法的泛化能力!

最后,我们努力把获得的多项深刻见解结合在一起,以提高深度度量学习方法的表现,其方法就是通过隐式地提高频谱衰减ρ(Φ)\rho(\Phi) 和密度πratio\pi_\text{ratio}

为了做到这一点,我们为每一个基于排名的深度度量学习目标引入一个正则项,称为rhorho-,很容易实现:只需把你的训练元组(xa,xp,xn1,...,xnN)(x_a, x_p, x_{n_1}, ..., x_{n_N})(其中的锚例(anchor sample)和正例来自同一个类)的负例xnix_{n_i}与任意的正例交换,这样既可以避免类被嵌入得过于紧密,又可以引入组内(intraclass)特征,尽管组内特征在训练任务中不那么重要,但在测试阶段会派上用场:懂得如何在一个类范围内分离样本,例如某个品牌的车,能够引入一些特征并有助于在测试阶段区分不同的车。

我们发现这个rhorho-_regularization确实会引入对测试阶段有利的特征,尽管这些特征在训练任务中并不那么重要。

我们首先来看一个小示例

toy_example.png

此处,训练数据由沿对角线分布的点群(标为不同颜色)组成,排名目标的目的是训练一个小型网络,用来提供一组球面投影,其中的点仍然是分离的(第二张图片)。 这很容易实现,新引入的测试点在水平和垂直上都与小型网络对齐,很难分离——尽管训练数据提供垂直对齐兼水平对齐的上下文!

现在ρ\rho-regularization就派上用场了,因为,通过学习在一个类范围内更显式地分离样本,引入了“垂直”分离和“水平”分离的概念(第二至最后一张图片)。想想看——网络要完成这个特定小任务,它只需要学习水平分离训练模型和垂直分离训练模型其中之一就够了。网络喜欢快捷!无论如何,在测试阶段有更多水平类或垂直类出现就再合理不过了。然后,正如所料,我们看到频谱衰减ρ(Φ) 增加了(“更平坦”的频谱值分布)。

最后,当运用到实际基准时,我们看到有很大的表现提升,尤其是当数据集的每个类有更多样本,例如数据集CUB200-2011和CARS196,在公平对比中明显胜过全部所谓的最先进方法。

results_a66.png



5. 结论

为了更好地了解深度度量学习的现状,我们在公平对比条件下对现有方法进行了大量研究,同时评估了大量的表现和嵌入空间指标。我们发现,大部分深度度量学习方法表现相差无几,尽管在发布时都宣称是最顶尖的表现。另外,各种方法之间确实存在细微差别,我们能够用两个新引入的嵌入空间指标的变化来解释这种差别的原因。

这项研究包含数千个训练运行项,每个都记录了多达40项指标——如果没有W&B来聚合不同服务器上的运行项并提供一个简单方式来总结和分享这些东西,这项工作就会需要相当多的时间,尤其是这么大的规模。


Iterate on AI agents and models faster. Try Weights & Biases today.