Decoupling Representation and Classifier for Long-tailed Recognition

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的方式就是单纯联合训练, 我以为使用自监督方法.

代码

原文代码

posted @ 2021-03-01 20:14  馒头and花卷  阅读(238)  评论(0编辑  收藏  举报