BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition

BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition

Zhu B., Cui Q., Wei X. and Chen Z. BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition. CVPR 2020.

数据的长短尾效应是当前比较棘手的问题, 本文提出用分支网络来应对这一问题, 并取得了不错的结果.

主要内容

image-20210118165405334

这篇文章的创新点是用两个分支来适应数据的不平衡.
如图所示, 上面的分支用于标准的训练, 而下面的分支则采用适合不平衡数据的训练方式: 即一般的训练是均匀的采样分布, 而非标准训练采用的是一个非均匀的依赖于样本分布的.

通过均匀采样得到\((x_c, y_c)\), 通过非均匀采样得到\((x_r, y_r)\), 分别喂入上下分支得到特征表示\(f_c\)\(f_r\).
注意到, 上下两个分支是共享部分参数的, 作者实际选择的是残差网络, 设定为除了最后一个residual block外均是共享的.

根据\(f_c\)\(f_r\)进一步得到

\[z = \alpha W^T_c f_c + (1-\alpha) W_r^T f_r, \]

\([z_1, z_2,\cdots, z_C]^T\).
得到相应的概率向量

\[\hat{p}_i = \frac{e^{z_i}}{\sum_{i=1}^{C}e^{z_j}}. \]

最后通过下列损失函数进行训练

\[\mathcal{L} = \alpha E(\hat{p}, y_c) + (1-\alpha)E(\hat{p}, y_r). \]

实际上, \(\alpha\)就是一个调整标准训练和处理不平衡数据的权重.

采样方式

对于非均匀分布, 作者采取了如下方式构造采样分布, 假设每个类的样本数目为\(N_i, i=1,2,\ldots,C\). 则采样比例为

\[P_i = \frac{w_i}{\sum_{j=1}^C w_j}, \]

其中\(w_i=\frac{1}{N_i}\).

权重\(\alpha\)

作者采用的是这样的一种方案

\[\alpha = 1 - (\frac{T}{T_{max}})^2, \]

其中\(T\)为当前的epoch, \(T_{max}\)为总的训练epochs.
在实际测试中, 作者也尝试了一些别的方案, 不过别的方案不如此方案理想.
直观上的解释就是, 训练过程会有普通的训练渐渐偏向re-balance的训练.

Inference phase

在推断过程中, 设定\(\alpha=0.5\).

代码

原文代码

posted @ 2021-01-18 16:58  馒头and花卷  阅读(200)  评论(0编辑  收藏  举报