《ACE: Ally Complementary Experts for Solving Long-Tailed Recognition in One-Shot》阅读笔记

ICCV-2021 paper 《ACE: Ally Complementary Experts forSolving Long-Tailed Recognition in One-Shot》阅读笔记。
文章地址:ACE-ICCV2021

摘要

单阶段长尾识别方法提高整体性能的方式是“前后交替”的:要么是牺牲头部精确度以获得更好的尾部分类准确度,要么就是忽略尾部数据以使得头部精确度更高。
现有的多阶段训练算法也可以解决这个问题,训练过程如下:对不平衡的数据集进行预训练,然后对平衡集进行微调。虽然性能很好,但是这个预训练模型的通用性比较敏感,并且不容易集成到其他计算机视觉任务中,比如检测和分割任务中就不适用。
本文提出了一个单阶段长尾识别方案ACE,它比当前的单阶段识别方法性能更好,并且也是第一个打破“前后交替”平衡的方法:它可以在一个阶段内同时提高多数和少数分类的准确性。
开源的代码和模型

1、Introduction

现有的针对长尾数据分布的分类方法有三种:单阶段、具备预训练的两阶段和多阶段多专家框架。单阶段算法采用的思路比较简单,它通过采用重平衡(包括重采样和重加权)的方法来解决训练集的不平衡问题,尽管尾部的性能提升了,但是这种方法展现出“前后交替的跷跷板”现象,也就是会损失多数类的精确度,也表明头部类的代表性不够充分。这也引发了一个新的担忧:降低头部类的准确度可能会导致更严重的后果。

最近几年的文献以一种迂回的方式解决了这个问题:首先用整个不平衡数据集训练特征提取网络结构,以得到概括性的表示学习,然后重新调整分类器,使用的方法有重采样或者为不同的任务构造不同的experts。这种方法虽然可以提高性能,但是为了重新平衡数据分布,过于依赖预训练模型和重新平衡技能,因此模型对超参数比较敏感,并且很难找到最佳点。更重要的是多个训练步骤生成的多阶段模型比较冗余并且无法与其他任务同时集成。所以非常需要一个适用于长尾分布的单阶段分类器。

克服长尾的思路来自于人类疾病的专家诊断,专家对自己的领域非常了解,尤其是对于罕见疾病的专家小组讨论。在长尾问题中设计的互补专家特点如下:(1)共享来自最不同数据源的互补知识;(2)都分别擅长分割数据,并且意识到自己不擅长什么;(3)为了做出最佳的决定,来自经验丰富专家(他们看到了更多的数据)的意见被接纳,以补充初级专家的判断。

ACE是一个多专家结构,多个experts通过共享的网络结构同时并行训练,训练时端到端的,并且不需要接受任何预训练或者多阶段训练。文章还在各种广泛使用的长尾数据集上评估ACE,包括CIFAR10-LT、 CIFAR100-LT、ImageNet-LT和iNaturalist2018,实验结果表明ACE是所有单阶段长尾识别方法中的新SOTA,并且还大幅度超过了几种多阶段方法。

2、Related Works

长尾识别方法主要有三大类:重新调整数据分布;两阶段训练和迁移学习;多专家/多分支框架。
2.1 基于数据:重平衡和数据增强(扩充)
重新平衡包括头部的欠采样、尾部的过采样以及根据样本的频率和重要性对损失函数重新加权。进行简单的重新抽样很容易过度拟合样本数较少的类,通过平方根抽样或者从实例平衡逐步调整到类别平衡抽样是一个更好的选择。

数据增强可以弥补数据不足并提高模型的通用性,比如Mixup和它的长尾变体重平衡Mix-up(ReMix),以及tail classes synthesis都是典型的方法。但是以上算法都是牺牲尾部提高头部精确度,或者相反。原因在于representation learning和classifier learning之间的矛盾:基于实例的采样可以学习到最普遍的表征,但是无偏差的分类器又不太可能过度拟合重采样数据集。
2.2 基于representation:两阶段训练和迁移学习
在第一阶段使用re-sampling(DRS)和re-weighting(DRW),在不平衡的数据集上获得良好的表征,之后再使用重平衡训练分类器。kang等人提出的 τ \tau τ-norm和learnalbe weight scaling(LWS)实现在参数域的重平衡。OLTR和inflated episodic memory(IEM)利用内存库进行原型学习和类间的知识迁移。但是,使用重平衡仍然会损害头部的准确度,同时额外的内存消耗可能会限制在大规模数据集上的部署。
2.3 集成方法:Multi-expert Networks
通过分别对待相对平衡的子组,解决长尾问题的潜力很大。BBN将两个阶段的方法合并成一个,但是仍然存在相同的缺点,即头部准确度仍有下降。LFME和RIDE也是多专家结构,两种方法对比如下:
在这里插入图片描述
虽然它们性能也很好,但是仍然受到超参数调整的影响,并且仍然需要多阶段的训练过程(难以集成到其他任务中)。

