papers for metric learning

来源:互联网 发布:js防水双组分配方 编辑:程序博客网 时间:2024/06/05 14:18

1.NIPS,2016: Improved Deep Metric Learning withMulti-class N-pair Loss Objective
(目前作者没有提供源码)
现状及动机:目前triplet loss 只考虑一个negative sample, 导致训练速度慢,并且易导致局部最小值。
创新:提出一个multi-class n-piar loss的目标函数。包括两个方面的内容:
(1)n-pair 的batch orgnization方式。并把所有以这种方式组织batch的loss都称为是N-pair loss.
例如,triplet loss 和n-pair batch 组合表示成:one-vs-one N-pair loss (N-pair-ovo),
(2)(N+1)- tuplet loss
在一个batch内,将一个postive和其他所有class的negative examples进行比较。
这里写图片描述
这里写图片描述
需要注意:这里写图片描述表示向量的乘,两个向量越相似,这个值就越大。**we regularize
the L2 norm of the embedding vectors to be small.

原始的triplet loss:
这里写图片描述
|f-f+|2=f2+f+2-2fTf+
若规定norm(f)和norm(f+)是一个常值,则距离和fTf+正好是相反的关系,可以用相似性理解。
这里的log函数是hinge函数的光滑上界函数:
这里写图片描述
这里写图片描述
x~(-1,1)
这里写图片描述
x~(-10,10)
- 作者提出传统的triplet loss需要进行负样本挖掘,但是困难样本挖掘是很昂贵的。使用N-pair loss,在总类别少的情况下,不需要挖掘。当类别大时,进行困难样本挖掘对性能提升是有作用的。作者提出挖掘困难类,而不是困难样本。简单说就是:首先随机采样C个类,得到1到2个embedding,计算不满足距离约束的N个类别,每个类别选择两个样本。
2. cvpr 2016 : Deep Metric Learning via Lifted Structured Feature Embedding
作者是Stanford大学的Hyun Oh Song etc.
作者提供了源码:https://github.com/rksltnl/Deep-Metric-Learning-CVPR16.
Motivation: 传统方法不能充分使用一个训练batch.
创新:本文将向量对间的距离提升到矩阵的pairwise距离。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
将(3)转换成(4):
这里写图片描述
偏导:
这里写图片描述
这里写图片描述
3. Deep Metric Learning with Angular Loss

动机:

传统的triplet loss or contrastive loss:(1)都是以距离为测量手段,不能对抗尺度变化问题。
(2)只考虑sample间的second-order特征

创新:

提出Angular loss,约束triplet 的negative point 的角度。

优点:

(1)尺度无关,提高目标函数的鲁棒性,以对抗特征的改变
(2)本质上是增加了third-order几何约束,和triplet loss or contrastive loss比,能够捕获额外的局部结构
(3)有更好的收敛。

方法:

(1)直观上看:规定triplet 中negative点的角度小于一定值。
这里写图片描述
这里写图片描述
存在的问题:
当∠a>90时,最小化∠n时,xn趋向于接近xa. 故采用上图右侧方式。
(2)采用上图(b)方式时:
需要满足以下条件:
这里写图片描述
所以损失函数为:
这里写图片描述
偏导:
这里写图片描述
(3)在实现中,为了进一步提高性能:
一是,为了充分利用batch,采用N-pair的sampling方式;
二是,考虑了一个正对的所有负样本,原始的损失函数极度不平滑,因此采用它的平滑上界。
这里写图片描述
所以,这里写图片描述
(4)最后,为了进一步提升,在实验中将Angular loss和N-pair loss进行结合
这里写图片描述

  1. No Fuss Distance Metric Learning using Proxies
原创粉丝点击