自学内容网 自学内容网

BoTNet(CVPR 2021)速读

paper:Bottleneck Transformers for Visual Recognition

third-party implementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/layers/bottleneck_attn.py

出发点

传统的CNN通过堆叠多个卷积层来捕捉特征的全局依赖,但这种方法需要大量的计算资源。自注意力机制(如Transformer)在自然语言处理(NLP)任务中已被证明能有效建模长距离依赖,且计算效率高。因此,本文提出了一种结合卷积和自注意力的混合架构BoTNet,通过在ResNet的最后三个瓶颈块中引入多头自注意力(MHSA),在不显著增加计算开销的情况下,显著提升了实例分割和目标检测的性能。

创新点

本文的创新点就是自注意力与卷积的结合,将ResNet最后三个bottleneck block中的3x3卷积用多头自注意力层替代,这种简单的替换不仅提高了性能,还保持了较低的计算开销。

下图左边是原始的ResNet Bottleneck结构,将中间的3x3卷积替换为MHSA就得到了Bottleneck Transformer。

多头自注意力的结构如下图所示,和ViT中采用绝对位置编码的MHSA相比,这里采用了相对位置编码。

下表是ResNet-50和BoTNet-50的网络配置,只替换了c5中的3个bottleneck中的3x3卷积。

实验结果

表2是ResNet-50和BoTNet-50作为backbone,Mask R-CNN在COCO数据集上实例分割的效果比较。其中ResNet-50在ImageNet上进行了预训练,而BoTNet-50相比ResNet-50替换的层随机初始化其它不变的层也是采用在ImageNet上的预训练权重。可以看到在不同的训练epoch数下,BoTNet-50的表现都优于ResNet-50。


原文地址:https://blog.csdn.net/ooooocj/article/details/140621399

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!