Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

↑ 点击 蓝字  关注极市平台

 

 

作者丨Qi [email protected]知乎(已授权)

 

来源丨https://zhuanlan.zhihu.com/p/486015646

 

编辑丨极市平台

 

二次转载须经原作者授权。

 

极市导读

 

Transformer的文章近两年来可谓是井喷式爆发,大量工作来设计各种任务上的transformer模型,然而,attention作为transformer的核心模块,真的比卷积强吗?这篇文章为你带来了local attention和dynamic depth-wise convolution的新视角,其实设计好的卷积结构,并不比transformer差!   >> 加入极市CV技术交流群,走在计算机视觉的最前沿

 

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

 

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

 

1. Local Attention是什幺?

 

2020年的ViT横空出世,席卷了模型设计领域,铺天盖地的各种基于Transformer的结构开始被提出,一些在卷积神经网络中取得成功的先验知识,如local operation、多尺度、shuffled等等各种操作和inductive bias被引入Transformer之中。其中比较成功地将local operation引入ViT当中,利用shift window的Swin Transforerm一举获得多个任务的SOTA结果,并获得了Best Paper Award。而其中最核心的模块,Local Attention,究竟有什幺神秘之处呢?

 

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

 

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

ICLR这篇文章的先前版本 (Demystifing Local Vision Transformer)在2021年六月就首次正在arxiv公布并分析了local attention的三个强大设计原则:

 

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

 

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

 

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

 

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

 

2. (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卷积在图像空间上共享权重,每一个空间位置都是用相同权重的卷积核来进行特征聚合,而在channel上,每一个channel使用独立的聚合权重。

 

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

 

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

 

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

3. Depth-wise卷积的表现力

 

Depth-wise卷积和Local Attention的设计原则如此相似,然而为什幺Local Attention取得了如此高的表现力,而Depth-wise卷积没有呢?为了验证这一问题,文章使用Depth-wise卷积替换Swin Transfomer中的所有Local Attention模块,其他结构保持不变(per-LN修改为post-BN),同时为了验证动态DW卷积的效果,文章构建了两种dynamic特性的Depth-wise卷积:

 

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

 

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

 

来看一看实验结果如何:

 

ImageNet1k, COCO, ADE20K对比结果

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

 

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

 

ImageNet22k pretraing

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

 

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

 

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

 

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

 

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

 

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

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

 

图中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.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。