《BBN:Bilateral-Branch Network with Cumulative Learning for Long-Tailed visual Recognition》简读

  • Post author:
  • Post category:其他


本文作者为了解决数据长尾的问题,作者提出了BBN模型,该模型分成两个分支,一个是传统的学习分支,另一个是数据再平衡分支。这两个分支利用参数
\alpha
进行平衡,
\alpha
是根据训练的epochs的数量进行调整,它自适应调整整个模型,让模型首先关注传统的学习分支,之后逐渐关注数据再平衡分支。


数据平衡的一般策略

  • 再采样方法:该方法是数据平衡中的主要方式,可以分为两类:1.对于拥有大部分数据的类别进行降采样;2.对拥有小部分数据的类别进行过采样。
  • 权重再调整:该方法是另一个数据平衡的重要方法,它的策略是分配大的权重给小的类别在损失函数中。然而在真实数据应用时该方法会导致优化困难。
  • 两步调节策略:该方法是把训练过程分为两部分,第一步用原始不平衡的数据训练模型,第二步用很小的学习率和平衡后的数据微调模型。


BBN模型

如上图所示,文中提出的BBN模型包含两个分支,分别是传统学习和对数据再平衡学习。其中传统学习分支输入的是正常的数据分布,而再平衡分支则使用reversed sampler,即与每个类别样本数量成反比例关系的采样策略。每个样本的采样概率为:

其中

两个分支共享除了最后模块的所有权重,为了在训练阶段平衡两个分支。用自适应权衡参数
\alpha
来平衡两个分支,
\alpha
采用自适应渐进式学习策略来进行调节,调节的方式是根据训练的epoch的数量调节,随着epoch的次数增多,
\alpha
的值减少,在inference阶段,
\alpha
设置为0.5,
\alpha
的调节公式如下:

两个分支的权重是
f_{c}

f{_{r}}
,权重
f_{c}

f{_{r}}
将要被送到分类器
W_{c}\in \mathbb{R}^{D\times C}

W{_{r}}\in \mathbb{R}^{D\times C}
中,则输出的结果是这些权重的和,输出的结果可以表示为:

其中
z\in \mathbb{R}^{C}
是预测的输出,对于每一个类别
i\in \left \{ 1,2,3,.....C \right.
,损失函数的类别预测概率为:

文中用
E(\cdot ,\cdot )
作为计算交叉熵损失函数,则输出的概率分布为
\breve{p}=[\breve{p_{1}},\breve{p_{2}},......,\breve{p_{C}},]
,BBN模型权重交叉熵损失可以写为:



版权声明:本文为guanyuqiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。