a tall building lit up at night

微软亚洲研究院

ICLR 2022 Spotlight:Transformer不比CNN强!Local Attention和动态Depth-wise卷积的前世今生

分享这个页面

近两年来,有关Transformer的文章可谓是井喷式爆发,许多研究员都在设计各种任务上的Transformer模型。然而,Attention作为Transformer的核心模块,真的比卷积强吗?今天的这篇文章或许能带给你新视角,微软亚洲研究院的研究员们从Local Attention和Dynamic Depth-wise Convolution的视角出发发现,设计好的卷积结构并不比Transformer差!相关论文“On the Connection between Local Attention and Dynamic Depth-wise Convolution”已被ICLR 2022收录。

论文链接: https://arxiv.org/abs/2106.04263

代码链接: https://github.com/Atten4Vis/DemystifyLocalViT

Local Attention是什么?

2020年,ViT横空出世,席卷了模型设计领域。各种基于Transformer的结构开始被提出,一些在卷积神经网络中取得成功的先验知识,如Local Operation、多尺度、Shuffle等各种操作和inductive bias被引入Transformer之中。其中比较成功的案例便是微软亚洲研究院的Swin Transformer,通过将Local Operation引入ViT当中,利用shifted window一举获得多个任务的SOTA结果,并获得了2021年 ICCV 最佳论文奖——马尔奖。那么Swin Transformer中最核心的模块,Local Attention究竟有什么神秘之处呢?

Local Attention本质上是在一个2D Local Window内进行特征聚合,其每个位置的聚合权重可以通过KQV之间计算Attention Similarity得到(主要包括dot-production, scaling, softmax),是一个无参数的、动态计算的局部特征计算模块。

aij为聚合权重,xij为待聚合的特征
aij为聚合权重,xij为待聚合的特征

此次ICLR这篇文章的先前版本 (Demystifying Local Vision Transformer)在2021年6月就首次在arXiv公布并分析了Local Attention三个强大的设计原则:

(1) 稀疏连接——指一些输出变量和一些输入变量之间没有相互连接。它有效地减少了模型的复杂度而不减少输入输出变量个数。在Local Attention当中,稀疏连接体现在两个方面:一是Local Attention在图像空间上,每一个输出值仅与局部的Local Window内的输入相连接,与ViT的全像素(token)连接不同。二是Local Attention在通道上,每一个输出通道仅与一个输入通道连接,没有交叉连接,不同于group convolution与normal convolution。

(2) 权重共享——意味着有一些连接的权重是相同且共享的,它降低了模型的参数量,同时不需要增加训练数据即可增强模型。在模型中,一个权重被共享使用可以被认为针对该权重的训练样本增加,有助于模型的优化。在Local Attention中,权重共享通过multi-head self-attention来实现,再把通道分成head(group),在同一个head内共享使用一组聚合权重,降低聚合权重的参数量(非模型参数量)。

(3) 动态权重——指根据不同样本的特征,动态地产生连接权重。它能够增加模型的容量。如果把连接权重看作是隐层变量,那么这种动态权重可以看作是增加模型容量的二阶操作。Local Attention的动态权重体现在每一个连接的聚合权重都是根据样本特征使用基于dot-product的方式计算得到的。

通过以上三个模型设计原则,Local Attention表现出优异的效果。然而,这些特性也天然存在于CNN结构当中,尤其是(Dynamic)Depth-wise卷积。

(Dynamic)Depth-wise卷积和Local Attention的前世今生

逐步拆解Local Attention的操作,可以发现在稀疏连接、权重共享、动态权重三个维度上,都与“历史霸主”CNN结构中的(Dynamic)Depth-wise卷积很相似。Depth-wise卷积可谓是一个被长期使用又被渐渐遗忘在历史长河中的结构,那么其在模型设计上又有哪些准则呢?

(1) 稀疏连接。不难发现,Depth-wise卷积的稀疏连接特性与Local Attention完全相同,在图像空间上局部链接,在通道上稀疏连接。

(2) 权重共享。权重共享的概念最初就诞生于卷积操作之中,Depth-wise卷积同样得益于权重共享操作,但与Local Attention略有不同,Depth-wise卷积在图像空间上共享权重,每一个空间位置都是用相同权重的卷积核来进行特征聚合,而在通道上,每一个通道会使用独立的聚合权重。

(3) 动态权重。动态权重的设计原则在原始的Depth-wise卷积中并没有被使用,然而,动态卷积作为一个被广泛研究的领域,可以轻易地将动态特性引入Depth-wise卷积中,形成特征依赖的聚合权重。

尽管在权重共享上两者的共享方式不同,但经过实验发现,以Local MLP(去掉dynamic特性的local attention)为例,在通道和空间维度上共享权重的影响并不大,在任何一个维度共享权重,均可以降低模型的参数量,帮助模型优化。而在动态权重上,虽然两者不同,但Depth-wise卷积仍然可以轻易具备动态特性。

