BatchFormer: 一种简单有效、即插即用的探索样本关系通用模块 (CVPR2022)

点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达f1b26e4822d4a6f11dcf3cb727d1bc4f.jpeg

作者丨侯志@知乎(已授权)

来源丨https://zhuanlan.zhihu.com/p/556847310

编辑丨极市平台

导读

 

一个使网络能够从训练批次(min-batch)中学习样本关系的简单有效并且即插即用Transformer模块,Batch TransFormer。其在10多个数据集上面展示了稳定的提升,包括了长尾分布,组合零样本学习,领域泛化,领域适应,对比学习。

摘要

当前的深度神经网络尽管已经取得了巨大的成功,但仍然面临着来自于数据稀缺的各种挑战,比如数据不平衡,零样本分布,域适应等等。当前已经有各种方法通过样本之间的关系去针对这些问题。然而这些方法并没有去挖掘内在的网络结构来使网络模型建模关系。受这些启发,我们提出了一个使网络能够从训练批次(min-batch)中学习样本关系的简单有效并且即插即用Transformer模块,Batch TransFormer (BatchFormer)。

具体地,BatchFormer应用于每个训练批次数据的batch维度来隐式地探索样本关系。BatchFormer使每个批量的样本间能够互相促进学习,比方说,在长尾识别中,利用频繁类别数据促进稀有类别的样本的学习。更进一步地,由于在训练的时候在batch维度引用了Transformer,训练和测试的数据分布不再一致了。因此我们提出一种共享分类器的策略,来消除在训练和测试的分布偏差从而达到Batch不变学习,进而使我们在测试的时候能够移除BatchFormer。

这种共享策略使BatchFormer在测试时不增加任何计算负载。不需要任何额外的策略,BatchFormer 在10多个数据集上面展示了稳定的提升,包括了长尾分布,组合零样本学习,领域泛化,领域适应,对比学习。最后但是更重要的,基于DETR,我们进一步将BatchFormer扩展到像素级别的任务上面,包括目标检测,全景分割,图像分类。改进版的BatchFormer能够即插即用于DETR, Deformable DETR, Conditional DETR, SMCA, DeiT

Paper:

BatchFormer: https://arxiv.org/pdf/2203.01522.pdf(CVPR2022)

BatchFormerV2: https://arxiv.org/pdf/2204.01254.pdf

Code (V1 & V2): https://github.com/zhihou7/BatchFormer

介绍

尽管深度学习已经取得了巨大的成功,但是它严重依赖于大量的数据。对大量训练数据的依赖限制了深度模型的实际应用。因此,怎么改善深度模型在数据稀缺的场景下的泛化能力受到了广泛的关注,比如长尾学习,少样本学习,零样本学习,领域泛化。尽管这样,当前仍然缺乏一种简单,统一的探索样本关系的框架来针对各种样本稀缺的问题。一个直观的例子可以见图1.我们可以利用不同样本的相似性和共享的part来改善网络的泛化。

b96b3e4847713eb54a8bef30151a4c3e.jpeg
图1:样本关系的示例.鸟和鸡具有形状上的相似性。并且他们共享着两条腿的特性。

尽管没有单独地阐述样本关系,最近的工作已经内在地探索了样本关系通过约束或者知识迁移。一些常见的例子是mixup[3],copy-paste[4],crossgrad[5],和组合学习[6]。这些方法内在地利用样本间存在相似关系和共享部分的关系来增强数据约束模型。另外一种方式是知识迁移,比如说1)在频繁类别和稀有类别之间[7],2)从已见类别到未见[8],3)已知域和未知域[9].然而这些方法是从网络的输入或者输出来探索关系,没有设计网络内部结构来学习到样本关系,更没有在batch维度进行数据的协同学习。在这篇文章,我们介绍一种网络模块作用到Batch维度上去探索样本关系。

