我报名参加金石计划1期应战——分割10万奖池,这是我的第30篇文章,点击查看活动概况

导读

今天是衡量学习丢失函数的第二部分,N-Pair和Angular丢失。

这是排序丢失总述的第二部分。榜首部分涵盖了比照丢失和三元组丢失。在这一部分中,给出了N-pairs和angular丢失。

N-Pairs Loss

比照丢失和三元组丢失都运用欧氏间隔来量化点之间的相似性。此外,练习小批中的每个锚点都与一个单个负样本配对。N-Pairs丢失改变了这两个假设。首先,运用余弦相似度来量化点之间的相似度。因而,N-pairs丢失运用两个向量之间的视点来比较嵌入,而不是范数。这并不是很大的改变,所以它的表达方式依然类似于单个三元组(a,p,n)的三元组,如下所示:

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

N-pairs的公式为单个三元组(a,p,n)运用余弦相似度。相同的嵌入的余弦相似性为1,不同的嵌入的余弦相似性为0。

但是,N-pairs丢失的核心思想是为每个锚都配对一个正样本,一起配对一切的负样本。

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

N-pairs公式将每个锚f_a与batch中的一个正样本f_p和一切的负样本f_n配对。

对于N-pairs,一个练习batch包含来自每个类的单个正样本对。因而,一个巨细为B的batch将有B//2对正样本对,每个锚都与(B-2)个负样本配对,如下图所示。

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

(左)三元组丢失对每个锚(f)有一个正样本(f+)和负样本(f-)。(右)N-pairs 锚与一个单一的正样本(f+)和batch中一切的负样本

N-pairs的直觉是运用batch中的一切负样原本指导梯度更新,从而加速收敛。

N-pairs丢失通常优于三元组丢失,并且没什么要注意的东西。练习batch的巨细的上限是由练习类的数量决定的,因为每个类只允许有一个正样本对。比较之下,三元组丢失和比照丢失batch的巨细仅受GPU内存的束缚。此外,N-pairs丢失学习了一个没有归一化的嵌入。这有两个结果:(1)不同类之间的鸿沟是用视点来界说的,(2)能够避免退化的嵌入增长到无限大,一个正则化器,来束缚嵌入空间,是必需的。

Angular Loss

Angular loss处理了三元组丢失的两个束缚。首先,三元组丢失假设在不同类别之间有固定的marginm。固定的margin是不可取的,因为不同的类有不同的类内改变,如下图所示:

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

t-SNE为斯坦福汽车数据集核算的特征嵌入示例,其间福特Ranger SuperCab(右)的图像分布比沃尔沃C30两厢车(左)更多样化。传统的三元组丢失难以处理这种不平衡的类内改变。提出的angular丢失处理了这个问题,通过在负样本点上最小化具有标准不变性的视点。

第二个束缚是三元组丢失是如何发生负样本的梯度的。下图显示了为什么负梯度的方向或许不是最佳的,也就是说,不能确保远离正样本的类中心。

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

假如不确保远离锚点x_a和正样本x_p属于的类,负样本x_n的梯度或许不是最优的,它不垂直于直线[x_a,x_p]。

为了处理这两个束缚,作者主张运用n的视点替代margin m,并在负样本点x_n处纠正梯度。不是基于间隔把点往远处推,方针是最小化视点n,即,使三角形a-n-b在n点处的视点更小。下一个图阐明angular loss的公式将负样本点x_n推离xc,xc为由x_a和x_p界说的局部簇的中心。另外,锚点x_a和正样本点x_p被互相拖向对方。

如何用深度学习来做检索:度量学习中关于排序损失函数的综述(2)

运用生成的三元组的视点束缚的阐明。(a)直接使∠n最小是不安稳的,因为它会把x_n拖向x_a。(b)更安稳的是最小化由[x_m,x_n,x_c]重构出来的三角形的∠n ‘,其间x_c是x_a,x_p之间的中心。

与原来的三元组损耗只依赖于两点(例如grad = x_a – x_n)比较, angular loss的梯度要稳健得多,因为它们一起考虑了一切三点。另外,请注意,与基于间隔的衡量比较,操纵视点n ‘不仅是旋转不变的,并且本质上也是标准不变的。

我的一些主张:

N-pairs和Angular loss通常优于原始的三元组丢失。然而,在比较这些办法时,需要考虑一些重要的参数。

  • 用于练习三元组丢失的采样策略会导致明显的功能差异。假如避免了模型崩溃,困难样本发掘是有效的,并且收敛速度更快。
  • 练习数据集的性质是另一个重要因素。当进行行人重辨认或人脸聚类时,我们能够假设每个类由单个簇表明,即具有小的类内改变的单一模式。然而,一些检索数据集,如CUB-200-2011和Stanford Online Products有很多类内改变。根据经验,hard triplet loss在人/人脸再辨认使命中作业得更好,而N-pairs和 Angular losses在CUB-200和Stanford Online Product数据集上作业得更好。
  • 当运用一个新的检索使命和调整一个新的练习数据集的超参数(学习率和batch_size)时,我发现semi-hard三元组丢失是最安稳的。它没有达到最好的功能,但它是最不或许退化的。

英文原文:ahmdtaha.medium.com/retrieval-w…