Sampling Matters in Deep Embdding Learning论文研究

声明:

  1. 论文链接Sampling Matters in Deep Embdding Learning

Sampling Matters in Deep Embdding Learning

  这是基于one-shot learning中的metric learning范畴做的研究。metric learning通过将样本对映射到嵌入空间,在嵌入空间中比较样本之间的相似性来进行分类。

主要创新点

  • 分析了metric learning的发展
  • 指出episode抽样的重要性,并提出有效的抽样方法
  • 分析contrast loss和triplet loss的特点并作出改进

episode解释: metric learning通过比较的方式进行训练,不同的网络模型的输入形式不同,可能是样本对、样本三元组或者样本集合,本文统一用episode表示metric learning中不同模型的输入。

Preliminaries

符号说明

符号意义
R N R^N RNN维样本空间
x i x_i xi样本
R D R^D RD嵌入空间
f ( x i ) f(x_i) f(xi) x i x_i xi的映射,映射函数用network表示
Θ \Theta Θ网络参数
∥ ⋅ ∥ \| \cdot\| 欧氏距离
y i j y_{ij} yiji与j同类, y i j y_{ij} yij=1,反之为0

contrast loss

L c o n t r a s t ( i , j ) : = y i j D i j 2 + ( 1 − y i j ) [ α − D i j ] + 2 L_{contrast} (i, j) :=y_{ij} D_{ij}^2 + (1-y_{ij})[\alpha - D_{ij}]_+^2 Lcontrast(i,j):=yijDij2+(1yij)[αDij]+2,其中 D i j : = ∥ f ( x i ) − f ( x j ) ∥ D_{ij}:=\|f(x_i) - f(x_j)\| Dij:=f(xi)f(xj)

contrast loss有两个缺点:

  • 不同类别的样本之间的 α \alpha α是固定的
  • 同类别的样本会聚集为一点,忽视了同类样本之间的多样性

triplet loss

L t r i p l e t ( a , p , n ) : = [ D a p 2 − D a n 2 + α ] + L_{triplet}(a, p, n):=[D_{ap}^2 - D_{an}^2 + \alpha]_+ Ltriplet(a,p,n):=[Dap2Dan2+α]+其中, a p ap ap表示同类样本(anchor和positive), a n an an表示异类样本(anchor和negative)。该损失迫使同类样本间的距离要小于异类样本间的距离。由于嵌入后的向量也是高维的,triplet loss能够容许嵌入向量在高维空间中有任意的形状。

采样方法

随机采样:
  一般来说,我们为了使损失最小,会训练网络使得contrast loss或triplet loss在所有样本对/三元组(pairs/triplets)中的和最小。
R ( ⋅ ) : = ∑ t ∈ a l l p a i r s / t r i p l e t s l ( ⋅ ) ( t ) R^{(\cdot) }:=\sum_{t\in {all pairs/triplets}} l^{(\cdot)} (t) R():=tallpairs/tripletsl()(t)在监督学习中,通常是计算一个batch的损失和。
hard negative采样方法:
  在metric learning中,无采样的方法是不可行的。以contrast loss对应的模型为例,该模型的输入是pairs,pairs的构成有两种可能:

  1. 同类样本(类别A与类别A),正例(positive pairs)
  2. 不同类样本(类别A与类别B),反例(negative pairs)

第二种情况下,类别A与类别B可能差距很大,容易分辨(甚至在原始空间中就分布很远),称之为easy negative;类别A与类别B也可能差距很小(这些pairs是影响模型学习的难点,也是提升预测准确率的关键),称之为hard negative。

上图中类别9在一开始就容易分辨,故不需要构造太多类别9与其他类别的pairs用于训练。

  对样本进行采样可以规避无效episode(这些episode对模型的训练作用甚微),增加对hard negative episodes的关注,意义如下:

  • 增加对hard negative episodes采样即增加了模型对它们的训练次数,相当于提高了这部分episodes的权重,类似于Adaboost。
  • 减少无用训练,加快模型收敛速度。

在contrast loss模型中已将启发式算法应用到episodes采样中——每次训练选择hard negative pairs,并取得了更好的效果。但这种方法用于triplet loss会导致collapsed model(模型崩坏,train loss将一直处于高水平不在下降)。hard negative的采样方式反映到刚刚的损失函数上就是: R ( ⋅ ) : = ∑ t ∈ h a r d n e g a t i v e p a i r s / t r i p l e t s l ( ⋅ ) ( t ) R^{(\cdot) }:=\sum_{t\in {\bf hard negative pairs/triplets}} l^{(\cdot)} (t) R():=thardnegativepairs/tripletsl()(t)

semi-hard negative mining:
  FaceNet这篇文章提出了semi-hard negative mining方法: n a p ∗ : = a r g m i n n : D ( a , n ) > D ( a , p ) D a n n_{ap}^* :=argmin_{n:D(a, n) > D(a, p)} D_{an} nap:=argminn:D(a,n)>D(a,p)Dan

semi-hard: hard but not too hard

详细介绍请参考我的另一篇博客[译]Tensorflow实现Triplet Loss

  简而言之,sampling matters。 它通过挑选样本(加权样本)的方式定义了一个启发式的损失函数。 启发式算法总是与当前问题和数据集强相关,难以推广。下面本文将做进一步分析,然后提出更有效更实用的采样方法。

Distance Weighted Margin-Based Loss

新的采样方法

