Irwan Bello等作者Panda编译

用自注意力增强卷积:这是新老两代神经网络的对话(附实现)

2014 年,Bahdanau 等人针对机器翻译任务提出了注意模型,现在它已成为一种常用的神经网络方法。近日,谷歌大脑在 arXiv 上公布了一篇新论文,提出使用注意机制增强卷积以加强获取全局相关性的能力。在图像分类目标检测上的实验结果表明这种方法确实有效。

卷积神经网络(CNN)在大量计算机视觉应用中取得了极大成功,尤其是图像分类。卷积层的设计需要通过受限的感受野来确保局部性(locality),以及通过权重共享来确保平移等效性(translation equivariance)。研究表明,这两种属性是设计图像处理模型时关键的归纳偏置。但是,卷积核固有的局部性使它无法得到图像中的全局语境;而为了更好地识别图像中的对象,全局语境必不可少。

自注意力(self-attention)机制是获取长程交互性方面的一项近期进展,但主要还只是用在序列建模和生成式建模任务上。自注意机制背后的关键思路是求取隐藏单元计算出的值的加权平均。不同于池化或卷积算子,用在加权平均运算中的权重是通过隐藏单元之间的相似度函数动态地得到的。由此,输入信号之间的交互就取决于信号本身,而不是由它们的相对位置预先确定。尤其值得提及的是,这使得自注意机制能在不增多参数的前提下获取长城交互性。

这篇论文研究了将自注意(用作卷积的替代)用于判别式视觉任务的问题。研究者开发了一种全新的二维相对自注意机制,能够在纳入相对位置信息的同时维持平移等效性,这使得其非常适用于图像。研究表明,这种自注意方案非常有竞争力,足以完全替代卷积。尽管如此,对照实验表明,将自注意与卷积两者结合起来得到的结果最佳。因此,完全摈弃卷积思想是不妥的,而应该使用这种自注意机制来增强卷积。其实现方式是将卷积特征图(强制局部性)连接到自注意特征图(能够建模更长程的依赖)。

图 1 展示了这种注意增强方法在图像分类任务上的改进效果。

图 1:注意增强能系统性地改善不同规模的不同类型网络的图像分类结果。这里展示了不同参数量下不同模型的 ImageNet 分类准确度,其中 ResNet 是基准模型、SE-ResNet 使用了通道式注意增强、AA-ResNet 是本论文新提出的架构。

图 2:注意增强型卷积:对于每个空间位置 (h, w),都根据查询和键值在图像上计算出 N_h 个注意图(attention map)。这些注意图被用于计算 N_h 个这些值的加权平均 V。然后将所得结果连接起来,再重新调整形状以匹配原来的体空间维度并与一个逐点卷积混合。多头注意是以并行的方式应用于标准的卷积运算,输出再连接到一起。

新方法在 CIFAR-100 和 ImageNet 分类任务以及 COCO 目标检测任务上进行了测试,涉及到多种不同的架构和不同的计算成本预算,包括一种当前最佳的资源受限型架构。注意增强仅需极少量的计算负担就能实现系统性的改善,并且在所有实验中都明显优于流行的 Squeeze-and-Excitation 通道式注意方法。尤其值得提及的是,注意增强在 ImageNet 上实现的 top-1 准确度优于 ResNet50 基准 1.3%,在 COCO 目标检测上超过 RetinaNet 基准 1.4 mAP。实验还有个让人惊讶的结果:在 ImageNet 上全自注意模型(注意增强的一种特例)的表现仅略逊于对应的全卷积模型,这说明自注意本身就是一种强大的图像分类基本方法。

论文:Attention Augmented Convolutional Networks

论文链接:https://arxiv.org/pdf/1904.09925.pdf

在很多计算机视觉应用中,卷积网络都是首选范式。但是,卷积运算有一个显著缺陷,即仅在局部近邻上工作,也由此会错失全局信息。另一方面,自注意则是获取长程交互性方面的一项近期进展,但还主要应用于序列建模和生成建模任务上。在这篇论文中,我们研究了将自注意(作为卷积的替代)用于判别式视觉任务的问题。我们提出了一种全新的二维相对自注意机制,研究表明这足以在图像分类任务上替代卷积作为一种单独的原语。我们在对照实验中发现,当结合使用卷积与自注意时所得到的结果最好。因此我们提出使用这种自注意机制来增强卷积算子,具体做法是将卷积特征图与通过自注意产生的一组特征图连接起来。我们使用不同规模不同类型的模型(其中包括 ResNet 和一种当前最佳的可移动式受限网络)进行了广泛的实验,结果表明注意增强能在 ImageNet 图像分类与 COCO 目标检测任务上实现稳定的提升,同时还能保证参数数量大体接近。尤其值得提及的是,我们的方法在 ImageNet 上实现的 top-1 准确度优于 ResNet50 基准 1.3%,并且也优于 Squeeze-and-Excitation 等其它用于图像的注意机制。我们的方法还在 COCO 目标检测上超过 RetinaNet 基准 1.4 mAP。

