Deep Metric Learning by Online Soft Mining and Class-Aware Attention阅读总结

Deep Metric Learning by Online Soft Mining and Class-Aware Attention

pytorch代码
提出OSM和CAA,分别解决两个问题:

  • 对于anchor,以前的方法是在一个batch内找到最难的p和最容易的n,然后pull p, push n (对比损失将pull和push分开做而triplet是一起做,但都是这个过程),剩下的p和n都没要,这太浪费了,因为其他p包含了充足的类内变化,用上才是正道;其他n本文的意思是也用上了,但其实那些不困难(和a的距离太大)的n被0进行加权(个人觉得用个 ϵ \epsilon ϵ可能更合理),本质上和没用一样,最终每个pair都有一个OSM得分,用于最终损失计算的加权。
  • 有的样本其实是奇异样本,应该被drop掉或者给其比较小的attention (权重)。如下:在这里插入图片描述
    对于左边的anchor,第三张图可能是真的难p,但是第二张图就是网络可能更关注误检的黑裙女生,这种样本就是所谓的奇异点,不应该当作很难的p而应该drop掉或更少关注。

1. OSM

  • 对于正pairs的OSM得分计算如下:
    在这里插入图片描述
    即pair特征(L2归一化后)之间的欧式距离经过0均值的高斯变换结果。结果表示正pair之间越相似则得分越高。

  • 对于负pairs的OSM得分计算如下:
    在这里插入图片描述
    其中 α \alpha α是个margin阈值,距离太大(大于阈值)的负pair的得分为0,其余的不为0。

2. CAA

怎么知道谁是奇异值?
softmax的输出就可以说明问题,奇异值的特征(如特征主要集中在图1中黑群女生)必然不能很好的做分类任务,那么其得分就很低,如是CAA得分计算如下(softmax):
在这里插入图片描述
以C=3分类为例,奇异点的特征 f f f提的可能是(0.33, 0.34, 0.33),而对应 c c c为(0,1,0)。而其余的特征提的可能就比较好,如(0.9,0.05,0.05) ∈ \in (1,0,0), (0.1,0.1,0.8) ∈ \in (0,0,1),则奇异点计算结果为 0.34 / ( 0.34 + 0.9 + 0.8 ) = 0.167 0.34/(0.34+0.9+0.8)=0.167 0.34/(0.34+0.9+0.8)=0.167,而其余点计算结果就大得多。而C很大如751时,这种差距就更明显。

3.OSM + CAA

在这里插入图片描述
其中 α i , j = m i n ( α i , α j ) \alpha_{i,j}=min(\alpha_i, \alpha_j) αi,j=min(αi,αj),即得分最低得那个。

将其应用到对比损失上就有:
在这里插入图片描述
普通的对比损失就是 w i , j + w_{i,j}^+ wi,j+ w i , j − w_{i,j}^- wi,j都为1,如果用了在线样本匹配就是本文的baseline。

普通的(离线找pairs)是:
在这里插入图片描述
有m/2个pairs。本文的在线样本匹配则是:
在这里插入图片描述
有m(m-1)/2个pairs。

对比:
在这里插入图片描述
其中:

  • CUB上做的是细粒度检索(分类), 和reid任务类似
  • ReCall@K就是top@K
  • 第一行的GoogleNet就是离线样本匹配,不用OSM和CAA的结果
  • 第二行是第一行的网络但用在线样本匹配而不是离线样本匹配的结果(pairs多了,效果更好)
  • 第三行则是在第二行的基础上加了OSM的结果,其有 w i , j + = s i , j + w_{i,j}^+=s_{i,j}^+ wi,j+=si,j+ w i , j − = s i , j − w_{i,j}^-=s_{i,j}^- wi,j=si,j
  • 最后一行则是本文方法

其余实验对比如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 回答1: 深度度量学习(deep metric learning)是一种深度学习技术,旨在学习数据之间的相似度度量。它可以用于许多应用程序,例如人脸识别、图像检索和推荐系统。通过学习数据之间的相似度度量,深度度量学习可以使相似的数据点更加接近,而不相似的数据点更加远离。这种技术可以提高许多应用程序的准确性和效率。 ### 回答2: Deep metric learning是指在深度学习模型中建立度量函数,用于计算不同数据样本之间的距离和相似度,并且能够在训练过程中不断地优化这个度量函数,以使得相似的样本被拉近,不相似的样本被推远。 在实际应用中,deep metric learning主要用于图像检索、人脸识别、视觉跟踪等领域。通过学习深度度量函数,可以实现对于特定场景下的数据,建立更加准确的相似度度量,提升模型性能。 Deep metric learning的主要挑战是如何构建合适的损失函数,以实现良好的度量学习。通常使用的有对比损失(contrastive loss)、三元组损失(triplet loss)、n-pair损失等。对于不同类型的数据,选择不同的损失函数往往可以取得更好的效果。 除此之外,选取合适的模型架构和实现技巧也非常重要,例如使用卷积神经网络(CNN)进行特征提取、使用欧氏距离或余弦相似度进行度量、设置动态采样策略以处理数据不平衡等。 总之,deep metric learning作为一种建立深度度量函数的技术,具有广泛的应用前景和研究意义,同时也需要在算法、数据、技术等多个方面进行不断的探索和优化。 ### 回答3: 深度度量学习是一种学习如何将多个样本映射到其中一个嵌入空间的技术。通俗来讲,它可以将相似的样本映射到接近的位置,不相似的样本映射到远离的位置。这个技术可以为计算机视觉领域中许多问题提供强力的支持,例如人脸识别、目标识别和图像聚类等问题。 在深度度量学习的技术中,我们通常会使用神经网络来实现样本嵌入的映射。神经网络可以学习到样本之间的相似性和距离度量,它可以通过训练来学习嵌入空间的参数,并且最终能够将样本嵌入到具有良好性能的空间中。 在深度度量学习中最流行的方法是对比损失函数,目的是通过学习网络参数使得相似的样本更加接近,并使不相似的样本更加远离。具体来说,对比损失函数通过比较不同的样本对来构建一个损失函数,这些样本对由相同类别或不同类别的样本组成。 深度度量学习可以概括为三个阶段:训练、验证和测试。在训练阶段,我们通过对神经网络模型进行监督来学习样本嵌入空间和度量。在验证阶段,我们可以通过检查嵌入空间中的样本分布来检查模型的性能和泛化能力。在测试阶段,我们可以使用已学习好的模型来计算未知样本的距离度量并进行比对。 总的来说,深度度量学习技术是一种重要的技术,可以在计算机视觉领域的许多问题中发挥重要的作用。它可以通过学习网络参数,使得相似的样本更聚集,不相似的样本更分散,提高模型的准确性和鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值