CVPR2022《BatchFormer: Learning to Explore Sample Relationships for Robust Representation Learning》

在这里插入图片描述
论文链接:https://arxiv.org/pdf/2203.01522.pdf
代码链接:https://github.com/zhihou7/BatchFormer

1. 动机

尽管深度神经网络取得了成功,但由于数据的稀缺性,如数据不平衡、不可见分布和域转移等问题,深度表示学习仍面临许多挑战。为了解决上述问题,人们设计了多种方法以普通的方式探索样本关系(即无论是从输入还是从损失函数的角度),却都不能使深度神经网络本身具备探究样本关系的能力,即从batch维度的角度来看没有交互作用。而在数据稀缺的情况下,通过探索样本关系来形成鲁棒的深度表示学习对于保证泛化的任务(如长尾识别、零样本学习和域泛化)具有重要的作用。如下图1显示了一个直观的示例,展示了样本关系的有效性。然而,如何找到一种统一、灵活和强大的方法来探索用于鲁棒表示学习的样本关系,仍然是一个巨大的挑战
在这里插入图片描述

2. 主要贡献

为了探索用于鲁棒表示学习的样本关系,作者提出用结构上的进步来增强深度神经网络的样本关系学习。具体地:

  • 通过在批处理维度中引入一个Transformer,在每个小批训练数据样本中尝试捕获样本关系并对其建模,其被称为Batch Transformer或BatchFormer
  • 此外,为了减少训练和测试之间的差距,作者在BatchFormer模块之前和之后使用一个共享分类器来加强batch不变学习。通过这样做,BatchFormer模块只在训练时需要,即不需要改变深度神经网络的推理结构

3. 方法

在这里插入图片描述
本文作者从学习的角度考虑样本关系,即,本文的目标是使深度神经网络本身能够在端到端深度表示学习过程中,从每个小批量样本中学习样本关系
如上图2所示,backbone首先用于学习单个数据样本的表示,即,此时在每个小批量中,不同的样本之间没有交互。在此之后,引入了一个新的模块,利用transformer中的交叉注意机制对不同样本之间的关系进行建模,称其为Batch transformer或BatchFormer模块。然后,BatchFormer的输出被用作最终分类器的输入。为了弥补训练和测试之间的空隙,在BatchFormer模块之前,作者还利用了一个辅助分类器,即通过最终分类器和辅助分类器之间的权值共享,可以将从样本关系中学习到的知识传递给主干和辅助分类器。因此,在测试过程中,可以去掉BatchFormer,直接使用辅助分类器进行分类

3.1 BatchFormer

BatchFormer使用叠加多层的 transformer编码器层,公式如下:
在这里插入图片描述

3.2 算法pytorch代码

在这里插入图片描述

3.3 BatchFormer:梯度view

在这里插入图片描述
为了更好地理解提出的BatchFormer如何通过探索样本关系来帮助表示学习,作者还从梯度传播的角度提供了一个直观的解释,以进行优化。直观地说,没有BatchFormer,所有的损失只在相应的样本和类别上传播梯度,即,一对一,而在使用BatchFormer(虚线)的其他样本上有梯度,如上图3所示。具体来说,给定样本 X ( X = X 0 , X 1 , X i , … , X N − 1 ) X (X = X_0, X_1, X_i,…, X_{N-1}) X(X=X0,X1,XiXN1),添加BatchFormer,在小批量中对应损失 L 0 , L 1 , L i , … , L N − 1 L_0, L_1, L_i,…, L_{N-1} L0,L1,Li,LN1,有:
在这里插入图片描述
即,BatchFormer带来了新的梯度项 ∂ L i ∂ X j \frac{\partial L_i}{\partial X_j} XjLi,其中 i ≠ j i \neq j i=j。从梯度优化的角度来看, L i L_i Li也根据样本 X j ( j ≠ i ) X_j (j \neq i) Xj(j=i)对网络进行了优化,这与没有BatchFormer的模型有很大的区别。换句话说, X j ( j ≠ i ) X_j (j \neq i) Xj(j=i)可以看作是 y i y_i yi的虚样本,其中 y i y_i yi X i X_i Xi的标签。从这个角度出发,BatchFormer通过对小批量样本之间的关系建模,为每个标签 y i y_i yi隐式扩充了 N − 1 N -1 N1个虚拟样本。

实验分析:
1)作者进行如下图5所示可视化,发现BatchFormer专注于对象的更多细节,忽略了虚假的相关性。一方面,当图像包含复杂场景,干扰因素较多时,BatchFormer有效地提高了网络对相应对象区域的注意(如图5右,沙滩上的海蛇,雪地上的狗,树叶上的昆虫)。另一方面,当场景清晰时,BatchFormer也会更多地关注对象的区域(例如,图5左图中的鸟、狗和蜘蛛)。
2)作者还进行了下图6所示可视化,说明了类越少,类在小批处理中的其他图像上的梯度就越大。因此,BatchFormer实际上利用了其他图像,通过增加其他图像上的few-shot标签的梯度来促进low-shot识别。
在这里插入图片描述
在这里插入图片描述

4. 部分实验结果

4.1 Long-Tailed Recognition

分别在 CIFAR-100-LT,ImageNet-LT, iNaturalist 2018和Places-LT四个库上进行实验,实验结果如下:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.2 Zero-Shot Learning

分别在MIT-States,UT-Zappos和 C-GQA三个库上进行实验分析,实验结果如下:
在这里插入图片描述

4.3 Domain Generalization

分别在 PACS,VLCS两个库上进行实验,实验结果如下:
在这里插入图片描述

4.4 Self-Supervised Learning

在这里插入图片描述

5. 总结

作者提出使深度神经网络本身具有探索每个小批量样本关系的能力。具体来说,将小批处理中的每个图像(批维)视为序列的一个节点,然后在图像之间构建Transformer Encoder Network,挖掘小批处理中图像之间的关系。BatchFormer可以将每个标签梯度传播到小批处理中的所有图像,可以视为虚拟样本的扩充,从而提高表示学习。在训练过程中,进一步在BatchFormer之前和之后引入一个共享分类器,因此可以在测试过程中删除它

猜你喜欢

转载自blog.csdn.net/weixin_43994864/article/details/123712596
今日推荐