比CNN更强有力,港中文贾佳亚团队提出两类新型自注意力网络|CVPR2020
本文作者研究了自注意力在图像识别模型中的有效性,提出两种形式的自注意力:pairwise与patchwise,从鲁棒性和泛化性能方面均「优于标准卷积网络」。
Tips:作者系极市原创作者计划特约作者Happy
欢迎大家联系极市小编(微信ID:fengcall19)加入极市原创作者行列
paper:https://hszhao.github.io/papers/cvpr20_san.pdf
code:https://github.com/hszhao/SAN
该文是香港中文大学贾佳亚老师团队投于
CVPR2020
的一篇关于动态滤波器卷积的文章。对动态滤波器卷积实现不明白的小伙伴可能看该文会非常费力。本文首先在不改变原文意思的基础上进行简单的翻译与介绍,在后续的文章中本人将从另一个角度对该文进行解析并进行复现和转换,欢迎持续关注。
Abstract
近期的研究表明:自注意力可以作为图像识别模型的基础模块而存在。作者探索了自注意力机制的变种并对其在图像识别中的有效性进行了评价。作者考虑了两种形式的自注意力机制:(1) pairwise self-attention
,它是标准点积注意力的扩展,本质上是一组操作;(2) patchwise self-attention
一种比卷积更强有力的的操作,其对应的模型明显优于标准卷积版本。作者还通过实验验证了所提表达方式的鲁棒性,并证实自注意力网络从鲁棒性和泛化性能方面均优于标准卷积网络。
看完上面这一段介绍,大家有没有感觉看的云里雾里,不知所云。这到底是个什么鬼?没关系,下面的原文翻译会让你更加的不知所云,拭目以待!
Method
在卷积网络中,网络中的OP有两个作用:(1) 特征聚合(feature aggregation),对局部近邻特征采用核参数进行加权得到输出特征;(2) 特征变换(feature transformation),它有后接线性映射以及非线性函数达成(即BatchNorm+ReLU
)。
作者认为:前述两个功能可以解耦。如果可以采用一种特殊的机制进行特征聚合,那么采用感知器(它包含线性映射与非线性函数)进行逐点特征变换。作者主要聚焦于特征聚合部分进行研究。其实说白了就是尝试提出一种特殊的机制替代标准卷积。
常规卷积通过固定核进行特征聚合,即全图权值共享,不会随特征内容而自适应变化,同时参数量会随着聚合特征数量增加而增加。鉴于此,作者提出几种特征聚合机制并构建了一个高性能图像识别框架(它交错执行特征聚合(自注意力)和特征变换(逐点感知器))。
作者探索了两种类型的自注意力机制:(1) pairwise self-attention
;(2) patchwise self-attention
.
Pairwise Self-attention

Position Encoding

Patchwise Self-attention

