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. 从源码看Thread&ThreadLocal&ThreadLocalMap的关系与原理

    1.三者的之间的关系 ThreadLocalMap是Thread类的成员变量threadLocals,一个线程拥有一个ThreadLocalMap,一个ThreadLocalMap可以有多个Threa ...

  2. VIM中把^M替换为真正的换行符

    :%s/\r/\r/g 或者:%s/^M/\r/g 红色的^M不是直接打出,而是按住ctrl再依次按下V和M

  3. innodb和myisam对比及索引原理区别

    InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了 1.事务和外键 InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版 ...

  4. spring定时任务执行两次

    最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候, ...

  5. canal整合springboot实现mysql数据实时同步到redis

    业务场景: 项目里需要频繁的查询mysql导致mysql的压力太大,此时考虑从内存型数据库redis里查询,但是管理平台里会较为频繁的修改增加mysql里的数据 问题来了: 如何才能保证mysql的数 ...

  6. 【编程思想】【设计模式】【结构模式Structural】代理模式Proxy

    Python版 https://github.com/faif/python-patterns/blob/master/structural/proxy.py #!/usr/bin/env pytho ...

  7. python中的虚拟环境(在jupyter和pycharm中的使用)

    1.通过anaconda新建虚拟环境 创建虚拟环境:conda create -n your_env_name python=3.6 激活虚拟环境:activate your_env_name(虚拟环 ...

  8. 带你揭开WebSerivce的面纱

    最近在工作中遇到这样的一个项目(暂且定为项目A),项目A本身是用PHP开发的,但是其数据是来自于另一个使用java开发的项目(暂且定为项目B),项目A不能操作项目B的数据库,它有其自己的一套数据库,只 ...

  9. 接下来一段时间会对大家进行网络通信的魔鬼训练-理解socket

    引子 下一篇标题是<深入理解MQ生产端的底层通信过程>,建议文章读完之前.或者读完之后,再读一遍我之前写的<RabbitMQ设计原理解析>,结合理解一下. 我大学时流行过一个韩 ...

  10. 捷码:重塑DevOps,打造更流畅紧密的开发与服务交付业务链

    捷码Gemcoder 1周前如果有机会安排一场行业吐槽大会,熟悉软件开发.交付.服务业务各环节的业内人士,对开发中的各种扯皮.交付反反复复.运维服务中的提心吊胆,往往会有很多深刻的体验和刻骨铭心的案例 ...