NeurIPS 2019
Prajit Ramachandran, Niki Parmar, Ashish Vaswani, Irwan Bello, Anselm Levskaya, Jonathon Shlens

一、简介

受限于感受域的大小设定,卷积很难获取长距离的像素关系,而在序列模型中,已经能很好地用attention来解决这个问题。

将内容交互的模块(注意力机制)作为视觉模型的主要单元。为此,我们提出了一个简单的局部自我关注层(local self-attention layer),该层既可以用于小输入,也可以用于大输入。

二、背景

2.1 卷积

卷积神经网络利用较小的领域(即核大小)来鼓励网络学习特定层内的局部相关结构。

在这里插入图片描述

如图是一个3×3的核,通过与对应的像素相乘加权求和的方式得到中心点像素的结果。

CNN采用权重共享的方式,强调学习表示中的平移等价性,因此将卷积的参数计数与输入大小分离。

2.2 自注意力机制

注意力机制的作用是学习一个背景下的重要区域。独立自注意力层定义了三个概念query,key, value。

self-attention直接模拟远距离交互的能力及并行性。

在这里插入图片描述

如图是Single-headed attention(单头注意力机制)。

输入是一个特征图,分别通过卷积层得到querys、keys和values。然后将每一个query单元与keys中的各个key单元相乘求和,再经过softmax得到参数,该参数与values对应像素位置相乘后加权得到最终的输出单元。

公式如下:

在这里插入图片描述

该注意力机制中缺少编码位置信息,这使得他的排列是等变的,从而限制了视觉任务的表现力。

在这里插入图片描述

已经有实验证明,相对位置要优于绝对位置,绝对位置要由于没有加位置。

如上图所示,使用二维相对位置编码(relative attention),将行偏移和列偏移的编码进行concatenate。该二维相对位置编码是可以被训练的。

在这里插入图片描述

上式就是同时考虑query和key的内容间的相似性以及相对位置。

由于考虑了相对位置,self-attention也拥有了类似卷积的平移不变性。

三、Fully Attentional Vision Models

构建一个完全注意力的架构。

Replacing Spatial Convolutions:

空间卷积为核大于1×1的卷积,文中把所有的空间卷积替换成self-attention layer,若需要下采样,则在层后接一个stride为2的2×2的平均池化。

self-attention layer:

CNN的初始层,又称stem,在学习局部特征(如边缘)发挥着关键的作用,后面的层用来识别全局对象。并且由于输入图像通常比较大,初始层的任务还有下采样。

stem中的内容包含RGB像素,这些像素是高度空间相关的,独立起来则失去了意义,没有丰富的content信息,使用第二部分中的self-attention效果不佳。

在这里插入图片描述

文中提出了一个空间感知(spatially aware)自注意力层来解决标准的自注意力层无法包含空间信息的问题。

将输入经过m个1×1的卷积核得到m个V。emb是位置矩阵,分row和col,该矩阵是可以学习的。

p(a, b, m)表示V中注入位置的信息,由于不同相对位置的emb不同,所以同一个像素点在不同的相对距离下就有不同的值,类似与卷积的属性,有利于边缘特征学习。

x是由Q和K得出的参数,与self-attention layer得参数求的方法一致。

四、实验

在这里插入图片描述

在这里插入图片描述

GitHub 加速计划 / vi / vision
15.85 K
6.89 K
下载
pytorch/vision: 一个基于 PyTorch 的计算机视觉库,提供了各种计算机视觉算法和工具,适合用于实现计算机视觉应用程序。
最近提交(Master分支:2 个月前 )
518ee93d 2 天前
7d077f13 3 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