2021
Aravind Srinivas, Tsung-Yi Lin, Niki Parmar, Jonathon Shlens, Pieter Abbeel, Ashish Vaswani
https://arxiv.org/abs/2101.11605
一、简介
提出了BoTNet,它结合了多个计算机视觉任务(包括图像分类、对象检测和实例分割)的self-attention。通过在ResNet的最后三个bottleneck blocks中使用global self-attention来代替空间卷积。
该方法在实例分割和对象检测方面有显著的提升,同时减少了参数。
将具有MHSA(Multi-Head Self-Attention)层的ResNet bottleneck blocks称为 Bottleneck Transformer(BoT) blocks。
二、MHSA
MHSA层在2D feature maps上实现global self-attention。
MHSA使用了4个head。并且使用了相对位置编码Rh和Rw。1×1表示逐点卷积。
其中蓝色的部分是不存在于Non-Local Layer中的。
相对位置编码不仅考虑内容信息,还考虑不同位置的特征之间的相对距离。
三、模型
上图是网络的整体架构。ResNet共有四个阶段 [c2, c3, c4, c5],ResNet-50四个阶段分别为 [3, 4, 6, 3]。唯一的区别是用MHSA层替换ResNet中c5阶段的三个3×3卷积。
我们的目标是在高性能模型中使用self-attention,考虑到内存和计算量,在feature maps分辨率最低的c5阶段使用self-attention。
ResNet的c5通常使用3个块,将每个块的3×3卷积替换成MHSA层,结构如上图所示。
上图是BoT Block的网络架构。其中,c5中的第一个块使用2×2并且stride为2的average pooling。
BoTNet-S1与BotNet的区别在于第一个BoT Block的步长是1。
四、实验
4.1 图像分类(ImageNet)
BoT50相对于R50虽然参数量有所减少,但是性能并没有提升。
问题的原因是处理的图像过小,因此设计了BoT-S1-50网络,该网络相比于R50有所提升。但是这种改进是以更多计算为代价的。