Deep Metric Learning by Online Soft Mining and Class-Aware Attention
Deep Metric Learning by Online Soft Mining and Class-Aware Attention
提出OSM和CAA,分别解决两个问题:
- 对于anchor,以前的方法是在一个batch内找到最难的p和最容易的n,然后pull p, push n (对比损失将pull和push分开做而triplet是一起做,但都是这个过程),剩下的p和n都没要,这太浪费了,因为其他p包含了充足的类内变化,用上才是正道;其他n本文的意思是也用上了,但其实那些不困难(和a的距离太大)的n被0进行加权(个人觉得用个可能更合理),本质上和没用一样,最终每个pair都有一个OSM得分,用于最终损失计算的加权。
- 有的样本其实是奇异样本,应该被drop掉或者给其比较小的attention (权重)。如下:
对于左边的anchor,第三张图可能是真的难p,但是第二张图就是网络可能更关注误检的黑裙女生,这种样本就是所谓的奇异点,不应该当作很难的p而应该drop掉或更少关注。
1. OSM
-
对于正pairs的OSM得分计算如下:
即pair特征(L2归一化后)之间的欧式距离经过0均值的高斯变换结果。结果表示正pair之间越相似则得分越高。 -
对于负pairs的OSM得分计算如下:
其中是个margin阈值,距离太大(大于阈值)的负pair的得分为0,其余的不为0。
2. CAA
怎么知道谁是奇异值?
softmax的输出就可以说明问题,奇异值的特征(如特征主要集中在图1中黑群女生)必然不能很好的做分类任务,那么其得分就很低,如是CAA得分计算如下(softmax):
以C=3分类为例,奇异点的特征提的可能是(0.33, 0.34, 0.33),而对应为(0,1,0)。而其余的特征提的可能就比较好,如(0.9,0.05,0.05) (1,0,0), (0.1,0.1,0.8)(0,0,1),则奇异点计算结果为,而其余点计算结果就大得多。而C很大如751时,这种差距就更明显。
3.OSM + CAA
其中,即得分最低得那个。
将其应用到对比损失上就有:
普通的对比损失就是和都为1,如果用了在线样本匹配就是本文的baseline。
普通的(离线找pairs)是:
有m/2个pairs。本文的在线样本匹配则是:
有m(m-1)/2个pairs。
对比:
其中:
- CUB上做的是细粒度检索(分类), 和reid任务类似
- [email protected]就是[email protected]
- 第一行的GoogleNet就是离线样本匹配,不用OSM和CAA的结果
- 第二行是第一行的网络但用在线样本匹配而不是离线样本匹配的结果(pairs多了,效果更好)
- 第三行则是在第二行的基础上加了OSM的结果,其有和
- 最后一行则是本文方法
其余实验对比如下: