论文路径: http://www.weixiushen.com/publication/cvpr20_BBN.pdf
代码路径: https://github.com/Megvii-Nanjing/BBN
一、视觉任务数据的特征
机器视觉的代表数据集有很多,如 ImageNet ILSVRC 2012, MS COCO, Places Database等。这些数据集中的数据量是大致均匀分布的,但实际中,存在大量的长尾分布数据,也就是少数类别有大部分数据,而多数类别只有小部分数据,如图1所示。
这样的数据分布会使得网络嫩姨获得良好的识别效果,原因有两个:
- 其一是 data-hungry limitation of models
- 其二是长尾分布数据的极端不平衡问题。
二、现有文献是怎么解决这类问题的
现有的文献中,常用的解决这种极度不平衡的方法是:
- class re-balancing 策略,比如 re-weighting 或 re-sampling。
正面作用: 能够调整网络的训练,通过在小批量内对样本重新取样或对样本损失重新加权,期望更接近于测试的分布,因此,类别的 re-balancing 可以直接影响深层网络分类器权重的更新,从而促进分类器的学习。
负面作用:
- re-balancing 有很好的效果,但能够一定程度的损坏网络所学习的深层特征的能力,也就是当数据极度不平衡时,re-sampling 有对尾部数据过拟合的风险(通过过采样)也有对全部数据欠拟合的风险(通过欠采样)。
- re-weighting,直接改变或翻转数据出现的频率,会使原数据失真。
这些常用方法的特点:
- 能够显著的促进网络的分类器学习能力
- 在一定程度上损害所学习深层特征的表达能力
二、本文做法
基于此,该文章提出了一个统一的双边分支网络 Bilateral-Branch Network(BBN),来同时处理表达学习和分类学习。
模型组成:
- conventional learning branch(对原始数据均匀采样,学习识别任务的通用模式)
- re-balancing branch(reversed sampler 来对长尾数据建模)
预测输出:通过自适应权重参数 α \alpha α 将这些双边分支的预测输出聚合到累积学习的部分。
α \alpha α: 根据训练epoch来自适应的调整大小。可以调整整个BBN模型,首先从原始分布中学习通用特征,然后逐步关注尾部数据。
作用:进一步控制每个分支的参数更新,例如在训练后期注重尾部数据时,避免损坏已学习的通用特征。
贡献点:
- 探索了针对长尾问题的显著的类别 re-balancing,进一步发现,这些方法可以极大促进类别学习,但同时会影响原始数据分布的表示学习。
- 提出了一个统一的双边分支网络(BBN),来兼顾表示学习和分类器学习。同时,结合BBN模型的训练,提出了一种新的累积学习策略来调整双边学习。
- 在四个benchmark 长尾数据集上测试,取得了较好的成绩。
三、方法
两个分支,一个分支学习原始的数据分布,另一方分支学习尾部数据
α : \alpha: α: 随着 epoch 的增加,re-balancing 分支的权重变大,也就是 α \alpha α 慢慢减小,模型向 re-balancing 分支倾斜。
这类似于一种注意力机制,通过动态调节 α \alpha α,来控制不同阶段模型需要关注的地方。
虽然图像特征学习和分类器学习应该有着同等地位,但是BBN在学习过程中从关注图像特征学习逐渐到分类器学习,这样可以保证在训练过程中,不同目标的两个分支都能在整个训练过程中不断更新,这样可以避免两个过程中的相互影响。
α : \alpha: α:
T m a x T_{max} Tmax 是最大的 epoch,随着 T T T 的增加, α \alpha α 越来越小。
四、实验结果
来源:oschina
链接:https://my.oschina.net/u/4395566/blog/3231005