表1 不同结构在稀疏连接、权重共享、动态权重上的对比。 D-DW-Conv.表示动态DW卷积
表1 不同结构在稀疏连接、权重共享、动态权重上的对比。 D-DW-Conv.表示动态DW卷积

Depth-wise卷积的表现力

Depth-wise卷积和Local Attention的设计原则如此相似,那么为什么Local Attention取得了如此高的表现力,而Depth-wise卷积却没有呢?为了验证这一问题,研究员们使用Depth-wise卷积替换Swin Transformer中的所有Local Attention模块,其他结构保持不变(pre-LN修改为post-BN);同时,为了验证动态DW卷积的效果,微软亚洲研究院的研究员们构建了两种动态特性的Depth-wise卷积:

(1)D-DW-Conv。第一种动态DW卷积,采用了和普通DW卷积相同的权重共享方式——图像空间共享卷积核和通道间独立卷积核。并使用了Global Average Pooling来处理输入特性,然后通过FC Layer来动态地预测出动态卷积核。

(2)I-D-DW-Conv。第二种动态DW卷积,采用了和Local Attention相同的权重共享方式,每个像素(token)采用独立的聚合权重,而在通道head(group)中共享权重。称为Inhomogeneous Dynamic DW卷积。

来看一看实验结果如何:

表2 ImageNet1k, COCO, ADE20K对比结果
表2 ImageNet1k, COCO, ADE20K对比结果

本文使用了与Swin Transformer完全相同的训练参数和网络结构,在ImageNet分类、COCO检测、ADE20K语义分割中,基于Depth-wise卷积的结构取得了和Swin Transformer相同的表现力,而Depth-wise卷积的计算开销还更小。

所以,Depth-wise卷积真的不差!有人会问,是不是在更大的模型和更大的数据集上,Local Attention会更有优势呢?由于计算资源的限制,研究员们仅在Base模型上进行了部分实验:

表3 ImageNet22k Pretraining
表3 ImageNet22k Pretraining

在更大的数据集ImageNet22k上预训练的结果表明,基于Depth-wise卷积的结构仍然与Local Attention不相上下。近期的ConvNext [1] 和RepLKNet [2] 工作更是给出了证明。

现代卷积强在哪里,如何设计更好的模型

既然Depth-wise卷积的表现力也这么好,那为什么长久以来没有引起人们的广泛关注呢?通过与传统的CNN对比发现,现代卷积在设计上一般满足文章指出的三个设计原则。同时,与传统CNN相比,Swin Transformer等结构使用了更大的Kernel Size, 如7×7, 12×12等,远大于CNN中长久使用的3×3卷积。

Depth-wise卷积,配合合理的动态特性以及大kernel size,再加上现代网络训练(数据增强、优化、正则化)等策略,将是现代卷积的强大之处。

至于如何设计更好的模型,首先要分析现有优秀模型的共性。在稀疏连接方面,图1展示了不同结构的稀疏特性。越稀疏的模型,越有助于训练阶段的优化,产生更好的性能,同时降低模型的计算复杂度,使网络可以构建、设计更自由的模块。

图1 (a) 卷积 (b) global attention (c) local attention、DW卷积 (d) 1x1卷积 (e) fully-connected MLP
图1 (a) 卷积 (b) global attention (c) local attention、DW卷积 (d) 1×1卷积 (e) fully-connected MLP

此外,文章还构建了一个Relation Graph来阐述模型结构设计中产生的一些设计原则上的演进过程:

图2中ViT和Local ViT指结构中的Attention结构,PVT为低秩形式下的金字塔结构Transformer,Dim. Sep.表示通道维度上稀疏化,Locality Sep.表示空间位置连接稀疏化,LR表示低秩,MS Conv.表示多尺度卷积。
图2中ViT和Local ViT指结构中的Attention结构,PVT为低秩形式下的金字塔结构Transformer,Dim. Sep.表示通道维度上稀疏化,Locality Sep.表示空间位置连接稀疏化,LR表示低秩,MS Conv.表示多尺度卷积。

关系图中,从上到下呈现了依次增强的正则化方式或引入动态权重,随着正则化及动态权重的增加,网络的人为先验也随之增加。这种形式带来了优化上的好处,使得网络更容易训练并得到更好的结果,现有实验结果也同样验证了此项结论。最终这种稀疏化与动态性上的演进,会走向基于Depth-wise卷积的动态卷积,结合现代Large kernel的训练原则,将能够实现更好的表现效果。

[1] Liu Z, Mao H, Wu C Y, et al. A ConvNet for the 2020s. arXiv preprint arXiv:2201.03545, 2022.

[2] Ding X, Zhang X, Zhou Y, et al. Scaling Up Your Kernels to 31×31: Revisiting Large Kernel Design in CNNs. CVPR, 2022.