COCO Loss

标签: 深度学习
1845人阅读 评论(1) 收藏 举报
分类:

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

Github项目主页: https://github.com/sciencefans/coco_loss

文章方法简称 congenerous cosine loss, “COCO Loss”,其目的同样是:

  • 拉近同类样本的特征(类内方差小)
  • 拉远不同分类样本的特征(类间方差大)

相较于早些时间的Center Loss, COCO Loss 的效果更好,同时计算复杂度上也有所降低。

1. 方法介绍

下面直接介绍该Loss的实际计算流程:

(1) 输入特征与中心特征归一化

\(\hat {f^{(i)}}=\frac{\alpha f^{(i)}}{|f^{(i)}|}\)

\(\hat c_k=\frac{c_k}{|c_k|}\)

其中, \(c_k\) 为第 \(k\) 类目标的特征中心,是可以学习的,总共有 \(K\)类。 \(f^{(i)}\) 表示输入特征,\(i=1,…,N\),即batch size为 \(N\)。 此外, \(\alpha\) 是一个对性能有重要影响的可调节参数,后面会介绍。

(2) 计算输入特征与每个特征中心的Cos距离

Cos距离的定义为 \(\frac{A\cdot B}{|A|\cdot|B|}\) ,其取值范围为 [-1,+1],值越大表示二者越相似。

由于输入特征和中心特征已经做过归一化,因此其Cos距离可以简化为:

\(d = \hat c_k^T \cdot \hat {f^{(i)}}\)

(3) 计算COCO loss

\(L^{COCO}(f^{(i)},c_k) = -\sum_{i\in \mathbb{B}}\log{\frac{exp(\hat c_k^T \cdot \hat {f^{(i)}})}{\sum_m exp(\hat c_m^T \cdot \hat {f^{(i)}})}}\)

其中,\(\mathbb{B}\) 表示整个batch。分子项表示输入特征 \(f^{(i)}\) 与其对应的中心特征间的Cos距离;分母项表示输入特征到所有中心特征距离之和。 通过取负对数,我们会发现该Loss的优化目标是分子越大越好(类内Cos相似度高),分母越小越好(类间Cos相似度低)。

需要注意的是: 理论上,上式分母中应该要求 \(m \neq k\),即分母不应该再考虑同类之间的Cos距离。 但实际操作发现,上式对于收敛也不会有问题,同时会使得计算简单一点。

至于反向传播求导部分不再介绍,有兴趣的可以参看原文。

2. 其它补充内容

(1) 如何选取最优的\(\alpha\)?

上面计算 Loss时用到一个需要人为指定的缩放参数 \(\alpha\),该参数对网络的性能有明显影响。 以Cifar10为例,\(\alpha = 1\)时,错误率为12.4%,\(\alpha = 10\)时,错误率为7.22%。

文章给出了\(\alpha\)选取最佳值的“建议”:

\(\alpha > \frac{1}{2} \log \frac{K-1}{exp(\epsilon) - 1}\)

其中, \(K\) 为分类数目,\(\epsilon\) 为Loss上界。

作者实验发现, \(\epsilon = 10^{-4}\) 是一个典型值,此时则有:

\(\alpha > \frac{1}{2} \log {(K-1)} + 3\)

需要注意的是: 上式仅仅是指导作用。 比如Cifar10和MNIST同是分10类,但作者却建议MNIST数据集中\(\alpha=1\)。

(2) 可视化对比效果如何?

这里写图片描述

(3) 一些可能需要注意的TRICK?

  • 特征中心初始化。 默认采用随机初始化。 建议在finetune好的模型的基础上进行网络初始化。
  • second is we do not normalize the feature to 1. There are some numerical problems for gradients of centroids if we normalize all features and weights to 1. In MNIST, we initialize the scaler to 1 for weights and 2 for features while in PAPA we set 30 and 100, respectively.
查看评论

人脸识别:coco loss-Rethinking Feature Discrimination and Polymerization for Large-scale Recognition

nips的一篇做分类和识别的工作,其中在人脸识别任务上也做了实验,Rethinking Feature Discrimination and Polymerization for Large-scal...
  • dreamer_on_air
  • dreamer_on_air
  • 2017-11-13 15:43:37
  • 802

损失函数改进方法之Focal Loss

深度学习交流QQ群:116270156 论文:Focal Loss for Dense Object Detection  论文链接:https://arxiv.org/abs/1708....
  • sinat_24143931
  • sinat_24143931
  • 2018-01-11 14:09:42
  • 573

人脸识别系列(十五):COCO Loss

论文链接:Rethinking Feature Discrimination and Polymerization for Large-scale Recognition 这篇文章其实和NormFa...
  • Fire_Light_
  • Fire_Light_
  • 2018-03-18 17:00:00
  • 156

人脸识别:Loss函数总结

基于深度学习的人脸识别发展,从deepid开始,到今年(或者说去年),已经基本趋于成熟。凡是基于识别的,总是离不开三个东西:数据,网络,以及loss。数据方面,目前的公开数据集中有主打类别数的MS_c...
  • wfei101
  • wfei101
  • 2018-03-31 21:42:22
  • 140

【转】何恺明大神的「Focal Loss」,如何更好地理解?

转自:http://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/78920998 作者丨苏剑林 单位丨广州火焰信息科技有限公司 ...
  • lanyuxuan100
  • lanyuxuan100
  • 2018-01-14 09:23:58
  • 240

coco:比imagenet更震撼

http://mscoco.org/explore/
  • wuzuyu365
  • wuzuyu365
  • 2016-09-13 14:35:04
  • 1469

Focal Loss论文阅读笔记

Focal Loss for Dense Object Detection引入问题目前目标检测的框架一般分为两种:基于候选区域的two-stage的检测框架(比如fast r-cnn系列),基于回归的...
  • qq_34564947
  • qq_34564947
  • 2017-08-15 21:10:33
  • 5498

人脸识别论文笔记 Reconstruction-Based Disentanglement for Pose-invariant Face Recognition

一篇做pose-invariant人脸识别的paper: Reconstruction-Based Disentanglement for Pose-invariant Face Recognitio...
  • dreamer_on_air
  • dreamer_on_air
  • 2017-10-11 00:30:51
  • 330

目标检测之Loss:Center Loss梯度更新

转载:https://blog.csdn.net/u014380165/article/details/76946339最近几年网络效果的提升除了改变网络结构外,还有一群人在研究损失层的改进,这篇博文...
  • wfei101
  • wfei101
  • 2018-03-31 21:36:57
  • 42

简单易懂的softmax交叉熵损失函数求导

来写一个softmax求导的推导过程,不仅可以给自己理清思路,还可以造福大众,岂不美哉~ softmax经常被添加在分类任务的神经网络中的输出层,神经网络的反向传播中关键的步骤就是求导,从这个过程也...
  • qian99
  • qian99
  • 2017-09-20 22:23:33
  • 6158
    个人资料
    持之以恒
    等级:
    访问量: 77万+
    积分: 7549
    排名: 3607