《Decoupled representation and Classifier for long-tailed recognitions》-ICLR论文阅读笔记
看到有相当多的long-tailed visual recognition问题都会引用这一篇文章。该文阅读难度相当低,理解起来非常简单,但作者颠覆了已有的long-tailed(LT)识别问题。 已有关于LT识别的研究基本聚集在end2end(jointly)learning,但本文提出了一种训练模式,即将end2end learning分解为两阶段的训练法:第一阶段学习表示(特征提取),第二阶段学习分类器。
学习表示
作者认为,学习LT数据的表示可以简单地利用抽样方法:令
p
j
p_j
pj为第j个类别的抽样概率:
p
j
=
n
j
q
∑
i
∈
C
n
i
q
p_j = \frac{n_j^q}{\sum_{i \in C} n_i^q}
pj=∑i∈Cniqnjq
其中
q
∈
[
0
,
1
]
q \in [0, 1]
q∈[0,1],
n
j
n_j
nj为第j个类别的训练样本数。
文中介绍了4种抽样方法,基本都是根据
q
q
q的设置不同而不同。典型地两种:
instance-balanced sampling:
q
=
1
q=1
q=1,即每个样本抽样概率一样。
class-balanced sampling:
q
=
0
q=0
q=0,即每个类别
的抽样概率一样。
用的比较多的是class-balanced sampling.
学习表示可以通过任意一个DCNN进行,令 f ( x ; θ ) = z ∈ R d f(x;\theta)=z \in \mathbb{R}^d f(x;θ)=z∈Rd为样本 x x x的表示。
学习分类器
作者考查了两种分类器:1.线性分类器;2. 近邻分类器。
近邻分类器就是计算出每个类的平均表示,然后计算一个样本到所有类的平均表示的距离,哪个距离最小就分到哪一类。
作者提出了三种线性分类器:
-
classifier re-training (cRT):学习如下的线性分类器
g ( z ) = W T z + b g(z) = \mathbf{W}^\text{T}z + \mathbf{b} g(z)=WTz+b
其中 W = { w j } ∈ R d × C \mathbf{W} =\{w_j\} \in \mathbb{R}^{d \times C} W={wj}∈Rd×C, w j w_j wj为第j个类的分类器。
cRT将学习 W , b \mathbf{W},\mathbf{b} W,b,以对 z z z进行分类。 -
τ \tau τ-normalized。,考虑对 w j w_j wj进行规范化,
g ( z ) = W ^ T z g(z) = \mathbf{\hat{W}}^\text{T}z g(z)=W^Tz
其中 W ^ = { w ^ j } \mathbf{\hat{W}} = \{\hat{w}_j\} W^={w^j}, w ^ j = w j ∣ ∣ w j ∣ ∣ τ \hat{w}_j = \frac{w_j}{||w_j||^\tau} w^j=∣∣wj∣∣τwj, τ ∈ ( 0 , 1 ) \tau \in (0, 1) τ∈(0,1)。 -
Learnable weight scaling (LWS). 令
f j = 1 ∣ ∣ w ∣ ∣ j τ f_j = \frac{1}{||w||_j^\tau} fj=∣∣w∣∣jτ1
它通过学习得到。而前一种方法是手动设置 τ \tau τ。
总结
有相当多的文献都将这个Decoupled-learning作为一种benchmark策略,特别是许多的jointly learning方法,在方法比较的时候都试图做Decoupled-learning以评估其有效性。比如Sinha等人做的CDB (IJCV)以及Difficulty-Net(arXiv)。