
摘要
尽管深度神经网络取得了显著成功,但在深度表示学习中仍面临诸多挑战,尤其受制于数据稀缺问题,如数据不平衡、未知分布以及领域偏移等。为应对上述问题,已有多种方法被提出,以朴素的方式探索样本之间的关系(即从输入或损失函数的角度出发),但这些方法未能深入挖掘深度神经网络内部结构以实现对样本关系的有效学习。受此启发,我们提出让深度神经网络自身具备从每个小批量(mini-batch)中学习样本间关系的能力。具体而言,我们引入了一种批量变换模块——BatchFormer,该模块被应用于每个小批量的批量维度,从而在训练过程中隐式地建模样本之间的关系。通过这一设计,所提方法实现了不同样本间的协同学习,例如在长尾识别任务中,头部类别样本也能有效促进尾部类别样本的学习。此外,为缓解训练与测试之间的差异,我们在训练阶段共享带有或不带BatchFormer的分类器,从而在测试阶段可直接移除该模块。我们在十余个数据集上进行了大量实验,结果表明,所提方法在多种数据稀缺场景下均取得了显著性能提升,且无需任何额外技巧(即“无花哨”设计),涵盖长尾识别、组合零样本学习、领域泛化以及对比学习等任务。代码将公开发布于 https://github.com/zhihou7/BatchFormer。
代码仓库
zhihou7/batchformer
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| domain-generalization-on-pacs-2 | BatchFormer(ResNet-50, SWAD) | Average Accuracy: 88.6 |
| long-tail-learning-on-cifar-100-lt-r-100 | Paco + BatchFormer | Error Rate: 47.6 |
| long-tail-learning-on-cifar-100-lt-r-100 | Balanced + BatchFormer | Error Rate: 48.3 |
| long-tail-learning-on-imagenet-lt | BatchFormer(ResNet-50, RIDE) | Top-1 Accuracy: 55.7 |
| long-tail-learning-on-imagenet-lt | BatchFormer(ResNet-50, PaCo) | Top-1 Accuracy: 57.4 |
| long-tail-learning-on-inaturalist-2018 | BatchFormer(ResNet-50, RIDE) | Top-1 Accuracy: 74.1% |