Embedding Expansion: Augmentation in Embedding Space for Deep Metric Learning 阅读笔记

论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Ko_Embedding_Expansion_Augmentation_in_Embedding_Space_for_Deep_Metric_Learning_CVPR_2020_paper.pdf
代码地址:https://github.com/clovaai/embedding-expansion

摘要

本文受到query expansion和database augmentation的启发,提出了一种embedding augmentation,称之为embedding expansion。即通过一定方式来合成embedding,增加网络学习多样化的难样本。无参、适用性强,达到SOTA精度。
初看不明所以的图

介绍

Query Expansion (QE)

第一次用query检索,得到gallery中的一串候选结果,然后拿候选结果再到gallery中查询一次,得到更准确的检索结果。

database augmentation (DBA)

把gallery里的feature用其自身与邻域内的features来表示

以上两种方法都属于后处理,而本文提出的方式适用于训练阶段

Embedding Expansion (EE)

Synthetic Points Generation

对类内的两个embedding连线,在这条线上能均匀地取n个合成点,n个点也能构成一个集合S。
在这里插入图片描述
对于作用在L2 norm上的loss,实际使用的是模长归一化后的点
在这里插入图片描述
这样均匀取n个点的原因有三

  1. 在两条连续线段之间各取一点计算hardest pair复杂度比较高(尤其是高维空间中),而通过均匀分割成n+1段离散取点,就可以用暴力计算近似得到hardest pair。
  2. 合成出来的点的类别,仍然可以视为是同类(后续有证明)
  3. 这种方法训练速度快、显存占用少

Hard Negative Pair Mining

需要注意的是,hard positive仍然使用原来的点,只是hard negtive才将考虑加入合成点,因为对于positive pair来说,hardest positive pair肯定是线段的两端(即两点原点),因此本文方法只针对hard negtive mining。

Experiments

Analysis of Synthetic Points

实验使用的TripletLoss为最常用的TriHard(这点好评,不像某些文章用一些奇奇怪怪的loss,作为baseline性能本身就很低)
在这里插入图片描述
为了验证类内插值出来的点的label是否与原点相同,以插值出来的点作为query,以原点作为gallery进行检索测试,发现在训练开始前就已经达到了80%的recall@1,并且随着训练的进行能提高到90%,说明用原点的label作为合成点的label是可行的。
在这里插入图片描述
可以看到使用EE后,训练集上的loss值变大了很多(因为能找到更难的hard negtive),这样一来学习到后期TriHard带来的梯度不至于变得微弱,使得网络仍旧具有一定的学习能力。在测试集上的分数也是使用EE更高,并且EE+L2 norm的组合提升最大,且到最后未出现明显的过拟合(相比其它两个配置),说明EE+L2 norm的方式还能一定程度上减少过拟合
在这里插入图片描述
可以看到模型性能与合成点数n也是相关的,并且当n>=1时能明显提升性能,但是当n变大时,EE+L2 norm却稍微下降了一些,本文猜测可能是候选点数过多干扰了训练过程(可能加点grad clip能缓解?)
在这里插入图片描述
这张图统计了训练过程中合成点被选为hard negtive的比例,可以发现从20%多到训练后期慢慢减少,作者说这个现象恰好说明了本文的方法恰好是作为辅助性损失来辅助原损失优化模型,而不会直接改变原有的损失主体(语言的艺术在这里插入图片描述
在这里插入图片描述
这幅图说明了使用EE后,训练过程中能找更多、更难的negtive sample(主对角线的区域更多接近红色的点),验证了本文方法的有效性。

性能对比

略……反正都是SOTA,提升幅度也比较明显。比较多此处就不放了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值