bag of tricks: BN、center loss、余弦距离vs欧式

https://blog.csdn.net/shanglianlm/article/details/84994300?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase

https://zhuanlan.zhihu.com/p/40514536
更强https://zhuanlan.zhihu.com/p/61831669

1 BN neck: batch normal after global pooling

在这里插入图片描述
网络global pooling得到的feature是在欧式空间里的,我们直接连接triplet loss,我们把这个feature记作 [公式] 。然后这个feature经过一个BN层得到 [公式] ,经过BN层的归一化之后, batch里面[公式] 的各个维度都被拉到差不多,最后近似地在超球面附近分布。当然不是严格意义上的,只是近似地而已。经过L2规范化/标准化后才在模=1的超球面上当然也可以尝试一下直接用L2 norm得到 [公式] ,但应该效果会低于BNNeck.

在这里插入图片描述

2 center loss

Triplet loss有个缺点是只考虑了相对距离,其loss大小与正样本对的绝对距离无关。举个例子,假如margin=0.3。正样本对距离是1.0,负样本对是1.1,最后loss是0.2。正样本对距离是2.0,负样本对是2.1,最后loss还是0.2。为了增加正样本之间的聚类性能,我们加入了Center loss:

在这里插入图片描述

由于ReID现在的评价指标主要是cmc和mAP,这两个都是检索指标,所以center loss可能看上效果不是那么明显。但是center loss会明显提高模型的聚类性能,这个聚类性能在某些任务场景下是有应用的。比如直接卡阈值区分正负样本对tracking任务。

当然center loss有个小trick就是,更新网络参数和更新center参数的学习率是不一样的,细节需要去看代码,很难说清楚。

3 余弦vs欧式:余弦更好

我们同样分析了一下BNNeck的结果,对于BN层前后的 [公式] 和 [公式] 两个feature在测试阶段分别使用欧式距离和余弦距离进行相似度度量。我们主要关注最后两行的结果,对于靠近ID loss的 [公式],余弦距离的度量效果显著好于欧式距离。也说明分类损失约束的feature更加适合余弦距离。当然四种配合方式都显著高于不用BNNeck的结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值