本文主要是介绍【论文笔记_注意力_2021】Augmenting Convolutional networks with attention-based aggregation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用基于注意力的聚集来扩充卷积网络
摘要
我们展示了如何用基于注意力的全局映射来扩充任何卷积网络,以实现非局部推理。我们用一个基于注意力的聚合层代替最终的平均池,该聚合层类似于单个变压器块,它对补丁如何参与分类决策进行加权。我们用由两个参数(宽度和深度)参数化的简单的基于补丁的卷积网络来插入这个学习的聚集层。与金字塔式设计相比,这种架构系列在所有层上保持输入patch分辨率。正如我们在各种计算机视觉任务(对象分类、图像分割和检测)上的实验所示,它在准确性和复杂性之间产生了令人惊讶的竞争性权衡,特别是在内存消耗方面。
1.介绍
视觉转换器[18] (ViT)作为计算机视觉中卷积神经网络(convnets)的替代物出现。它们在许多方面不同于传统的通信网络,其中之一是基于补丁的处理。另一个区别是基于所谓的“类令牌”的图像信息的聚集。该元素与和分类决策最相关的补丁相关。因此,自注意力块中的softmax,尤其是最后一层中的softmax,可以用于产生显示类令牌和所有补丁之间的交互的关注图。此类地图已被用于可视化目的[8,18]。它给出了一些提示,给定图像的哪些区域被模型用来作出决定。然而,可解释性仍然是松散的:制作这些地图涉及不同层和头部的多个softmax的一些融合。
在这篇文章中,我们想提供类似的可视化性质的卷积网络:我们增加了一个注意地图卷积网络。更准确地说,我们用基于注意力的层次取代了通常的平均池层次。事实上,在卷积网络的设计中,没有任何东西排除用注意力来代替它们的汇集[5]。我们简化了这个基于注意力的池层的设计,使它明确地提供不同补丁的权重。与在多个层和头部上执行聚合的ViT相比,我们的建议为每个片提供了单个权重,因此是一种解释注意力地图的简单方式:它是每个片在汇总图像的加权和中的各自贡献。这种处理允许模型单独或联合处理视觉对象:如果我们为每个类别使用一个标记而不是单个标记,如图1和2所示,那么我们为每个可能的类别获得每个补丁的注意力权重。在我们的主要建议中,我们主要关注单个令牌的情况,这与分类决策更直接相关。
图一。我们用一个学习过的基于注意力的聚集层来扩充卷积神经网络。我们将注意力地图可视化,用于不同模型的分类。我们首先从具有恐龙风格的视觉化的常规视觉系统中提取注意力地图。然后,我们考虑convnets,其中我们用我们学习到的基于注意力的聚集层来代替平均池。与ViT不同,该层直接提供加权池中补丁的贡献。这是针对“ResNet50 [24]”和我们新推出的简单的基于补丁的模型(PatchConvNet-S60)显示的,我们引入该模型是为了提高注意力图的分辨率。我们可以在每个职业中专门化这种注意力,如S60+所示。
在图1中,我们展示了从ViT中提取的注意力地图,使用的可视化程序是由Caron等人[8]启发的。它涉及一些后处理,因为有多个层和头部提供patch权重。然后,我们展示了一个“ResNet-50 ”,通过添加我们的基于注意力的聚合层来增强。它的分层设计导致了低分辨率的注意力地图和伪像:我们需要一个产生更高分辨率特征地图的架构,以便更好地利用所提出的基于注意力的池。
为此,我们引入了一个简单的基于补丁的卷积架构1,它可以保持整个网络的输入分辨率不变。这种设计不同于LeNet [37]、AlexNet [36]或ResNet [24,25]等历史上的金字塔结构。他们的金字塔设计是由降低分辨率同时增加工作维度的重要性激发的。这使得人们可以保持适度的复杂性,同时逐步增加工作维度,使空间足够大,可以通过线性分类器进行分离。在我们的例子中,我们在产生补丁的一个小的预处理阶段之后简化了主干。我们在整个主干中采用相同的维度,将其固定为最终层的维度,例如我们的聚合层。我们称之为PatchConvNet,请参见图3了解该网络的概况。
总之,我们做出了以下贡献:
1.我们通过呈现一个学习的、基于注意力的池来重新审视convnets中的最终池层
2.我们建议对我们的基于注意力的汇集进行轻微的修改,以便每个类别有一个注意力地图,提供对预测的更好的可解释性
3.我们提出了一种架构PatchConvNet,它具有简单的基于补丁的设计(两个参数:深度和宽度)和简单的训练方法:所有模型的学习率相同,只有一个正则化参数。
我们共享架构定义和预训练模型:https://github.com/facebookresearch/deit
2.相关工作
基于注意力的视觉架构。早期的工作将注意力引入了convnets [5,47,52,64,67],但直到最近,一个完全基于注意力的架构,即视觉转换器[18] (ViT),才在ImageNet上与convnets竞争[18,58]。该模型的特殊性在于,它将图像处理为一组不重叠的patch,没有任何卷积层或缩减采样层。尽管如此,最近有一些工作提出重新引入卷积和下采样到架构中。例如,一些架构[22,71]在视觉转换器架构的第一层中利用卷积层,而其他架构,如Swin [41]、LeViT [22]或PiT [27]则利用金字塔结构来逐渐降低特征的空间分辨率。这些基于金字塔的方法与先前的检测框架更兼容,并且旨在提高计算效率(FLOPs)。不利的一面是,这些金字塔方法大大降低了最后一层的分辨率,从而降低了他们注意力地图的质量,使他们的预测更难解释。另一个缺点是它们相对较高的内存使用率[50]。
MLP和其他基于补丁的方法。基于补丁[39]的架构已被提议超越变压器,特别是基于多层感知器(MLP)层,如MLP混合器[56]和ResMLP [57]。与我们的工作最相关的是,ResMLP的消融研究[57]显示了就性能而言,分片卷积优于MLP的潜力。根据ConViT模型[13],CoatNet [12]是一种基于补丁的架构,卷积模块后接变压器模块。同时,ConvMixer [2]还探索了用卷积层代替自我关注层。
分类决策的可解释性。有许多策略来解释网络的分类决策[48,76],最值得注意的是通过突出导致决策的最有影响力的区域[20,53,79]。CAM方法系列[9,51,62,79]表明,来自网络决策的梯度包含关于可以投影回图像的对象位置的信息。这些方法充当一般的外部探测器,将网络活动投射回图像空间,即使Oquab等人[44]已经证明了convnet特征包含关于对象定位的粗略信息。与这些外部方法不同,视觉转换器的自我注意层提供了对用于做出分类决策的信息位置的直接访问[8,18,58,59]。我们内置的类注意力机制分享了同样的可由设计计算机视觉模型解释的精神[49]。然而,与我们的机制不同,自我注意层在没有额外步骤的情况下不会区分同一图像上的类别[10]。
3.基于注意力的PatchConvNet池
已学习的聚合图层与高分辨率要素地图关联最佳。因此,虽然它可以与任何卷积架构(如常规的ResNet-50)结合使用,但我们建议将其与一种跨层保持分辨率的架构结合使用。有些作品是存在的,但是它们提供了一个令人乏味的权衡[56,57]。为了解决这个问题,我们引入了PatchConvNet。如图3所示,这种设计旨在将大部分计算和参数集中在柱状主干中。架构族由嵌入维度d和主干中重复块的数量n来参数化。下面,我们将更详细地描述架构及其训练。
3.1架构设计
卷积词干是图像像素的轻量级预处理,其作用是将图像分割并映射到一组向量中。在ViT中,这正好对应于补丁提取步骤[18]。因此,我们将这种预处理产生的矢量称为面片。最近的论文[19,22]表明,最好采用卷积预处理,特别是出于稳定性原因[70]。在我们的例子中,我们借用了LeVit [22]中的卷积词干:一个小的ConvNet,它应用于尺寸为W × H × 3的图像,并产生W/16 × H/16 × d的矢量图。它可以被视为一组k个不重叠的d维面片。在我们的实验结果中,除非另有说明,否则我们使用由4个3 × 3卷积组成的卷积干,步长为2 × 2,后跟一个GELU非线性[26]。我们在图3中展示了卷积词干。
柱或主干是模型的一部分,它负责大多数层、参数和计算。它由N个堆叠的剩余卷积块组成,如图3所示。该模块首先进行归一化处理,然后进行1 × 1卷积,再进行3 × 3卷积进行空间处理,最后进行压缩和激励层[30]处理,以混合通道特性,最后在残差连接之前进行1 × 1卷积。注意,我们可以将1 × 1卷积解释为线性层。前两个卷积之后是GELU非线性。这个模块的输出与其输入具有相同的形状:相同维数d的相同数量的记号。
如果批次足够大,使用BatchNorm [32]通常比LayerNorm [3]产生更好的结果。如第4节所示,我们在模型族中也观察到了这一点。但是,在训练大型模型或使用大图像分辨率时,BatchNorm不太实用,因为它依赖于批处理大小。在该设置中,使用BatchNorm需要跨多台机器的额外同步步骤。这种同步增加了每步所需的节点到节点的通信量,从而增加了培训时间。在其他情况下,如检测和分割,图像很大,限制了批量大小,并可能影响性能。由于所有这些原因,除非另有说明,我们采用分层命名。
基于注意力的池化。在主干的输出端,预处理后的向量使用受Transformer启发的交叉注意力层进行聚合。我们在图3中展示了这种聚合机制。一个查询类令牌关注投影的小块,并将它们聚合为一个加权总和。权重取决于投影面片与类似于类别标记的可训练向量(CLS)的相似性。所得的d维向量随后被添加到CLS向量,并由前馈网络(FFN)处理。与Touvron等人[59]的类别注意解码器相反,我们使用单个块和单个头。这种彻底的简化有利于避免在多个渠道之间分散注意力。因此,类令牌和预处理补丁之间的通信发生在单个softmax中,直接反映了池操作符如何对每个补丁进行加权。
通过用k × d矩阵代替CLS向量,我们可以很容易地专门化每个类的注意力图,其中k列中的每一列都与其中一个类相关联。这种专门化允许我们可视化每个类的注意力地图,如图2所示。对于该系列中较大的型号,附加参数和由此产生的触发器的影响是最小的。然而,这种设计增加了峰值存储器使用,并使得网络的优化更加复杂。我们通常在微调阶段使用较低的学习速率和较小的批量来避免这些问题。默认情况下,我们使用更方便的单个类标记。
图3。完整模型的细节,左边是卷积干,中间是卷积主模块,右边是基于多类注意力的池。
图4。精度作为宽度(S: d = 384,B: d = 768)和深度n的函数进行分析,根据性能标准(延迟、分辨率、FLOPs的重要性),可以选择更深的模型或更宽的模型。参见Bello等人[4]对模型大小、分辨率和计算之间关系的研究。
图5。不同分辨率和不同型号的峰值内存。像Swin这样的一些模型需要在目标分辨率下进行完整的训练。像其他网络一样,我们的模型作为图像表面的函数线性缩放。这与大多数基于注意力的模型形成对比,后者对于足够大的图像遵循二次复杂度。
图6。S60型号在不同分辨率下的精确度。我们分析了在大小224或微调(FT) @384下训练的模型,并将它们与在目标推理大小下微调的模型进行比较,以显示对测试时分辨率变化的容忍度。最佳模型在ImageNet21k上以224或320进行预训练,并以测试时分辨率进行微调。
3.2.讨论:分析和属性
下面,我们讨论我们的卷积干线的几个属性,增加了建议的基于注意力的聚合阶段:
1.简单的参数化。我们的主要型号完全由宽度和深度定义。请参见图4,了解这些模型在两种不同分辨率(224和384)下获得的结果。遵循与之前关于视觉变形器和视觉MLP[18,57,58]的工作相同的惯例,我们用S表示每个面片的向量大小d = 384的模型,用B表示d = 768的模型,用L表示d = 1024的模型。我们使用S60模型进行大部分消融和比较,因为它与ResNet-50具有相似的参数和失败次数。
2.可视化。我们的模型允许容易地可视化网络活动。显著图直接从我们的网络中提取,没有任何后处理。
3.干线(trunk)上的恒定分辨率。基于补丁的处理导致干线中的单一处理解决方案。因此,激活大小在整个网络中是恒定的。内存使用在推理时(几乎)是恒定的,直到相对要求较低的预处理和后处理阶段。与传统的ConvNets相比,该网络在早期阶段具有较粗糙的处理,但是对于干线的输出具有较精细的分辨率。
4.图像尺寸的线性缩放。这是视觉变形金刚的一个关键区别。诸如LeVit、SwinTransformer或MViT之类的金字塔变换器通过快速缩小图像来分解二次分量,从而部分地解决了该问题。然而,它们无法避免非常大的图像出现内存峰值。由于恒定的内存使用和线性缩放,我们的模型平滑地缩放到更大的分辨率,如图5所示,其中我们报告了作为图像大小的函数的峰值内存使用。
5.容易改变分辨率。我们不需要任何位置编码,因为相对面片位置由卷积处理。在这方面,我们的方法比大多数方法更灵活,大多数方法需要针对每个可能的目标分辨率从头开始进行微调或训练。在图6中,我们展示了在相对显著的分辨率变化下,我们的模型的属性相当稳定。
6.没有最大池。在我们的体系结构中没有最大池或其他不可逆操作符。在形式上,直到聚合阶段,主干实现的功能都是双射的。我们在本文中没有利用这一特性,但它可能在图像生成等上下文中有用[16,33]。
3.3训练步骤
…
4.主要实验结果
本节介绍了我们在图像分类、检测和分割方面的主要实验结果。我们还包括一项消融研究。我们建议读者参考一些额外的超参数研究的补充材料。我们的代码依赖于PyTorch [1]和timm库[65]。我们将共享模型权重以及主要模型的PyTorch实现。
4.1图像分类结果
…
5.结论
本文介绍了一种完全基于patch的无金字塔结构的ConvNet。我们在主干上使用了基于注意力的池,类似于《Transformer》中的注意力机制,提供了可视化属性。我们的模型仅通过其宽度和深度来参数化,并且其训练不需要繁重的超参数搜索。我们展示了它对几个计算机视觉任务的兴趣:分类、分割、检测。
局限性:对于给定的神经网络架构,没有完美的度量标准来衡量其整体性能[14]。我们提供了4个不同的指标,但可能还有一些方面没有考虑。深度和宽度模型在FLOPs方面具有相同的行为,但宽度更大的模型具有延迟更低的优势[21,75]。我们主要试验深度而不是宽度,因为深度模型在推理时消耗更少的内存,这使得它们在处理更高分辨率的图像时是一个有吸引力的选择[4],如在分割和检测中的情况。
更广泛的影响:大规模深度学习模型对于许多不同的计算机视觉应用都是有效的,但它们达成决策的方式仍未被完全理解。当部署这种基于机器学习的系统时,能够说明它们在关键应用中的选择将是有益的。我们希望我们的模型,通过它的简单性,以及它内置的内部可视化机制,可以培养这种可解释性的方向。
这篇关于【论文笔记_注意力_2021】Augmenting Convolutional networks with attention-based aggregation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!