Kang B., Xie S., Rohrbach M., Yan Z., Gordo A., Feng J. and Kalantidis Y. Decoupling representation and classifier for long-tailed recognition. In International Conference on Learning Representations (ICLR), 2014.

本文通过拆解特征学习和分类器训练得出, Instance-sampling能学习到足够好的特征, 我们只需对分类器进行一些处理, 就能得到更好的处理结果.

主要内容

Sampling

针对长短尾的数据, 我们常用重采样的方式来应对, 一般的采样方式可以表述为如下的形式:

\[p_j = \frac{n_j^q}{\sum_{i=1}^C n_i^q}, \quad j = 1,2,\cdots, C
\]

其中\(p_j\)是采样第\(j\)类的概率, \(n_j\)是第\(j\)的训练数据的数目, 共有\(C\)类.

通过指定不同的\(q \in [0, 1]\), 有下面的不同采样方式:

  • Instance-balanced sampling: \(q=1\), 就是我们最常使用的, 每一个样本都是等概率被选中的;
  • Class-balanced sampling: \(q=0\), 可以看成先等概率选择采样的类, 再在此类中等概率选择样本;
  • Square-root sampling: \(q=1/2\);
  • Progressively-balanced sampling: 这是一个混合, 在训练的开始阶段, 偏向instance-balanced sampling, 在训练的后期阶段, 偏向class-balanced sampling:
\[p_j^{PB}(t) = (1 - \frac{t}{T})p_j^{IB} + \frac{t}{T} p_j^{CB}.
\]

分类器

分类器作者列举了三种:

  1. Classifier Re-training (cRT). 即固定encoder部分, 随机初始化\(W,b\), 然后重新训练它们(\(W^Tf + b\));
  2. Nearest Class Mean classifier (NCM). 首先对每个类计算归一化的均值, 然后看输入的特征和哪个最接近(\(\ell_2\)或者cosine 相似度);
  3. \(\tau\)-normalized classifier (\(\tau\)-normalized):
\[\widetilde{w}_i = \frac{w_i}{\|w_i\|^{\tau}},
\]

用\(\widetilde{w}_i\)替换\(w_i\), 其中\(\tau \in (0, 1)\). 因为作者认为\(\|w_i\|\)的大小反应了数据量的大小. \(\tau\)通过交叉验证的方式来选择;

4. Learnable weight scaling (LWS):

\[\widetilde{w}_i = f_i \cdot w_i, \quad f_i = \frac{1}{\|w_i\|^{\tau}},
\]

这里\(f_i\)是可学习的.

注: 这些分类器训练的时候, 也是可以应用re-balance方法的.

注: 按照作者的说明, 看来作者训练encoder的方式就是单纯联合训练, 我以为使用自监督方法.

代码

原文代码

Decoupling Representation and Classifier for Long-tailed Recognition的更多相关文章

  1. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

  2. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  3. [ZZ]计算机视觉、机器学习相关领域论文和源代码大集合

    原文地址:[ZZ]计算机视觉.机器学习相关领域论文和源代码大集合作者:计算机视觉与模式 注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码 ...

  4. CV code references

    转:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program][SI ...

  5. CV codes代码分类整理合集 《转》

    from:http://www.sigvc.org/bbs/thread-72-1-1.html 一.特征提取Feature Extraction:   SIFT [1] [Demo program] ...

  6. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

  7. 资源帖:CV代码库搜集

    2013计算机视觉代码合集一: 原文链接:http://www.yuanyong.org/blog/cv/cv-code-one 切记:一定要看原文链接 原文链接: http://blog.csdn. ...

  8. paper 156:专家主页汇总-计算机视觉-computer vision

    持续更新ing~ all *.files come from the author:http://www.cnblogs.com/findumars/p/5009003.html 1 牛人Homepa ...

  9. paper 141:some paper with ComputerCV、MachineLearning[转]

    copy from:http://blog.csdn.net/zouxy09/article/details/8550952 一.特征提取Feature Extraction: ·         S ...

随机推荐

  1. Hadoop入门 概念

    Hadoop是分布式系统基础架构,通常指Hadoop生态圈 主要解决 1.海量数据的存储 2.海量数据的分析计算 优势 高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出 ...

  2. 学习java 7.6

    学习内容: 方法重写注意事项:子类不能重写父类的私有方法 子类的访问权限不比父类的低(父类默认,子类可以是默认也可以是public) java中继承的注意事项:java中类只支持单继承,java中类支 ...

  3. ES6必知,变量的结构赋值。

    对象和数组时 Javascript 中最常用的两种数据结构,由于 JSON 数据格式的普及,二者已经成为 Javascript 语言中特别重要的一部分. 在编码过程中,我们经常定义许多对象和数组,然后 ...

  4. ES6必知,箭头函数与普通函数的区别。

    1. 箭头函数没有prototype(原型),所以箭头函数本身没有this let a = () =>{}; console.log(a.prototype); // undefined 2. ...

  5. hashtable深度探索

    1.什么是哈希表(hashtable)?为什么要发明哈希表? 首先回答第二个问题,在之前的数据结构中我们学习了数组,链表,二叉树等数据结构,记录在结构中的相对位置是随机的,和记录的关键字之前不存在确定 ...

  6. C++异常处理(try、catch、throw)

    本文为转载 博主原文连接 我们通常希望自己编写的程序能够在异常的情况下也能作出相应的处理,而不至于程序莫名其妙地中断或者中止运行了.在设计程序时应充分考虑各种异常情况,并加以处理. 在C++中,一个函 ...

  7. jQuery遍历的几种方式

    一.jQuery对象遍历 1 <script type="text/javascript" src="js/jquery-3.4.1.js">< ...

  8. Redis学习推荐资料合集

    目录 一.官方 二.书籍 三.推荐博客 一.官方 redis官网 redis中文网 redis中文命令网 redis模块 redis-github源码 redis报告 二.书籍 <Redis开发 ...

  9. 转:android相对布局

    android相对布局 Activity布局初步 - 相对布局 1. 相对布局的基本概念 一个控件的位置它决定于它和其他控件的关系,好处:比较灵活:缺点:掌握比较复杂. 2. 相对布局常用属性介绍 这 ...

  10. 混沌映射初始化种群之Logistic映射

    Logstic混沌映射初始化种群 Step 1:     随机生成一个\(d\)维向量\({X_0}\),向量的每个分量在0-1之间. Step 2:     利用Logistic映射生成N个向量.L ...