COCO Loss

《Rethinking Feature Discrimination and
Polymerization for Large-scale Recognition》

摘要

文章关注大规模的测试类别和开集测试的场景下如何使得提取的图像特征高内聚、低耦合。作者提出了一种coco loss的损失函数,实验结果证明了该损失函数的有效性。

简介

实际应用中使用深度学习进行分类有两个挑战:

  1. 类别数非常大,因此需要特征具有判别力,不同的特征之间有较大的margin;
  2. 测试时是开集测试,即测试样本的类别不包含在训练样本中,需要学习到的特征高度内聚。

softmax损失函数的缺点就是只关注了类间的区分能力,没有关注类内部的聚合力。
对比损失、triplet损失和center loss改善了上述问题,但是在训练集的batch内部构建三元组会造成训练过程的不稳定;center loss中心位置的更新没有在训练过程中跟随参数变化,并且需要和softmax联合使用,增加了要学习的参数数量。

作者提出的coco loss,在网络训练过程中持续更新中心位置,并且单独使用,没有增加额外的训练参数,可以端到端训练,稳定的收敛。

几种损失函数学习到的特征分布情况对比图
这里写图片描述

coco loss

f(i)RD , f(x) 是特征向量, D

两个特征向量之间的余弦相似度为C(f(i),f(j)))=f(i)Tf(j)/||f(i)||||f(j)||

  1. 最直观的损失函数是最大化下式:
    这里写图片描述
    β 表示mini-batch, δ(,) 指示函数, ϵ 数据稳定项。
    上面的式子问题是计算复杂度太高,两个for循环比对, O(M2)
  2. 替代方案,训练过程中引导特征尽可能接近对应的正确的类中心
    这里写图片描述
    最大化的损失函数是
    这里写图片描述
    分子保证样本特征离正确的类中心距离尽可能接近,分母保证样本特征离错误类中心的距离尽可能远。
    实现上,首先对特征向量和中心点进行归一化操作,然后对特征进行尺度缩放,再计算coco loss,如下图所示:
    这里写图片描述
    这里写图片描述
    m=li 包含在分母中易于计算且对计算结果的影响很小。
    α 的取值有一个公式可以进行推导:
    α>12logK1exp(ϵ)1 ,其中, K 是总的类别数,ϵ是损失值 L 的上限。

实验结果

首先实验结果表明了,太小的α时错误率较大,这个结论和l2-softmax论文里的结论是一致的;后续实验也表明了相比softmax loss和triplet loss,coco loss学习的特征高内聚、低耦合;coco-loss在训练过程中也可以比较稳定的收敛。
这里写图片描述

这里写图片描述

这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值