一、动机
单阶段长尾识别方法以“跷跷板”的方式提高整体性能,即要么牺牲头部的准确度以获得更好的尾部分类,要么将头部的准确度提高得更高,但忽略尾部的性能,因此提出一种解决数据长尾分布的模型。
之前解决方法:
大多数重新平衡方法通过牺牲大多数类的性能来提高少数类的性能, 包括重新采样和重新加权
数据扩充对头部有效,但对尾部有轻微伤害
具体步骤:
在共享Backbone之后,多个专家被分支出来,并有单独的可学习块和预测层。Distributed-adaptive optimizer为每个专家分配不同但重叠的类别划分,包括目标类别(TC)和干扰类别(IC)。这些专家会对输入的图像进行判断,最后,通过对每个数据分割中重新缩放的Logit进行平均,汇总专家的预测。
细节:
专家对类的分配:
并不是所有的专家都要参与所有类的判断。
假设有K个专家,有C个类别
对于C,如果i<j,第i个类的数量>第j个类的的数量
第i个专家需要参与的类集合有Ci,那么,同时保证类有重叠,即Ci∩Cj≠∅
对于第i个专家,它的目标类是
它的干扰类是,也就是第
个类及前面的所有类,这样保证把少数类作为目标类的专家很多。
根据完全连接层的权重标准,将其进一步调整为z^i,以具有可比性
可以从中看出,第1个专家的目标类是所有的类,它没有干扰类
越往后的专家目标类越少,干扰类越多
当汇集目标类对应专家的结果取平均值,就是输出
损失函数
zi可以理解为第i个专家输出的特征向量
损失函数分别应用于每个专家,而不是聚合输出
除了对指定的目标类别进行分类外,每个专家对他们从未见过的类别的回答不应影响其他专家,即干扰类别(IC)。对于专家本身来说,IC中的类别也是造成混淆的主要原因。通过消除IC的影响,专家们以互补而非竞争的方式工作。因此,需要一个正则化项来抑制IC的输出
学习率:
带有随机梯度下降(SGD)优化器的小批量训练网络的线性缩放规则:当小批量大小乘以k时,学习率乘以k。所有其他超参数(权重衰减、动量等)保持不变。根据这条规则,为了避免过度拟合,优化器应该了解分布情况,为使用较少数据进行训练的Ei分配较小的权重。将基本学习率表示为η0,这是所有类别专家的学习率,第i位专家的训练方式为
其中,N={n1,n2,…nC}是每个类中的样本数,假定N降序。E1的损失函数会更新E1的主干和参数,i>1的Li只会更新专家本身。原因是由于数据重叠,错误可能重复,这意味着主干可能会由于同一错误而被多次更正。这类似于重新加权方法的想法,这会损害表征学习。因此,只有E1,也就是目标类是所有类的专家更新主干。
消融实验
- ACE与其他方法进行对比
2.专家架构的对比
2.1有无Lcom函数
将非目标组的权重设置为零作为硬约束,而不是学习以软正则化方式使用Lcom抑制它们
2.2有无干扰类
3.学习率设置的对比
这三种方案都比基线方案产生更好的结果。促进了大多数类别的更高改善,同时显著减少了尾部。原因是一些专家过早收敛,因此由于过度拟合而导致尾类性能不佳。
和
表现出相似的性能,而
在中数类和少数类时表现更好。
4.输出的决定
:有缩放的取平均
:取最大的概率
:各取一部分,取的是属于自己目标类的一部分
:无缩放的取平均