然而,训练和测试的不一致(测试的时候,不会总有一个样本)使网络并不容易在batch维度学习到样本关系。因为我们在测试的时候,经常会遇到没有batch的数据。一个经典的例子是Batch Normalization。Batch Normalization总是保留着mini-batch统计出的均值和方差,来归一化测试样本。另外一种方式是使用特征的memory bank 来保留类别的中心,这样来帮助判别稀有和零样本类别. 不同于以上的方式,我们介绍一种全新的简单有效的模块来通过利用结构的优势探索样本关系对于表示学习的帮助。具体地,我们尝试在batch维度上面引入Transformer结构来建模样本关系。在这里,我们主要启发与图结构,没有positional embedding时,Transformer也可以看做是一个全连接图网络。我们把这种模块称为Batch Transformer 或者BatchFormer。在实现中,我们在分类器和特征提取器之间插入BatchFormer。此外,为了减少测试和训练的偏移,不同于Batch Normalization和Memory Feature Bank, 我们介绍了一种新的策略,共享分类器:我们在BatchFormer前后引入共享的分类器。相较于统计的均值方差和Feature back,共享策略能够让我们在测试的时候不增加任何计算和内存的负载。

尽管加入共享分类器可以使得网络能够有效地改善数据稀缺的分类问题。然而,对于pixel级别的任务来说,这并不非常适用。因此我们进一步将BatchFormer泛化到一般化的任务,像目标检测和分割。我们将BatchFormer应用到一般的Transformer结构中,比如DETR和DeiT,插入到两层空间Transformer的中间,同时改进共享分类器为双流结构来保证训练和测试的batch不变性。我们把这个方法称为BatchFormerV2。一个简单的比较Channel Attention[10], Visual Transformer[11] 和BatchFormer可以如图2所示。我们将Attention结构从通道和空间维度泛化到batch维度,展示了一种新的模型结构的可能。

a7ffd5beccab4ddc1aa355c3cb9f7975.jpeg
图2: Channel Attention在通道做attention,Visual Transformer在空间维度上面做attention,而我们的BatchFormer在Batch维度上面做attention。

简而言之,我们介绍了一种简单有效的针对数据稀缺的Transformer模块,取名为BatchFormer。我们在超过10个数据稀缺数据,5个任务上面展示了方法的有效性。更进一步,我们提出一个BatchFormerV2版本,将BatchFormer泛化到一般的目标检测和分割任务上面,即插即用地显著改善了DETR,Deformable-DETR,Conditional DETR,SMCA的效果。

方法

BatchFormer

BatchFormer 是一个即插即用的模块,通过探索样本关系对促进表示学习。如图3所示,我们在特征提取器后面插入TransFormer模块。特别地,我们的Transformer是沿着batch dimension, 也就是说我们把整个batch看做一个sequence。再这里,我们移除了Transformer的positional embedding以达到位置的不变性学习。与此同时,我们在Transformer前后都加入了一个分类器,注意,这两个分类器是共享的,通过这个共享分类器,使得我们能够保持训练和测试的batch不变性。

00d4747d4ad61df72f14c8dc9e1c9f5e.jpeg
图3:模块示意图,我们在分类器前一层插入一个Transformer Encoder模块。该模块作用于Batch维度,而不是空间维度。同时在Transformer前后共享分类器。

BatchFormer可以通过简单的几行代码实现,如下图所示,

f08c3f61528598eefe372fd1532b8717.jpeg

BatchFormerV2

我们将BatchFormer泛化为一个更通用的模块,来促进一般的计算机视觉任务,比如目标检测和分割,图像分类。具体的,我们将BatchFormer插入到两层Visual Transformer之间,在每个空间的像素点上面进行Batch Transformer 操作.同时我们将每个空间位置上面的BatchFormer共享,如下图所示.

99482f94fa71e5aa0d1590995852f0be.jpeg
图4:BatchFormerV2空间维度共享图

