深度嵌入学习“Sampling Matters in Deep Embedding Learning”

知乎专栏:https://zhuanlan.zhihu.com/p/27748177

在检索和验证任务中,经常使用contrastive 损失或 triplet损失作为损失函数,大多数论文也主要关注如何选取损失函数,这篇论文认为训练样本的选取也很重要。提出了distance weighed sampling,选取信息量更大更稳定的训练样本。此外,提出了margin based loss,效果更好。

深度嵌入学习的一般流程:

先验知识回顾

contastive损失:

三元损失:

对于contrastive损失,困难负样本挖掘可以帮助更快收敛。但对于三元损失来说,困难负样本易导致collapse。FaceNet提出了挖掘半困难负样本的方法:给定anchor-positive对,在batch中,通过如下关系选择负样本:

Distance Weighted Margin-Based Loss

1.随机挑选样本的问题

在高维空间中,pairwise距离分布趋向于正态分布,这意味着如果均匀的选择负样本,容易获得1.414以外的样本,对于距离小的样本就很少获得。

2.只挖掘太困难负样本的问题

Hard negative样本通常离anchor的距离较小,这时如果有噪声,那么这种采样方式就很容易受到噪声的影响,从而造成训练时的模型坍塌,困难负样本的梯度方差较大,具有较小的信噪比。

3.distance weighted sampling

根据距离均匀的筛选样本,及带权值的筛选,为避免选择到噪声样本,再对筛选进行裁剪。最终,给定anchor样本,距离加权的采样通过下式采样负样本:

下图显示了不同方法采样负样本,距离的方差,可以看到提出的距离加权的采样提供了较大距离范围的样本:

 

三元损失比对比损失好的原因:第一点,三元损失不需要预选的阈值去分割相同、不同的图像,它更能适应outliers;第二点,三元损失仅需要正样本距离比负样本距离近,对比损失需要将正样本聚合的越来越近。

对于三元损失来说,困难负样本的梯度趋于0,梯度主要来自困难正样本对,很少来自困难负样本对,对于网络训练是没有帮助的。使用真实距离值代替平方距离值将好点,这在上一篇博文中提到的论文也有提到,即:

论文提出的基于对比损失的改进损失为,$\beta$定义了正例对距离与负例对距离之间的界限,如果正例对距离Dij大于$\beta$,则损失加大;或者负例对距离Dij小于$\beta$,损失加大:

这里$\beta$是正负样本的决策边界,$\alpha$控制分割的边距。下图显示了四种损失与距离的关系:

为了同时使用三元损失的灵活性能,这里使用较为灵活的决策边界$\beta$,beta(class)称为样本偏置, beta(img)称为类别偏置,第一个beta(0)是人工定义的初始值,利用梯度下降,不断调整beta(class)和beta(img)的值(就如同调整神经网络的参数)以在训练集上达到最优,这时能够得到最优的beta(class)和beta(img)(每个类一个beta(class),每个样本一个beta(img)):

为了正则化$\beta$,引入超参数v,这里类似于v-SVM中的技巧

实验结果

不同样本采样方式的对比,在semi-hard采样方法中,constrastive loss和triplet loss的性能类似,而如果使用随机采样,constrastive loss的性能要差很多(triplet loss不能随机采样),这其实反证了一个结论:triplet loss的性能不仅仅来自于其自身的函数结构,也与采样方式有很大的关系。

与其他人脸识别方法的对比:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值