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).

代码

原文代码

原文地址:https://www.cnblogs.com/MTandHJ/p/14293586.html