方法

图 2:注意增强型卷积。

我们现在用数学形式描述新提出的注意增强方法。我们使用的符号表示为:H、W、F_in 分别表示一个激活图的高度、宽度和输入过滤器的数量。N_h、d_v 和 d_k 分别是指多头注意(multihead-attention / MHA)中头(head)的数量、值的深度、查询和键值的深度。我们进一步假设 N_h 均匀地划分 d_v 和 d_k,并用分别表示每个注意头的值和查询/键值的深度。

自注意

给定一个形状为 (H, W, F_in) 的输入张量,我们将其展开为一个矩阵,并如 Transformer 架构提出的那样执行多头注意。则单个头 h 的自注意机制输出为

其中,是可学习的线性变换,它们分别将输入 X 映射查询 Q、键值 K 和值 V。

所有头的输出可以连接起来: 

其中也是一个线性变换。然后再将 MHA(X) 的调整为形状为 (H, W, d_v) 的张量

注意增强型卷积

不同于之前的方法,我们使用的注意机制可以联合注意空间子空间和特征子空间;另外我们是引入额外的特征图,而不是对它们进行精细化处理。图 2 总结了我们提出的增强型卷积。

图 3:注意增强型 2D 卷积的 Python 代码

实验

我们在 CIFAR100、ImageNet 和 COCO 数据集上通过 ResNet 和 MnasNet 等标准计算机视觉架构对注意增强方法进行了实验测试。结果表明,在不同的架构和计算需求上,注意增强都能在图像分类目标检测任务上实现系统性的提升。我们也通过消融实验评估了所提出的二维相对注意机制。在所有的实验中,我们都用自注意特征图替代卷积特征图,因为这能与基准模型进行更轻松的比较。除非另有说明,所有结果都对应于我们的二维相对自注意机制。

CIFAR-100 图像分类 

表 1:使用 Wide-ResNet 28-10 架构在 CIFAR-100 数据集上的图像分类结果。我们比较了基准模型与参数更少的 Gather-Excite (GE)、Squeeze-Excite (SE) 和新提出的注意增强 (AA) 的 top-1 与 top-5 准确度。

使用 ResNet 的 ImageNet 图像分类

表 2:不同 ResNet 架构在 ImageNet 数据集上的图像分类结果。

使用 MnasNet 的 ImageNet 图像分类

表 3:宽度乘数为 0.75、1.0、1.25 和 1.4 时,基准和注意增强的 MnasNet 的准确度。

图 4:MnasNet(黑)和注意增强型 MnasNet(红)的 ImageNet top-1 准确度随参数数量的变化,深度乘数为 0.75、1.0、1.25 和 1.4。

基于 COCO 数据集的目标检测

表 4:使用不同骨干架构的 ResNet 架构在 COCO 数据集上的目标检测结果。我们报告了在三个不同 IoU 值上的平均精度均值。

控制变量实验

表 5:使用不同注意通道比例的注意增强型 ResNet-50。

图 5:在我们的注意增强型 ResNet50 上,随注意通道的比例增加的相对位置嵌入的效果。

表 6:在 ImageNet 分类上,注意增强中不同位置编码的效果

表 7:在 COCO 目标检测任务上,使用 RetinaNet AA-ResNet-50 骨干时注意增强中不同位置编码的效果。

实现

该论文中展示了这一新方法的 TensorFlow 实现。近日,研究者 Myeongjun Kim 开源了其对该方法的 PyTorch 实现。

PyTorch 实现地址:https://github.com/leaderj1001/Attention-Augmented-Conv2d

其中包括两个版本的实现:

理论谷歌大脑Quoc Le卷积神经网络自注意力
7
相关数据
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

注意模型技术

注意模型是采用了注意力机制的机器学习模型,注意力机制是在编码器-解码器结构下用于神经机器翻译(NMT)的一种结构,它已经非常快速地扩展到了其它相关任务,例如图像描述和文本摘要等。直观而言,注意力机制通过允许解码器在多个向量中关注它所需要的信息,从而使编码器避免了将输入嵌入为定长向量,因此能保留更多的信息。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

暂无评论
暂无评论~