3 Proposed Methodology

3.1 ACE框架
在这里插入图片描述
** 3.2 Distribution-aware Planner**
通常在不平衡数据集上,分类器在多数类上的性能比少数类上的性能要好。因此如果将不平衡数据集进行不同的分割,分别给每个专家分配一个训练子集,使得每一个预测都是从一个对它有特殊偏见的分类器中获得的,因此头部到尾部的任何数据集都能提高精确度。

与重平衡的思路类似,采样数量少的类别应该被更多地暴露。所以划分方法如下,第i个专家 ε i \varepsilon_i εi被分配给目标类target class C i C_i Ci和干扰类interfering class C ~ i \widetilde{C}_i C i
在这里插入图片描述
如果是对于随机抽样的小批量训练数据集,每个专家 ε i \varepsilon_i εi也使用相应的子集。这种划分方式总是会有一个专家参加所有样本的培训,并且类别越少数,参与的专家数就越多。因此中等数量的类别或者少数类别也更有机会支配专家,消除了头部类太多的偏差。当K=1时,网络退化为一个普通的分类器。

使用ResNet作为backbone,对于每个专家来说,最后一个残差块是完全一样的,后面是一个learnalbe weight scaling(LWS)分类器。每个专家 ε i \varepsilon_i εi的softmax之前的输出是 z i z^i zi,然后又使用全连接层权重的标准值进一步调整为 z ^ i \hat{z}_i z^i
在这里插入图片描述
然后将所有专家的 z ^ i \hat{z}_i z^i进行平均化,其中 S c S^c Sc是专家集:
在这里插入图片描述
最后在o上运用softmax运算获得分类置信度。

3.3 Objective Functions
并不是在o上直接使用损失函数,每个专家有一个单独的损失函数,以避免混合每个特定专家的特征。使用交叉熵作为分类损失,其中 β i \beta_i βi是专家 ε i \varepsilon_i εi的子批集:
在这里插入图片描述
其中 σ \sigma σ代表的是softmax操作。

除了对指定目标类别进行分类外,每个专家对干扰类别的回答不应该影响其他专家的判断,通过消除干扰类interfering class的影响,不同的专家们以互补而不是竞争的方式来工作,所以需要定义一个补偿损失函数来抑制干扰类的输出:
在这里插入图片描述
总的损失函数是:
在这里插入图片描述
3.4 Distributed-adaptive Optimizer
SGD运用在小批量运算中时:当小批量大小乘以k时,学习率也乘以k。其他的超参数都保持不变。
按照这个规则,为了避免过度拟合,优化器应该具有分布意识:数据量较少的 ε i \varepsilon_i εi应该具有更小的权重。基本学习率定义为 η 0 \eta_0 η0,作为具有所有类别的专家的学习率,第i个专家的学习率被定义为:
在这里插入图片描述
其中, N = n 1 , n 2 , . . . n C N={n_1,n_2,...n_C} N=n1,n2,...nC是每一类中样本数量,并且按降序排列。
ε i \varepsilon_i εi的损失函数更新backbone和 ε i \varepsilon_i εi的参数,其他i>1的专家只更新专家自身。

4 Experiments

4.1 Datasets and Protocols
一般来说,在长尾识别任务中,类被分为多数类(超过100个训练样本)、中等类(20∼100个样本)和少数类(少于20个样本)。长尾数据集的不平衡因子(IFs),被定义为最大类除以最小类的频率,从10到500不等。
文章还详细介绍了使用的三种数据集,针对每个数据集的训练方式都不完全相同。

4.2 Performance
竞争方法
主要根据有无预训练阶段分为两种类型:单阶段和双阶段方法。
其中单阶段方法:重平衡(resampling、reweighting、LDAM)、数据增强(mixup、re-balanced mixup、CAM)、迁移学习(图片领域的major-to-minor translation和特征域的OLTR)、 Logit Adjustment、 BBN;
双阶段方法:τ-norm、LWS and cRT、LFME和RIDE。

接下来是文章提出的ACE方法在不同数据集上的性能,文章中Table 2、Figure 3、Table 4、Table 3所示。

4.3 How ACE Works
文章从四个方面来详细解释了ACE算法是如何起作用的:Complementary of experts(通过将ACE方法和它的两个变体做对比来证明ACE的有效性)、Effectiveness of distribution-aware optimizer、Effectiveness of group average output aggregation、Effectiveness of data augmentation。

5、Conclusion

ACE算法性能很好,有很大潜力应用到复杂的计算机任务中,比如检测和分割等。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值