Ranked List Loss for Deep Metric Learning | 阅读笔记

Ranked List Loss for Deep Metric Learning | 阅读笔记


这是CVPR2019上一篇度量学习的论文。

摘要

深度度量学习(DML)的目的是学习可以捕获数据点之间语义相似性信息的嵌入。在DML中使用的现有成对或三重损失函数在模型改进时由于大量的平凡对或三元组对而导致收敛缓慢。为了改善这一点,最近提出了基于排序的结构化损失,以结合多个示例并利用其中的结构化信息,它们收敛得更快,并实现了最先进的性能。在此基础上,作者提出现有排序激励结构损失的两种局限性,并提出了一种新的排序列表损失方法来解决这两种问题。首先,首先,给定查询,仅结合一部分数据点以构建相似性结构。因此,忽略了一些有用的示例,并且该结构的信息量较少。为了解决这个问题,提出了通过利用图库中的所有实例来构建基于集合的相似性结构。将样本分为正样本集和负样本集,目标是利用一个margin使查询更接近正样本集,而不是负样本集。其次,先前的方法旨在在嵌入空间中尽可能接近正样本对。结果,类内数据分布可能会被丢弃。相反,本文提出为每个类学习一个超球面,以保留其中的相似性结构。 广泛的实验表明,所提出的方法在三个广泛使用的基准上达到了最先进的性能。


Introduction:

深度度量学习(DML)在计算机视觉的各种应用中起着至关重要的作用,例如图像检索、聚类和迁移学习。此外,DML是挑战极端分类设置的一个很好的解决方案,其中存在大量的类,而每个类只有很少的图像。一个经典的应用就是人脸识别,Google的FaceNet模型使用Triplet-Loss刷新了当时人脸识别的记录,在人脸验证方面实现了超越人类的性能。

基于深度学习的度量学习其发展主要体现在各种不同的Loss Function 上。最基本的两种损失函数分别是 Contrastive Loss 和 Triplet-Loss。Contrastive Loss 主要是约束成对数据之间的相似或者不相似。Triplet-Loss 则包括一个锚点(anchor)、一个正样本和一个负样本,它的目的是使得锚点和正样本的距离尽可能小,与负样本的距离尽可能大。一般来说,Triplet-Loss的效果比Contrastive Loss的效果要好,因为他考虑了正负样本与锚点的距离关系。基于上述的两种损失函数衍生出了很多变形,比如将数据丰富的结构化信息加入到Loss中,而不仅仅局限于二元组或三元组。

本文贡献如下:

  • 提出了一种新颖的基于排序的结构化损失(RLL)来学习判别式嵌入。与以前的排序思想损失相比,是第一个结合所有非平凡数据点并利用其中结构的人。此外,我们还为每个类学习了一个超球面来保存类内的数据分布,而不是将每个类缩小成一个点。
  • 在三个主流的基准数据集(即CARS196 ,CUB-200-2011 和SOP )上达到了最好水平。

Structured Losses

符号
X = { ( x i , y i ) } i = 1 N X=\{ (x_i,y_i)\}_{i=1}^{N} X={ (xi,yi)}i=1N 是输入数据, ( x i , y i ) (x_i,y_i) (xi,yi)表示第 i i i个图像和它对应的类别标签。类别总数为 C C C,例如 y i ∈ [ 1 , 2 , . . . , C ] y_i\in[1,2,...,C] yi[1,2,...,C];来自第 c c c类的图像被表示为 { N i c } i = 1 N c \{N_i^c\}_{i=1}^{N_c} { Nic}i=1Nc,其中 N c N_c Nc是第 c c c类图像的数量。

Ranking-Motivated Structured Losses

Triplet Loss

Triplet Loss的目的是用一个固定的间隔使锚点更靠近正点而不是负点。
L ( X ; f ) = 1 ∣ Γ ∣ ∑ ( i , j , k ) ∈ Γ [ d i j 2 + m − d i k 2 ] + ( 1 ) L(X;f)=\frac{1}{|\Gamma|}\sum_{(i,j,k)\in\Gamma}[d^2_{ij}+m-d^2_{ik}]_+ \quad \quad (1) L(X;f)=Γ1(i,j,k)Γ[dij2+mdik2]+(1)
Γ \Gamma Γ是三元组集合, i , j , k i,j,k i,j,k对应地表示锚点、正样本和负样本点的下标, f f f是嵌入函数, d i j 2 = ∣ ∣ f ( x i ) − f ( x j ) ∣ ∣ 2 d^2_{ij}=||f(x_i)-f(x_j)||_2 dij2=f(xi)f(xj)2是欧氏距离, [ ⋅ ] + [\cdot]_+ []+是hinge函数。

N-pair-mc

不同于Triplet Loss使用单个的正负样本,这个损失函数利用了数据之间的结构信息来学习到更有区别性的表示。具体来说,样本由一个正样本和 N − 1 N-1 N1个负样本组成,这 N − 1 N-1 N1个负样本来自于 N − 1 N-1 N1个不同的类别,即每个类别1个负样本。
L ( { ( x i , x i + ) } i = 1 N ; f ) = 1 N ∑ i = 1 N l o g { 1 + ∑ j ≠ i exp ⁡ ( f i ⊤ f j + − f i ⊤ f i + ) } ( 2 ) L(\{(x_i,x_i^+)\}_{i=1}^{N};f)=\frac{1}{N}\sum_{i=1}^Nlog\{1+\sum_{j\neq i}\exp(f_i^{\top}f_j^{+}-f_i^{\top}f_i^{+})\}\quad \quad (2) L({ (xi,xi+)}i=1N;f)=N1i=1Nlog{ 1+j=iexp(fifj+fifi+)}(2)
f i = f ( x i ) \mathrm{f}_{i}=f\left(\mathrm{x}_{i}\right)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值