介绍
摘要
我们介绍了BoTNet,这是一个概念简单但功能强大的骨干架构,将自注意力引入多个计算机视觉任务,包括图像分类、物体检测和实例分割。通过仅在ResNet的最后三个瓶颈块中用全局自注意力替换空间卷积,而不进行其他更改,我们的方法在实例分割和物体检测任务上显著提升了基线性能,同时减少了参数,延迟方面的开销也极小。通过设计BoTNet,我们还指出了带自注意力的ResNet瓶颈块可以视为Transformer块。在不增添任何复杂元素的情况下,BoTNet在COCO实例分割基准上使用Mask R-CNN框架实现了44.4%的Mask AP和49.7%的Box AP,超过了以前在COCO验证集上评估的ResNeSt [67]单模型和单尺度结果的最佳水平。最后,我们展示了将BoTNet设计简单地适应图像分类的方法,结果显示模型在ImageNet基准上达到了84.7%的top-1准确率,而在TPU-v3硬件上的“计算”时间比流行的EfficientNet模型快高达1.64倍。我们希望我们简单而有效的方法能成为未来视觉自注意力模型研究的强有力基准。
YOLOv11目标检测创新改进与实战案例专栏
点击查看文章目录: YOLOv11创新改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例
点击查看专栏链接: YOLOv11目标检测创新改进与实战案例
文章链接
论文地址:论文地址
代码地址: 代码地址
基本原理
多头自注意力(Multi-Head Self-Attention)是一种在神经网络,尤其是Transformer架构中常用的机制,它在自然语言处理、计算机视觉等领域取得了显著的效果。多头自注意力的核心思想是通过多个注意力头(attention heads)来捕捉输入数据中不同部分之间的关系,从而提升模型的表示能力。
自注意力机制(Self-Attention)
在解释多头自注意力之前,先了解自注意力机制。自注意力机制的主要步骤如下:
-
输入向量:假设输入是一组向量,表示为 X = [ x 1 , x 2 , . . . , x n ] \mathbf{X} = [x_1, x_2, ..., x_n] X=[x1,x2,...,xn],其中每个 x i x_i xi是一个 d d d维向量。
-
线性变换:对每个输入向量 x i x_i xi进行三个线性变换,生成查询(query)、键(key)和值(value)向量:
q i = W q x i , k i = W k x i , v i = W v x i q_i = W_q x_i, \quad k_i = W_k x_i, \quad v_i = W_v x_i qi=Wqxi,ki=Wkx