Self-attention Block
上图给出了本文所提出的自注意力机制在残差模块中嵌入示意图。输入特征图将经由两个处理流:(1)左边分支用于评估输出注意力权值;(2)右边分支将对输入进行线性变换,为更有效的处理进行降维。前述两个分支的输出将通过Hadamard
乘积进行特聚合,聚合后特征将经由规范化操作+非线性激活与最后的非线性层得到与输入同等通道的输出。
看到这里,不知道各位小伙伴是否看懂了作者想要表达的意思?反正我第一次看的时候是没看懂,也不知道到底是怎么做的,看的云里雾里一塌糊涂。没关系,我后面会提供一种更为通用的解释来介绍上述两种自注意力机制。
Network Architectures
前面基本上已经把本文的核心全部介绍完毕了,那么接下来就是要说明一下如何利用前述提到的两种模块搭建一个完成的神经网络了。
ResNet
不愧是深度学习的里程碑,万能油网络啊,太多太多的网络都是在ResNet
的基础上进行修改发paper,造就了太多的高质量paper
(比如Res2Net, ResNeXt, MobileNetV2
等)。
没有任何意外,作者还是在ResNet
的基础上进行改造。下表为改造模型参数列表,作者提供了三种深度的网络SAN10, SAN15, SAN19
,它们分别对应ResNet26, ResNet38, ResNet50
。
前面给出了作者改造的网络结构:SAN系列。我们从下面几个部分针对该系列模型进行简单的分析。
Backbone: SAN的骨干部分包含5个阶段,不同阶段具有不同的空间分辨率,最终输出32倍下采样的特征。每个阶段包含不同数量的自注意力模块,相邻的两个阶段参考
DenseNet
通过过渡层(过渡层的作用是降低空间分辨率并提升通道数)桥接。在五个阶段之外,后接一个分来Head模块,该模块由全局均值池化、全连接层以及softmax
构成。Transition:过渡层的用于降低特征空间分辨率,因此可以降低计算复杂度提升感受野。过渡层由
BatchNorm、ReLU、MaxPool以及1x1卷积
(用于扩增通道维度)构成。Footprint:局部范围用于控制特征聚合的上下文数量,为平衡计算复杂度和效果,作者在后四个阶段的只注意模块中设为,而第一个则设为(出于计算复杂度、显存消耗考虑)。
Instantiations:通过调节网络不同阶段的自注意力模块的数量控制网络的容量,相关配置参数将上表,基本上是参考
ResNet
进行设置的。
Comparison
上表对比了自注意力模块与常规卷积、标量注意力机制之间的区别所在。
Convolution:常规卷积具有固定的核权值,不会随内容而变化,但和权值会跨通道变化(但这种变化是训练确定的,很难说是真正意义上的通道自适应);
Scalar Attention:标量注意力的聚合权值会根据内容随位置发生变换,但存在跨通道共享。
Vector attention:作者所设计的自注意力模块则同时具有内容自适应与通道自适应性。
Experiments
作者在ImageNet
数据集上进行了所提方法的实验与验证。相关训练信息如下:
Epoch
:100Learning rate
: cosine learning rate with base 0.1Standard data augmentation
: random crop, random flip, normalizeSyncSGD
: momentum=0.9, weight decay=0.0001Label Smoothing
: regularization coefficient=0.1BatchSize
: 256.关于自注意力模块的几个参数设置为:r1=16,r2=4,权值共享的通道数设为8.

上图给出了所提SAN与对标ResNet
的性能差异对比。从中可以看到:(1) pairwise
模型媲美甚至优于对标的ResNet
模型;(2)patchwise
模型以极大的优势超越了对标的ResNet
。

上表对比了自注意力模块中不同相关函数下的性能,从中可以看到:(1)对于pairwise
模型而言,summation、subtraction以及Hadamard乘积
具有相似的精度,并优于其他两种相关函数;(2)对于patchwise
模型而言,concatenation
取得最佳性能。

上表对比了自注意力模块中不同映射函数的性能对比。从中可以看到:(1)对于pairwise
模型而言,两个全连接层即可取得最佳性能;(2) 对于patchwise
模型而言,不同的配置具有相似的性能(考虑到内存占用与计算量问题,作者最终选用了两个全连接层的配置)。

上表验证了自注意力模块中使用三个离散变换函数的必要性。从中可以看到:使用三个独立的变换函数具有最佳性能,使用独立变换函数的另外一个优势是降低计算复杂度。

上表对比了自注意力模块中不同局部范围(即卷积核尺寸)下的性能对比。从中可以看到:(1)在常规卷积中,提升卷积核尺寸会提升计算复杂度与内存占用;(2)在SAN中,性能先随核尺寸增大而提升,而后达到饱和。对于pairwise
模型而言,提升核尺寸对于参数没有任何影响。综合考量后,作者将核尺寸设置为7*7。
最后,作者评价了位置编码在pairwise模型中的重要性,结果见上表。从中可以看到:位置编码具有很重要的影响:位置编码能带来5%的性能提升。

此外,作者从两个方面验证了模型的鲁棒性。(1) 旋转鲁棒性(见上表),pairwise
模型具有更佳的抗旋转性鲁棒性,这也与前面提到的patchwise
不具有置换不变性不谋而合;(2) 对抗鲁棒性(见下表),patchwise
具有更佳的对抗攻击鲁棒性;(3)相比常规卷积网络,自注意力网络具有更佳的鲁棒性和泛化性能。
Conclusion
作者研究了自注意力在图像识别模型中的有效性,作者提出了两种形式的自注意力:pairwise
与patchwise
。作者通过实验得到以下几点重要发现:
基于
pairwise
的网络取得了匹配甚至超越纯卷积网络的性能,这意味着计算机视觉中深度学习的成功并非与卷积网络紧密相连,还有其他的方案具有媲美甚至更优的判别能力(比如permutation- and cardinality-invariance);基于
patchwise
的网络取得了超越纯卷积网络的性能,这意味着块自注意力可能在其他计算机视觉中取得更好的性能增益;相比标量(scale/dot-product)自注意力机制(当前主流注意力机制),向量(vector)自注意力更有力且具有明显优势。