对嵌入空间中样本间距离的分析:
  假设metric learning的嵌入空间是n维,则以该n维空间中任一样本为中心,其他样本到中心样本的距离为半径,可以获得一个超球面 S n − 1 S^{n-1} Sn1。其他样本到中心的距离的随机分布为(参考The sphere game in n dimensions.): q ( d ) ∝ d m − 2 [ 1 − 1 4 d 2 ] n − 3 2 q(d) \propto d^{m-2} [1-\frac 14 d^2]^{\frac {n-3}{2}} q(d)dm2[141d2]2n3

有上图可以看出,随着超球面维度n的增加,距离的分布趋近于正态分布—— N ( 2 , 1 2 n ) N(\sqrt2, \frac {1}{2n}) N(2 ,2n1)

噪声对hard negative episode的影响:
  以contrast loss为例,如果我们对pairs随机采样,那么它们的距离在 2 \sqrt2 2 左右。假设contrast loss的 α = 2 \alpha=\sqrt2 α=2 ,将有一半的pairs没有损失,即对模型的训练没有帮助。
hard negative:
  对于异类pairs t : = ( a , n ) t:=(a, n) t:=(a,n)或者triplet t : = a , p , n t:={a, p, n} t:=a,p,n,其损失对嵌入网络 f ( x n ) f(x_n) f(xn)的梯度为: ∂ f ( x n ) l ( ⋅ ) = h a n ∥ h a n ∥ w ( t ) \partial_{f(x_n)} l^{(\cdot)} = \frac {h_{an}}{\|h_{an}\|} w(t) f(xn)l()=hanhanw(t)其中 h a n : = f ( x a ) − f ( x n ) h_{an} :=f(x_a) - f(x_n) han:=f(xa)f(xn)。样本中总存在一些噪声 z z z,这些噪声会影响 h a n h_{an} han的取值,使其上下波动,特别是在 h a n h_{an} han较小时影响更大(而 h a n h_{an} han较小的样本使最需要重视的样本)。从下图可以看出:

  • 噪声越小( σ \sigma σ越小),梯度的协方差越小,即噪声对梯度的影响越小。
  • h a n h_{an} han越小(横坐标越小),梯度的协方差越大,即梯度越容易受到噪声的影响。注意:此时的样本正是hard negative episode。

不同的采样方法:

上图是不同的采样方法下,$h_{an}$的分布。
  • Uniform sampling即随机采样,根据前文对超球面的分析, h a n h_{an} han多集中在 2 \sqrt 2 2 左右。
  • Hard negative mining采样难以分辨的anchor sample和negative sample,其 h a n h_{an} han分布在靠近0值的地方,容易受到噪声的影响。
  • Semi-hard negative mining比上两个方法都要好。但却难以使网络收敛。因为在模型接近收敛之后,需要hard negative episode来进一步迫使它得到全局最优解,semi-hard negative mining取不到这些episode。
  • 本文提出Distance weighted sampling,能够在 h a n h_{an} han的距离尺度上均匀采样,兼顾以上多种采样方式的优点: P r ( n ∗ = n ∣ a ) ∝ m i n ( λ , q − 1 ( D a n ) ) Pr(n^* = n|a) \propto min(\lambda, q^{-1}(D_{an})) Pr(n=na)min(λ,q1(Dan))

在给定anchor的情况下,我们选择这样的negative sample:

  1. D a n D_{an} Dan(也就是 h a n h_{an} han)越小,采样它的概率越高
  2. λ \lambda λ为界,排除那些easiest negative episode( D a n D_{an} Dan特别特别大)和hardest negative( D a n D_{an} Dan特别特别小,这种样本原始概率就很小,即使乘上距离的倒数也不能咸鱼翻身)

作者认为:Distance weighted sampling offers a wide range of examples, and thus steadily produce informative examples while controlling the variance.

新的损失函数

损失函数概览

  其中,蓝线是正例(anchor和positive)的损失,绿线是反例(anchor和negative)的损失:

  • (a)contrast loss对所有样本对只有一个阈值 α \alpha α,不能应对样本的多样性。
  • (b)Triplet loss l 2 2 l_2^2 l22中的平方项使得loss函数是曲线,特别是在hard negative处(绿线接近0的地方)梯度为0,这必然会导致对hard negative episode的学习困难。
  • ( c) Triplet loss l 2 l_2 l2避免了(b)中的梯度问题

更进一步,本文提出了更好的损失函数。

Margin based loss

l m a r g i n ( i , j ) : = ( α + y i j ( D i j − β ) ) − l^{margin}(i, j):=(\alpha + y_{ij} (D_{ij} - \beta))_- lmargin(i,j):=(α+yij(Dijβ))其中, β \beta β D a n D_{an} Dan D a p D_{ap} Dap之间的边界, α \alpha α是hardest D a n D_{an} Dan D a p D_{ap} Dap到边界的距离,就像是SVC一样。

   β \beta β足够灵活,与当前类别(class)和当前样本(image)有关: β ( i ) : = β ( 0 ) + β c ( i ) ( c l a s s ) + β i ( i m g ) \beta(i):=\beta^{(0)} + \beta_{c(i)}^{(class)} + \beta_i^{(img)} β(i):=β(0)+βc(i)(class)+βi(img) β \beta β不仅是一个trainable variable,同时也作为损失函数的正则项: m i n i m i z e ∑ ( i , j ) l ( m a r g i n ) ( i , j ) + v β ( i ) minimize \sum_{(i, j)}l^{(margin)} (i, j) + v\beta (i) minimize(i,j)l(margin)(i,j)+vβ(i)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值