美文网首页
在视觉任务中统统使用注意力

在视觉任务中统统使用注意力

作者: Valar_Morghulis | 来源:发表于2020-10-26 10:01 被阅读0次

    https://blog.csdn.net/baigalxy/article/details/93662282

    一作包括vaswani。这篇论文的出现时间应该比“注意力补充卷积”那篇更晚,虽然那篇的最新版是2020年,但是注意最早提交时间。

    摘要:卷积是现代计算机视觉系统的基本组成部分。最近的方法主张超越卷积来捕获长程依赖。这些努力集中在用基于内容的交互来作为卷积的补充,例如自注意力和非局部手段,以获得在一些视觉任务上的提升。由此自然会提出一个问题,能否构建一个全自注意力模型,而不是让自注意力作为卷积的补充。我们开发和测试了一个全自注意力模型,证明是可以这样的。将ResNet的所有空间维度的卷积替换成自注意力机制,由此构成的全自注意力模型在ImageNet分类上好于基线,并且FLOPs少12%,参数量少29%。在COCO检测上,全自注意力模型的mAP性能与基线RetinaNet相当,而FLOPs少39%,参数量少34%。详细的消冗研究表明,在网络的较后的层使用自注意力尤其有效。结果表明,全自注意力模型是计算机视觉从业者工具箱的一个重要补充。

    1. 引言

    数字图像处理提供这样一个认识,即人工设计的线性滤波器卷积能够带来很多用处[1]。数字图像处理的成功及生物学方面的考虑[2,3]启发了神经网络的早期实践者开发卷积表示,以获得参数高效的图像表示的可学习架构[4,5]。

    大型数据集[6]及高算力计算资源[7]的出现使得CNN成为许多CV应用的主干[8-10]。深度学习领域已经转向CNN架构的设计,以提高图像识别[11–16]、目标检测[17–19]和图像分割[20–22]的性能。卷积的平移等变性是将卷积作为图像模型的基本组件的重要动机[23,24]。然而,卷积捕获远程关系的有挑战性的,因为它们对大感受野的伸缩性较差。

    在序列建模中,通过使用注意力,解决了远程关系建模的问题。注意力在语言建模[25,26]、语音识别[27,28]和神经字幕[29]等任务中取得了巨大成功。近年来,注意力机制被用于判别类型的视觉任务中,以提高传统CNN的性能。最值得注意的是一种基于通道注意力的称为Squeeze-Excite,可由选择性地调节CNN通道的规模[30,31]。同样地,空间感知的注意力机制也被用于增强CNN架构,以提供上下文信息来改进目标检测[32]和图像分类[33–35]。这些工作是使用全局注意力层作为现有卷积模型的补充。全局注意力关注的是空间维度上的所有位置,从计算量考虑,通常是需要对输入做下采样以减小输入的尺寸。

    本文提出这样一个问题,基于内容的交互能否作为视觉模型的主要组件,而不是作为卷积的补充。为此,我们开发了一个简单的局部自注意力层,既能用于小尺寸输入也能用于大尺寸输入。我们用这个注意力层来构建一个全注意力模型,它在参数量和计算量上都优于基线的卷积模型。此外,我们做了一系列的消冗研究,以更好地理解全注意力模型。我们希望这一结果将刺激新的研究方向,重点放在探索内容交互作为一种改进视觉模型的机制。


    相对位置编码部分:

    其中查询项q_{ij} =W_{Q} x_{ij} ,键项k_{ab} =W_{K} x_{ab} 和值项v_{ab} =W_{V} x_{ab} 是位置ij的像素和它的领域像素的线性变换。softmax_{ab} 表示一个softmax函数用于计算ij的所有邻居像素的logits上。W_{Q} ,W_{K} ,W_{V} \in R^{d_{out} \times d_{in} }的参数是可训练的。局部自注意力聚合来自领域的信息,这一点和卷积相似,所不同之处是,局部自注意力的聚合是值项向量用混合权重(softmax(\cdot ))的凸组合,权重是由内容关系参数化的。这个计算在每个位置ij处重复。在实践中,多头注意力被用来学习输入的多种不同表示。它是将像素特征x_{ij} 在通道方向上划分成N组,{x_{ij}^n}\in R^{d_{in} /N} ,在每组上用不同的线性变换W_{Q}^n ,W_{K}^n ,W_{V}^n \in R^{d_{out} /N\times d_{in}  /N}分别地计算每个单头注意力,然后将输出表示拼接起来作为最终输出y_{ij} \in R^{d_{out} }

    而在上述的计算过程中,没有位置信息被编码进注意力中,因此它是排列等变的,这限制了它在视觉任务上的表达能力。可以使用像素绝对位置ij的正弦编码[25],但是早期的实验研究表明,使用相对位置编码[51,46]可以显著地提高准确度。本文使用2D相对位置编码,也就是相对注意力。相对注意力首先是定义从位置ij到每个位置ab\in N_{k} (i,j)的相对距离。相对距离按行和列的维度的分解,因此每个像素ab\in N_{k} (i,j)会接收两个距离:一个行方向上偏移量a-i和一个列方向上的偏移量b-j,见图4。行偏移量和列偏移量分别关联到嵌入r_{a-i} r_{b-j} 上,这两个嵌入的维度都是\frac{1}{2} d_{out} 。将行和列的偏移量嵌入拼接,拼接为r_{a-i,b-j} 。因而,空间相对注意力被定义为:

    就这样,用来衡量查询项和N_{k} (i,j)中的元素的相似度的logit的计算就既包含元素的内容,也包含元素相对于查询项的相对距离信息。请注意,通过输入相对位置信息,自注意力也具有平移等变性,就像卷积一样。

    注意力的参数量和空间范围无关,而卷积的参数量和空间范围呈二次增长。在d_{in} d_{out} 设为典型设置下,注意力的计算量随着空间范围增长而增长地慢些,相比卷积而言。例如,当d_{in} = d_{out} =128k=3的卷积层和k=19的注意力层的计算量是一样的。


    注意,通过输入相对位置信息,自我注意也享受翻译等变,类似于卷积

    注意的参数计数与空间范围的大小无关,而卷积的参数计数与空间范围呈二次增长。与din和dout这两个典型值的卷积相比,注意力的计算开销也随着空间范围的增加而变慢。例如,如果d in=d out=128,则k=3的卷积层与k=19的注意层具有相同的计算开销。

    2. 背景

    2.1 卷积

    CNN常常用于,在小的领域(也就是卷积核尺寸)上使模型能够学到局部相关结构。给定一个输入

    2

    2.1

    广泛的机器学习应用程序利用卷积来实现竞争结果,包括文本到语音[36]和生成序列模型[37,38]。为了提高模型的预测性能或计算效率,已经做出了一些努力。值得注意的是,深度可分离卷积提供了空间和通道相互作用的低秩因子分解[39–41]。这种因子分解允许在移动和边缘计算设备上部署现代CNN[42,43]。同样地,在各种视觉应用中,在本地连接的网络中探索了放松的翻译等价性[44]。

    2.2自我关注

    文献[45]提出了一种神经序列转换模型中的编码器-解码器,它允许基于内容的摘要从可变长度的源语句中提取信息。注意力学习的能力集中在一个上下文中的重要区域,这使得它成为神经传导模型的一个关键组成部分,用于多种模式[26,29,27]。将注意力作为表征学习的主要机制在[25]之后的深度学习中得到了广泛的应用,这种方法完全用自我注意取代了重复性。自我注意被定义为应用于单个上下文而不是跨多个上下文的注意(换句话说,本节后面定义的查询、键和值都是从同一上下文中提取的)。自我关注直接模拟远程交互的能力及其并行性利用了现代硬件的优势,为各种任务提供了最先进的模型[46–51]。

    一个新兴的主题是用自我注意来增强卷积模型,它在一些视觉任务中取得了进展。[32]表明自我注意是非局部手段的一个实例[52],并用它来实现视频分类和目标检测的增益。[53]还展示了在图像分类方面的改进,以及在视频动作识别任务中使用各种非局部方法的最新结果。同时,[33]还发现,通过增强卷积特征和全局自我注意特征,在目标检测和图像分类方面取得了显著的进展。本文超越了文献[33],通过消除卷积和在整个网络中使用局部自我注意。另一项并行工作[35]提出了一个新的基于内容的层,用于整个模型,探索了类似的思路。这种方法是对我们关注的直接利用现有形式的自我关注在整个视觉模型中使用的补充。

    我们现在描述一个独立的自我注意层,可以用来取代空间卷积和建立一个完全注意模型。注意层的开发是以简单性为重点的,通过重用先前工作中探索的创新,我们把它留给未来的工作来开发新的注意形式。

    这种形式的局部注意不同于先前研究视觉注意的工作,后者在所有像素之间进行全局(即,所有对所有)注意[32,33]。只有在对输入进行了显著的空间降采样后,才能使用全局注意力,因为它的计算成本很高,这就妨碍了它在完全注意模型中跨所有层的使用。

    3个完全注意视觉模型

    以局部注意层为基础,问题是如何构建一个完全注意结构。我们分两步实现:

    3.1替换空间卷积

    空间卷积定义为空间范围k>1的卷积。此定义不包括1x1卷积,该卷积可视为独立应用于每个像素的标准完全连接层。3这项工作探索了创建完全注意视觉模型的直接策略:采用现有的卷积结构,用注意层替换空间卷积的每个实例。每当需要空间下采样时,一个平均池和一个平均池都会跟随注意层。

    这项工作将转换应用于ResNet体系结构家族[15]。ResNet的核心构建块是一个瓶颈块,它的结构是1×1向下投影卷积、3×3空间卷积和1×1向上投影卷积,然后是块的输入和块中最后一个卷积的输出之间的剩余连接。瓶颈块被重复多次以形成ResNet,其中一个瓶颈块的输出作为下一个瓶颈块的输入。提出的变换将3×3空间卷积与等式3中定义的自我注意层交换。所有其他结构,包括层数和应用空间下采样时,都被保留。这种转换策略很简单,但可能不太理想。将注意力作为一个核心组件来构建架构,比如使用架构搜索[54],就有可能得到更好的架构

    3.2更换卷曲茎

    CNN的初始层,有时称为茎,在学习局部特征(如边缘)方面起着关键作用,随后的层使用这些特征来识别全局对象。由于输入图像较大,stem通常与核心块不同,侧重于空间下采样的轻量级操作[11,15]。例如,在一个ResNet中,stem是一个7×7卷积的stripe2,然后是3×3最大池的stripe2。

    在茎层,内容由RGB像素组成,这些像素单独没有信息,并且在空间上高度相关。这种特性使得学习有用的特征(如边缘检测器)对于基于内容的机制(如自我注意)很困难。我们早期的实验证实,在词干中使用等式3中描述的自我注意形式比使用ResNet的卷积词干表现差。

    卷积的基于距离的权值参数化使他们能够很容易地学习边缘检测器和其他更高层所需的局部特征。为了在不显著增加计算量的情况下弥合卷积和自我注意之间的鸿沟,我们通过空间变化的线性变换在逐点1×1卷积(WV)中注入基于距离的信息。新的值变换是~v ab=(P m P(a;b;m)W m v)x ab,其中多个值矩阵W m v通过因子的凸组合组合而成,这些因子是像素在其邻域P(a;b;m)中位置的函数。位置相关因子类似于卷积,卷积学习依赖于邻域中像素位置的标量权重。然后,干由具有空间感知价值特征的注意层组成,然后是最大池。为简单起见,注意力感受野与最大池窗口对齐。关于p(a;b;m)精确公式的更多细节见附录

    4个实验

    4.1 ImageNet分类

    安装程序

    我们在ImageNet分类任务[55]上进行了实验,该任务包含128万张训练图像和5万张测试图像。第3.1节中描述的将空间卷积层替换为ResNet-50[15]模型每个瓶颈块内部的自我注意层的过程用于创建注意模型。多头自我注意层使用的空间范围是k=7和8个注意头。使用如上所述的位置感知注意杆。stem在原始图像的每个4×4空间块内进行自我注意,然后进行批量归一化和a4×4最大池操作。精确的超参数可以在附录中找到

    为了研究这些具有不同计算预算的模型的行为,我们通过宽度或深度来缩放模型。对于宽度缩放,在所有层中,基础宽度与给定因子线性相乘。对于深度缩放,将从每个层组中移除给定数量的层。有4个层组,每个层都有多个层在相同的空间维度上运行。通过空间下采样来划分组。与50层模型相比,38层和26层模型分别从每个层组中移除1层和2层。

    结果

    表1和图5显示了与卷积基线相比,完全注意变量的结果。与ResNet-50基线相比,完全注意变量达到0:5%。表1:不同深度ResNet网络的ImageNet分类结果。基线是一个标准的ResNet,Conv stem+Attention在stem和其他地方使用空间卷积,而Full Attention使用包括stem在内的所有地方的注意。注意力模型在所有深度上都优于基线,同时有12%的失败和29%的参数减少。

    更高的分类精度,同时减少12%的浮点运算(FLOPS)4和29%的参数。此外,通过深度和宽度缩放产生的大多数模型变化,这种性能增益是一致的。

    4.2椰子目标检测

    安装程序

    在本节中,我们使用RetinaNet架构评估COCO目标检测任务[56]的注意模型[18]。视网膜网是一种目标检测模型,由主干图像分类网络、特征金字塔网络(FPN)[57]和两个被称为检测头的输出网络组成。我们尝试让主干和/或FPN和探测头完全集中注意力。主干模型与第4.1节中描述的模型相同。关于如何充分注意FPN和探测头的细节,见附录

    结果

    目标检测结果如表2所示。在视网膜网中使用基于注意的主干与使用卷积主干的映射相匹配,但包含的参数少了22%。此外,在模型的所有部分(包括主干、FPN和探测头)使用注意力匹配基线视网膜网的地图,同时使用的参数减少34%,触发器减少39%。这些结果证明了独立注意在多个视觉任务中的有效性。

    表2:基于视网膜网的COCO数据集目标检测[18]。在三个不同的IoU值和三个不同的对象大小(小、中、大)下报告平均精度(mAP)。完全注意模型获得与基线相似的mAP,同时失败次数减少39%,参数减少34%。

    表3:修改哪些图层组使用哪种基本体。根据验证集计算的精度。表现最好的模型对早期组使用卷积,对后期组使用注意力。

    表4:改变空间范围k。参数计数在所有变化中都是恒定的。小k的表现较差,但大k高原的改善较差。

    4.3独立注意力在哪里最有用?

    完全注意模型令人印象深刻的表现证明了独立注意是视觉模型的一个可行的原语。在本节中,我们将研究网络的哪些部分从独立关注中受益最大。

    首先,我们比较了注意干和卷积干在ResNet中的性能。所有其他的空间卷积都被独立的注意力所取代。表1、表2和图5显示了ImageNet分类和COCO目标检测的结果。对于分类,卷积干始终匹配或优于注意干。对于目标检测,当检测头和FPN也是卷积的时,卷积干的性能更好,但是当整个网络的其余部分完全注意时,卷积干的性能相似。这些结果表明,卷积始终表现良好时,用于干。

    全网络

    接下来,我们在带有卷积干的ResNet的不同层组中使用卷积和独立注意进行实验。表3显示,表现最好的模型在早期组中使用卷积,在后期组中使用注意力。这些模型在触发器和参数方面也与完全注意模型相似。相反,当在早期组中使用注意,在后期组中使用卷积时,尽管参数计数大幅增加,性能仍会下降。这表明卷积可以更好地捕捉低层次的特征,而独立的注意层可以更好地整合全局信息。

    综上所述,这些结果表明,视觉从业者应该专注于开发结合卷积和独立注意的比较优势的架构设计策略。

    表5:改变位置编码类型对注意力的影响。验证集上计算的精度。相对编码显著优于其他策略。

    表6:消除注意中qk交互作用的效果。仅仅使用qr交互只会降低0:5%的准确率。

    表7:消融注意干的形态。空间感知价值注意优于独立注意和空间卷积产生的价值

    4.4哪些部件值得注意?

    本节介绍旨在了解局部注意层中各种组件的贡献的烧蚀。除非特别说明,否则消融中的所有注意模型都使用卷积干

    4.4.1自我注意空间广度的影响

    空间范围k的值控制每个像素可以关注的区域的大小。表4研究了改变空间范围的影响。虽然使用较小的k(如k=3)对性能有很大的负面影响,但使用较大的k平台(k=11)的改进效果更好。确切的平台值可能取决于超参数的特定设置,例如特征大小和使用的注意头的数量。

    4.4.2位置信息的重要性

    表5列出了可以使用的不同类型的位置编码:无位置编码、依赖于像素绝对位置的正弦编码[25]和相对位置编码。使用任何位置编码的概念都比不使用位置编码有利,但是位置编码的类型也很重要。相对位置编码的性能比绝对编码高2%。此外,表6展示了内容相关交互作用(q-r)在注意中的重要作用。去掉内容-内容(q-k)交互,只使用内容相对交互,准确率仅下降0:5%。位置信息的重要性表明,未来的工作可以通过探索位置信息的不同参数化和用法来提高注意力。

    4.4.3空间感知注意干的重要性表7比较了在干中使用独立注意与第3.2节中提出的空间感知值的注意干。尽管有相似数量的失败,但提议的注意干比独立注意的表现要好1:4%,这验证了修改注意用于注意干的效用。此外,将空间卷积应用于值,而不是第3.2节中提出的空间感知的逐点变换的混合,会导致更多的失败,性能稍差。未来的工作可以集中在将stem中使用的空间感知注意与网络主干中使用的注意统一起来。

    5讨论

    在这项工作中,我们验证了基于内容的交互确实可以作为视觉模型的主要原语。基于所提出的独立局部自注意层的完全注意网络在ImageNet分类和COCO目标检测任务上实现了具有竞争力的预测性能,同时比相应的卷积基线需要更少的参数和浮点运算。此外,烧蚀显示注意在网络的后期尤其有效。

    我们看到了一些改善这些网络性能的机会。首先,注意力机制可以通过开发更好的捕捉几何图形的方法来改善[58,59]。其次,图像分类和目标检测所采用的体系结构是通过对为卷积基元设计的模型应用简单的变换来开发的[13,19]。可以通过在设计搜索空间中具体搜索具有作为组件的注意层的架构来实现改进[31、16、21、60]。最后,在提出新的注意力形式以捕捉低层次特征方面的额外工作可以使注意力在网络的早期层次有效[61,62]。

    虽然基于注意的体系结构的训练效率和计算需求有利于传统卷积,但是产生的网络在挂钟时间上较慢。造成这种差异的原因是缺乏各种硬件加速器上可用的优化内核。原则上,根据该领域认为注意力提供了一条可行路径的程度,有可能相应地大大加快训练和推理的时间。

    虽然这项工作主要集中在基于内容的交互,以建立他们对视觉任务的美德,但在未来,我们希望将卷积和自我关注结合起来,以最好地结合他们的独特优势。鉴于基于内容的交互在核心计算机视觉任务上取得了成功,我们预计未来的工作可能会探索如何将注意力应用于其他视觉任务,如语义分割[63]、实例分割[64]、关键点检测[65]、人体姿势估计[66、67]以及目前使用卷积方法处理的其他任务神经网络

    附录

    A、 1注意杆

    在本节中,我们首先描述标准的自我注意层,然后描述注意干中的空间感知混合。

    注意干用空间感知线性变换代替逐点值vij。为了简单起见,我们将查询、键和值接收字段与最大池接收字段4×4对齐。然后,为了注入距离感知值特征,我们使用多值矩阵W m V的凸组合,其中组合权重是值在池窗口中的绝对位置的函数。函数形式在方程9中定义,它计算绝对嵌入和混合嵌入之间的logit

    其中emb行(a)和emb列(b)是池窗口对齐的行和列嵌入,vm是每个混合嵌入。由此产生的pmab在混合干层的4个注意头之间共享。

    A、 2 ImageNet培训详情

    对于调优,使用包含训练集的4%随机子集的验证集。使用Nesterov的加速梯度[68,69]进行130个周期的训练,学习率为1:6,线性预热10个周期,然后进行余弦衰减[70]。总批量大小为4096,分布在128Cloud TPUv3核上[71]。该设置使用批标准化[40],衰减为0:9999,指数移动平均,权重为0:9999,超过可训练参数[72,73]。

    A、 3目标检测培训细节

    全注意目标检测体系结构使用第4.1节详述的全注意分类模型作为其主干网络。其余的结构是用相同宽度的自关注层(d out=256)代替原视网膜网结构中的3×3卷积得到的。在替换跨步卷积时,我们还使用了跨步2的2×2平均池。分类和回归头在所有级别上共享权重,其WV矩阵从正态分布中随机初始化,标准偏差为0:01,如原始视网膜网结构[18]。最后,我们在分类和盒回归头的末尾添加一个额外的逐点卷积来混合注意力头。在图像分类实验中,所有的自我注意层都使用了K=7的空间范围和8个头部。我们遵循类似于[18,33]的培训设置。所有网络都经过150个阶段的训练,批量大小为64。在一个时间段内,学习率从0线性上升到0.12,然后衰减

    使用余弦时间表。我们采用多尺度抖动,在训练过程中裁剪到最大尺寸640,并以50%的概率随机水平翻转图像

    相关文章

      网友评论

          本文标题:在视觉任务中统统使用注意力

          本文链接:https://www.haomeiwen.com/subject/ekfamktx.html