同时,我们介绍了一种新的双分支模式,从BatchFormer前开始,将每个Batch复制一份,让一份batch的数据传入原有的网络模块中,让另外一份batch的数据经过BatchFormer分支。除了BatchFormerV2模块外,其他所有模块参数,我们在两个分支中全部共享。这里的目的同共享分类器一致:让模型学到一个batch 不变的特征。模型框架如下,

90e3d5ecdd5903d606289f3242cdc202.jpeg
图5: BatchFormerV2双分支框架图。BatchFormerV2分支加入了BatchFormer模块,而原有的分支保持不变。两个分支输入的数据是一样的。

BatchFormerV2也可以通过简单的几行代码实现如下,

d7b0d24469512d5ba800cb945913b9fe.jpeg

梯度分析

从模型的优化上,BatchFormer结构改变了梯度传播的方向,使得任意一个样本的特征会贡献到所有其他样本的loss计算上面。因此任意一个loss算出来的梯度,都会回传到基于其他所有样本计算的梯度上面。从样本的增强角度上面看,BatchFormer可以看成是隐式地增加了数据。每一个样本特征可以看成是其他样本的虚拟特征[3]。这样BatchFormer实际上大大增强了样本,所以能够有效地改善数据稀缺的问题。

50f688d79f077a113c4c7381d89ae98d.jpeg
图6:BatchFormer梯度回传解析图

实验结果

这里我们主要展示了我们核心的实验结果,比如目标检测,全景分割,长尾识别,对比学习,域泛化,等等。更多任务的实验和消除分析请参见我们的论文和附录。

目标检测

8eef078e3ed5dd8f24d29b36c9aafacb.jpeg

我们发现,BatchFormer能够即插即用到DETR以及DETR派生出来的各种方法上面。并且取得了超过一个点的一致性的提升。

全景分割

abde113eeda73784ce11f6053390a9d9.jpeg

我们在全景分割上面,提高了DETR 1.7%。我们注意到BatchFormerV2主要提升了stuff的类别。我们的可视化实验也发现,BatchFormerV2能够更加注意到object。

长尾分布

524eeac6f338e3ca445b8b4bae007651.jpeg 772ec928c8b514cae6f5ca7cd40101fa.jpeg

从实验的结果看,BatchFormer主要提升了few shot的类别。在长尾分布中,我们认为BatchFormer平衡了数据。

自监督学习

28583d38775ee2da1497c711ad2b81d2.jpeg

BatchFormer一致地改善了MoCo-V2和V3.

组合零样本学习

b01f0ffa700f5435ef1bc90b1bb0f02f.jpeg

领域泛化

0aeabb268bb092e1cedb7b8a794016a4.jpeg

图像分类

fce70c737cc7a9a27fab811ec47b5c9e.jpeg e16152d78ced9f2a922753230ba4969b.jpeg

消除实验

Batch Size

603fde8854b056c7ce9d2d7ff826fa9d.jpeg

我们基于长尾识别数据集(ImageNet-LT)进行了消除实验。实验中,我们发现batch size 对于模型性能的影响较小。

梯度分析

b471e4ddc3bdbeb6e3d3f74281aa289b.jpeg

我们按照实例的频数降序提取出每个类别的在训练样本中对其他样本的梯度均值。我们发现稀有类别的对其他样本的梯度明显更大。这个实验说明,BatchFormer实际上是通过梯度传播改善了模型对于不平衡数据的学习。

可视化分析

Grad-CAM 可视化

ef0b21516e96ad8987bc438c0efbf701.jpeg

我们基于Grad-CAM可视化了特征图。第二行是我们的基线,第三行是加上Transformer模块后的结果。我们发现在长尾分类的稀有样本中,当场景简单的时候模型会注意到物体的更多细节部分,当场景复杂的时候,模型会学会忽略噪音像素而专注到具体物体中。

全景分割

2f0e3cd635f319ab51c22329685d2b1d.jpeg

