概述
旷视研究院新出的paper,主要用来解决识别分类中的长尾问题。通过试验表明均匀采样可以获取更好的通用特征,而重采样可以更好地解决尾部识别问题,提升识别正确率。因此,paper提出用一个两分支网络来学习特征的方法,两个分支共享大部分权重。分支1的样本为均匀分布的,分支2的样本为重采样的,两个分支学到的特征通过alpha加权后送入各自的分类器,最后结果在相加得到最终的输出。loss为加权交叉熵。其中alpha在训练早期值较大,后期较小,早期偏重学习通用特征,后期偏重处理尾部数据。结果当然也是很惊艳的。
Extensive experi- ments on four benchmark datasets, including the large-scale iNaturalist ones, justify that the proposed BBN can signif- icantly outperform state-of-the-art methods.
network.png
概念
不平衡因子
用来衡量数据集的长尾分布问题的严重程度。
细节
损失函数
其中,E表示交叉熵损失,表示均匀采样的样本的gt,表示重采样的样本的gt。
alpha值
如何实现重采样
1.计算每个类别的值。,其中,
2.根据值随机选择一个类别。
3.从i类中均匀地选取一个样本。
如何实现两个分支
用不同的模块区分
self.cb_block = block(self.in_planes, self.in_planes, stride=1) self.rb_block = block(self.in_planes, self.in_planes, stride=1)
如何同时获取两组数据
将重采样数据存储在meta中
meta['sample_image'] = sample_img meta['sample_label'] = sample_label
网友评论