BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition 论文详细解读

BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition 论文详细解读

简介​

在现实生活中的影像辨识的任务中大多的资料分布都不是Uniform Distribution,而是向上图一样大部分的资料占据了几个Class 而已,其他的Class 的资料量非常少,进而形成长尾资料分布如上图所示。

现有方法​

现有的方法最大宗的就是 再平衡策略 ,其中又分成Re-Weighting 和Re-Sampling,这边简单介绍一下这两个的概念。 Re-Weighting 是在计算Loss 时依照Class 的数量去调整权重,也就是说给少数Class 更多的权重来平衡。而Re-Sampling 则是多采样数量少的Class,减少数量多的Class 的采样。

再平衡策略的风险 ​​​

Re-Weighting 会改变原本的资料分布,而Re-Sampling 如果Over-sampling 则会Over-fit 数量少的Class,如果Under-sampling​ 则会Under-fit 整个资料。

除了上述提到的缺点外,更重要的是作者发现了Re-balancing Strategies 会增加分类的能力但会破坏Feature 的学习能力。如上图所示,经过Re-balancing 后,模型可以正确分类Tail Class 但是每个Class 变得更分散了。

上图为作者实验出Re-balancing Strategies 确实会增加分类的能力但会 破坏Feature 的学习能力 。我们看到左边CIFAR-100 实验的第一个Column 如果特征的学习使用原本的方法(CE),而分类器分别使用原本的方法、Re-Weighting 和Re-Sampling 。可以看到固定特征的学习的方法,而分类器改用Re-balancing Strategies 错误率会从58.62 下降到56.53 和56.29。再来看到左边CIFAR-100 实验的第一个Row 如果固定分类器的方法为CE,而特征学习的方法用CE、Re-Weighting 和Re-Sampling,可以看到错误率会从58.62 上升到63.17 和63.71。这个实验说明了Re-balancing Strategies 会增强分类器但是会伤害到特征学习的效果。

建议的方法

而作者提出有两个分支的架构,其中两个分支分别为Conventional Learning Branch 和Re-Balancing Branch,如上图所示,可以很好的解决此问题。

输入采样器

首先先看到最左边两个分支的输入,上面Branch 的输入是采用一个Uniform Sampler,也就是说此分支输入所有资料的Distribution 是原本的Distribution(长尾分布),目的是为了要学习一些通用的Feture Representation。至于下面分支的输入是采用一个Reversed Sampler,意思是此分支输入的资料分布是和原本(长尾)相反的,变成长头的资料分布,目的是为了要增强Tail Class 的精确度。

这边在讲一下Reversed Sampler​ 如何取样的公式,首先先计算每个Class i 的Pi,Ni 为第i 个Class 的数量,Nmax 为最多数量Class 的数量,而为什么是Nmax 除以Ni 等于每个Class 的Wi(权重),因为我们想要分布是相反的,也就是变成长头的资料分布,所以是要和原本的计算方式(Ni除以Nmax)取个倒数,变成Nmax 除以Ni,也就是反比的概念。最后依照Pi 的机率去Sample。

特征提取器

再来看到中间Feature Extractor 的部分,作者是使用ResNet 当作Backbone Network,而两个分支除了最后一个Residual Block 以外都有共享权重,作者认为上面的分支(Conventional Learning Branch)学习良好的特征表示可以使下面的分支(Re-balancing Branch)有好的影响,同时可以减少计算量。而最后一层使用GAP (Global Average Pooling),如下图所示用来取代全连接层,相较于CNN 说这个转换更自然,且可以减少参数量和防止Over-fitting。

累积学习

最后则是Cumulative Learninng,作者这边使用了一个α 下降的机制来控制两个权重的比例,公式如上图所示,T 为当前Epoch 的值,Tmax 代表有几个Epoch。因为作者认为一开始要先专注学习一般的特征表示,也就是上面的分支,最后再慢慢将注意力转移到学习Tail Data 的资料,也就是下面的分支。输出的公式和Loss Function 的公式如下图所示,z 为上下两个Branch 加权后的输出,再来经过Softmax Function 输出成p head,L 为根据α 产生的Loss Function。

而作者认为测试的时候上下两个分支是一样重要的,所以作者只是单纯在测试时把α 设为0.5。

实验

作者分别在iNaturalist 2017 和iNaturalist 2018 还有Cifar-10/100 上面做实验,iNaturalist 原本就是一个长尾的资料集,而Cifar 并不是,所以作者做了一些调整,调整β 来调整长尾的严重程度,如上图所示,Nmax 为最多Class 的数量Nmin 为最少Class 的数量,作者分别在β 等于10、50、100 做实验。

可以看到上图为作者在Long-tailed CIFAR 的实验结果,皆比先前提过的方法还要好。

上图是作者在iNaturalist 资料集的实验,可以看到中间有一个星号代表该方法原本论文提出的实验结果,但是作者在此篇论文中提到使用该论文释出的程式码,并无法达到和该轮文依样好的实验数据,所以BBN 的作者就说他们的方法还是最好的xd。作者也用了2x Scheduler 去测试也得出不错的结果,2x Scheduler 是训练的Epoch 数量变为原本的两倍,同时学习率调整位置也调整为两倍。​

上图是作者替换掉BBN 下面分支(Re-balancing Branch)的Data Sampler,把它替换为Uniform Sampler 和Balanced Sampler 的消融实验,可以看到作者提出的分支效果是最好的。

上图是,作者针对Cumulative Learning 的α 进行的消融实验,可以看到Parabolic decay 会有最好的效果,其中值得注意的是,有一组的α 不是递减而是递增,而它的Error Rate 反而上升,且是里面错误率最高的,这也验证了作者的想法,一开始要先专注学习一般的特征表示,也就是上面的分支(Conventional Learning Branch),最后再慢慢将注意力转移到学习Tail Data 的资料,也就是下面的分支(Re-balancing Branch)。

上图的实验数据为使用不同的Representation Learning Manner 的出的错误率,作者只单看上面的分支BBN-CB(Conventional Learning Branch)和下面的分支BBN-RB(Re-balancing Branch),可以看到CE 原始的方法最好保存Feature Representations 的完整性,而​ BBN-CB 和BBN-RB 虽然会破坏Feature Representations 但是并没有RW 和RS 那么严重,作者将此结果归功于Weight Sharing。

上面的实验是作者将不同方法的每一个Class 的权重W 取出来,并且计算L2 Norm,作者根据之前人提出的理论,说这边L2 Norm 代表分类器倾向分类成最大的L2norm 的类别。而Standar Deviation 越小越好因为代表越平均不然有可能会都分类再头类别,可以看到作者提出的方法(BBN-ALL)是最小的,然后再看到BBN-CB 跟CE 的曲线很像代表它是专注在Universal Feature Learning,最后看到BBN-RB 的曲线,越后面越高,带表它是负责学习Tail Data。

结论​

最后总结一下这篇发表在CVPR 2020 (Oral) 的论文,作者发现了使用Re-balancing Strategies 可以增加分类器的精确度,但是会伤害到特征学习时的表现,于是作者提出的一个全新的架构BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition。

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

本文链接:https://www.qanswer.top/38896/45402313

posted @ 2022-09-23 13:47  哈哈哈来了啊啊啊  阅读(203)  评论(0编辑  收藏  举报