BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition
原文链接
https://arxiv.org/abs/1912.02413
解决问题:
1 解决自然视觉中的长尾分布问题,属于extremely unbalanced recognition( real-world datasets always have skewed distributions with a long tail)
2 现有的解决长尾分布方法基于 re-balancing,虽然可以提升tailed class的分类准确率,但是会影响到类内的分布情况(类内离散程度变大),也就是 classifier learning效果提升会导致representation learning效果下降
核心思路:
将representation learning 与 classifier learning独立进行(conventional learning负责前一部分,re-balancing负责后一部分)
representation learning部分不对原始样本做任何的调整,保证学习到原始数据分布。classifier learning部分对通过一个reversed sampler,对tail data进行建模。两者再通过cumulative learning,通过epoch调整两部分的权重,实现前期关注总体分布,后期关注tail的分布
如何验证re-balancing带来的结果?
将实验分为两部分,分别学习深度模型的 representation和classifier。在第一阶段,利用CE or re-weighting or re-sampling训练一个分类网络,获得不同的feature extractor部分。feature extractor部分看作representation learning部分,然后再将三个feature extractor 分别利用CE or re-weighting or re-sampling训练最后的分类层(特征提取部分freeze),最后比较结果。发现当 representation learning部分固定住,re-balancing方法要好于CE(这符合传统认知)。但是当固定住classifier,也就是第二阶段对比同样方法训练的模型,feature extractor部分用CE训练的效果最好。
如上图,可见,固定住classifier,第一阶段CE训练的 representation learning效果最好。论文指出(用CE训练representation部分,用RS训练Classifier部分效果最好)
模型框架
1 模型backbone:ResNet-32 or 50 。两个branch共享 残差网络的参数权重(除了最后一个残差块 红蓝部分)
2 数据输入:上branch用正常采样;下branch用reverse采样器采样(视为resampling)
3 图中的GAP是global average pooling
4 图中绿色部分利用cumulative learning的策略,根据epoch调整参数a,依此两个branch的关注程度,T是当前epoch,Tmax是总epoch
a
=
1
−
(
T
T
m
a
x
)
2
a = 1 - (\frac{T}{T_{max}})^2
a=1−(TmaxT)2
5 模型整体输出为:(Wc , Wr是两个独立的分类器)
z
=
α
W
c
T
f
c
+
(
1
−
α
)
W
r
T
f
r
z = αW_c^T f_c + (1 − α)W_r^T f_r
z=αWcTfc+(1−α)WrTfr
实验思路
论文在 iNaturalist数据集和Cifar数据集上都进行了实验,具体内容这里不赘述,可参考原文。
个人看法
这篇论文的亮点个人感觉还是在巧妙的设计了对于representation learning 和 classifier learning这两部分是如何互相影响的实验,一定程度上揭开了数据不平衡的内在性质。后续的cumulative learning策略作者也做了实验证明伴随epoch调整对不同部分的attention是有效的,这方面的内容后续也可以借鉴。