论文笔记:BBN: Bilateral-Branch Network with Cumulative Learningfor Long-Tailed Visual Recognition

在这里插入图片描述

论文地址:https://arxiv.org/abs/1912.02413

代码地址:https://github.com/megvii-research/BBN

1 动机

1.1 问题

​ 作者指出用于long-tailed任务中常用的class rebalance方法虽然表现出了很好的效果,但是会破坏模型对于deep features的表现能力。

在这里插入图片描述

作者分析Class re-balance 方法能产生较好的分类性能,但是在通过class re-balance之后,每个类别的类内分布变得更加分散。

1.2 How class re-balancing strategies work

作者为了进一步验证上述观点的正确性,使用单一控制变量法进行了对照实验。

  • 将模型分成了feature extrator(backbone)和classifier两部分。

  • 对于class re-balance方式分别选择了Re-Sampling、Re-Weighting两种,外加正常分类过程中经常使用的Cross entropy进行实验。

  • 设计了一个两阶段实验的方式:

    (1)Representation learning manner:先直接使用Cross Entropy或class re-balance方法只对分类模型feature extrator部分进行训练。

    (2)Classifier learning manner:再固定模型feature extrator参数不动,参照(1)中的训练策略重头对模型的classifier部分进行训练。

在这里插入图片描述

  • 通过横向对比(控制Classifier learning manner不变),对于Representation learning manner使用RW(Re-Weighting)和RS(Re-Sampling)都降低了性能。

  • 通过纵向对比(控制Representation learning manner不变),对于Classifier learning manner使用RW和RS分类性能都有所提升。

  • 不仅在Long-tailed CIFAR-100-IR50(左图)上呈现了这种现象,在Long-tailed-10-IR50(右图)上也反映了相同的结果.

  • 在训练模型feature extrator阶段使用Cross Entropy,在训练classifier阶段使用RS时获得了最好的分类效果。

结论: RW和RS能提升分类器的性能,但是会降低模型对于deep features的表达.

1.3 解决方法

  • 提出了一个通用的模型BBN,兼顾了representation learning 和classifier learning,

  • 开发了一种新的积累学习策略,用于调整BBN模型两个分支(conventional learning和Re-Balancing)学习,其具体的体现方式为: 在训练过程中先让模型更加倾向于学习universal pattern然后在逐渐关注于tail class

2 BBN(Bilateral-Branch Network)

在这里插入图片描述

2.1 bilator-branch结构

(1) Data samplers
  • conventional learning branch采用uniform sampler

  • Re-Balance brach采用reversed sampler, 采样概率计算方式为:

P i = w i ∑ j = 1 C w j w i = N m a x N i P_i=\frac{w_i}{\sum^C_{j=1}w_j}\\ w_i=\frac{N_{max}}{N_i} Pi=j=1Cwjwiwi=NiNmax

先通过概率 P i P_i Pi对类别进行采样,再对类别样本进行均匀采样.然后将两个分支得到的样本同时输入模型进行训练.

(2) Weight share

​ 使用了ResNet-32和ResNet50作为骨干网络, 除去最后一个residual block之外, 其他的block在两个分支上权重共享.

作用:

  • conventional learning分支上学到的特征能更好的用于Re-Balance分支

  • 减少网络哟计算量.

2.2 cumulative learning strategy

​ 在训练过程中通过 α \alpha α参数调整两个不同分支的权重, α \alpha α随着epoch的增加逐渐减小,而在inference过程中则简单的将 α \alpha α设置为0.5.

训练过程中 α \alpha α变化方式为:
α = 1 − ( T T m a x ) 2 T : 当前的 e p o c h T m a x : 最大 e p o c h \alpha=1-(\frac{T}{T_{max}})^2\\ T:当前的epoch\\ T_{max}:最大epoch α=1(TmaxT)2T:当前的epochTmax:最大epoch

2.3 输出logit和损失函数

输出logit:
z = α W c T f c + ( 1 − α ) W r T f r z=\alpha W^T_cf_c+(1-\alpha)W^T_rf_r z=αWcTfc+(1α)WrTfr
loss:
L = α E ( p ^ , y c ) + ( 1 − α ) E ( p ^ , y c ) L=\alpha E(\hat{p}, y_c)+(1-\alpha)E(\hat{p}, y_c) L=αE(p^,yc)+(1α)E(p^,yc)
其中:

f c f_c fc: conventional learning分支中通过GAP之后的特征向量

f r f_r fr: Re-Balance 分支中通过GAP之后的特征向量

W T W^T WT: classifier的权重.

3 实验

3.1 实验参数

1 CIFAR-LT(10, 100)

(1) preprocess:

  • random crop:32x32

  • horizontal flip

  • padding:4 pixels each side

(2) backbone: ResNet32

(3):training details:

  • momentum: 0.9
  • weight decay: 2 ∗ 1 0 − 4 2*10^{-4} 2104
  • batchsize:128
  • epochs:200
  • lrschduler: multistep(0, 120, 160), gamma:0.01, startlr=0.1
2 iNaturalist(2017,2018)

(1)preprocess:

  • random_resized_crop(先resize到256再crop到224)
  • random_horizontal_flip

(2)backbone:ResNet50

(3)training details:

  • momentum:0.9

  • weight decay:$1*10{-4}

  • batchsize: 128(代码中参数)

  • epochs:180 (代码中参数)

  • lrscheduler: multistep(0, 120, 160) gamma:0.1, base_lr:0.4(代码中参数) ps:这里论文中给的epoch是60, 80但是代码中具体为120, 160

3.2 实验结果

1 同其他Class balance性能对比

在这里插入图片描述

在这里插入图片描述

2 自身对比

在Re-Balancing 分支使用不同的采样方式进行对比.

在这里插入图片描述

对于 α \alpha α的不同变化方式对比.

在这里插入图片描述

3 消融实验

在这里插入图片描述

​ BBN的Conventional分支的性能与直接使用CE相近,这表明了BBN模型保留了对于Long-tailed数据的特征提取能力.而BBN的Re-Balancing分支的效果比RW和RS要好,作者表示这是因为模型中间的权重共享让Conventional分支学到的特征更好的用到了Re-Balance分支上.

在这里插入图片描述

作者还对BBN模型的Classifier中的权重进行了可视化,并与其他class balance方式进行了对比.

  • BBN-ALL的方差最小, RW和RS虽然分布较为平坦但是方差比BBN-ALL略大.
  • BBN-CB(Conventional分支)的分布情况和CE相似.
  • BBN-RB(Re-Balance分支)分布符合reversed 的采样分布.

4 参考文献

论文:BBN: Bilateral-Branch Network with Cumulative Learningfor Long-Tailed Visual Recognition

blog:https://zhuanlan.zhihu.com/p/109648173

本贴写于2022年8月8号, 未经本人允许,禁止转载.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值