第二行是我们的基线(DETR),第三行是DETR加上我们提出的方法的结果。我们注意到BatchFormerV2会显著地改善物体分割的细节。比如上图中桌子脚,飞机的轮子和浴缸边缘。最后一个图片里面展示BatchFormerV2能够分割出细小的目,比如草地。

总结与展望

在这篇文章中,我们介绍了一种简单有效,即插即用的Transformer模块,我们称之为BatchFormer。BatchFormer将Transformer应用到网络分类器前一层的batch维度,来挖掘样本之间的关系,比如相似性,部分共享性等等。同时我们介绍了一种共享分类器策略,这样我们能达到一种batch 的不变性,从而在测试的时候移除BatchFormer,使网络不增加任何计算和内存的负载。更进一步地,我们介绍一个更一般化的版本,BatchFormerV2。BatchFormerV2是一个对Transformer结构即插即用的方法。我们的实验展示BatchFormer在长尾识别,组合零样本学习,域泛化都取得了当前最好的效果。我们在超过15个数据集,7个任务上面展示了BatchFormer的有效性。在接下来,我们将继续基于样本关系对特征的表示学习和模型架构进行探索。

引用

1. Hou, Zhi, Baosheng Yu, and Dacheng Tao. "BatchFormer: Learning to Explore Sample Relationships for Robust Representation Learning”. CVPR2022

2. Hou, Zhi, et al. "BatchFormerV2: Exploring Sample Relationships for Dense Representation Learning." arXiv preprint arXiv:2204.01254 (2022).

3. Hongyi Zhang, Moustapha Cisse, Yann N Dauphin, and David Lopez-Paz. mixup: Beyond empirical risk minimization. _ICLR_2018

4. Golnaz Ghiasi, Yin Cui, Aravind Srinivas, Rui Qian, Tsung- Yi Lin, Ekin D Cubuk, Quoc V Le, and Barret Zoph. Simple copy-paste is a strong data augmentation method for instance segmentation CVPR2021

5. Shiv Shankar, Vihari Piratla, Soumen Chakrabarti, Siddhartha Chaudhuri, Preethi Jyothi, and Sunita Sarawagi. Generalizing across domains via cross-gradient training. In _ICLR_2018

6. Zhi Hou, Xiaojiang Peng, Yu Qiao, and Dacheng Tao. Visual compositional learning for human-object interaction detection. _ECCV_2020

7. Ziwei Liu, Zhongqi Miao, Xiaohang Zhan, Jiayun Wang, Boqing Gong, and Stella X. Yu. Large-scale long-tailed recognition in an open world. In _CVPR_2019

8. MF Naeem, Y Xian, F Tombari, and Zeynep Akata. Learning graph embeddings for compositional zero-shot learning. In _CVPR_2021

9. Martin Arjovsky, Le ́on Bottou, Ishaan Gulrajani, and David Lopez-Paz. Invariant risk minimization.

10. Hu, J., Shen, L., Sun, G.: Squeeze-and-excitation networks. CVPR2018

11. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., et al.: An image is worth 16x16 words: Transformers for image recognition at scale. ICLR2020

outside_default.png

点个在看 paper不断!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Transformer即插即用是指一种模块化的方法,将Transformer结构应用于神经网络的前一层,以挖掘样本之间的关系。在BatchFormer中,Transformer模块被插入到分类器前一层,沿着batch维度操作整个批次,而不是空间维度。此外,BatchFormer还引入了共享分类器的策略,使得在测试时可以移除BatchFormer,而网络不会增加计算和内存负载。BatchFormerV2是BatchFormer的更一般化版本,可以应用于不同的任务和数据集,并在多个领域取得了良好的效果。 这种即插即用的方法为特征表示学习和模型架构的探索提供了一种有效的方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BatchFormer: 一种简单有效即插即用探索样本关系通用模块 (CVPR2022)](https://blog.csdn.net/zandaoguang/article/details/127330200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MaxViT:多轴视觉Transformer](https://download.csdn.net/download/weixin_44911037/86823798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值