计算机视觉论文速递(二)NAT:超越 Swin、ConvNeXt 的Neighborhood Attention Transformer

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: 在FLOPs和内存使用方面,与相同的感受野大小带有Shifted Window Attention的Swin-Transformer相同,但是NAT受到的约束更少。

3a998fdb9b414a9d958d50f99613ce7f.png


NAT论文NAT:Neighborhood Attention Transformer


1. 摘要


 本文提出了Neighborhood Attention Transformer(NAT),NAT是一种集高效、准确和可扩展的分层Transformer,Neighborhood Attention是一种简单而灵活的Self Attention机制,它将每个query的感受野扩展到其最近的邻近像素,并随着感受野的增大而接近Self-Attention。


在FLOPs和内存使用方面,与相同的感受野大小带有Shifted Window Attention的Swin-Transformer相同,但是NAT受到的约束更少。


此外,NA还包含了局部归纳偏差,这消除了的额外操作,如像素移动。


NAT-Tiny在ImageNet上达到83.2%的Top-1精度,只有4.3 GFLOPs和28M参数,在MS-COCO上的mAP为51.4%,ADE20k上的mIoU为48.4%。


2. 引言


自2020年以来,学术界已经提出很多关于Vision Transformer的架构和方法,也有很多关于高效Transformer的工作被提出。但是,不管是标准的ViT还是高效的ViT,虽然其中的Self Attention相对于嵌入维度具有线性复杂度(不包括线性投影),但相对于Token数量却具有二次复杂度。而Token的数量通常又与图像分辨率呈线性相关。因此,更高的图像分辨率将会带来复杂度和内存的二次增长。


对于ViT的应用来说,这是一个很严峻的问题,因为过高的复杂度和计算量会影响模型应用于下游的视觉任务,如目标检测和语义分割,因为这些任务中图像分辨率通常比分类大得多。


另一个问题是,卷积的性能大多受益于归纳偏差,如局部性、平移等方差和二维邻域结构,而 dot-product Self Attention是一个全局的操作。虽然Vision Transformer中的MLP层具有具有局部性和平移不变性,但其余的归纳偏差必须通过大量数据或炼丹技术和增强来弥补。


因此,有研究便采用Local attention modules来减轻这个问题。Swin-Transformer是第一个基于Local attention的分层Vision Transformer。Swin-Transformer的层次结构设计和Shifted-Window Self Attention使其可以比较容易地应用到下游任务,同时也通过注入的额外偏差提高了性能。HaloNet探索了另一种Local Attention Block,并发现将Local Attention Block和卷积结合起来可以获得最佳性能,因为该组合操作在内存使用和平移不变性之间进行了最佳权衡。


基于以上描述,作者在本文中提出Neighborhood Attention(NA),并在此基础上构建Neighborhood Attention Transformer(NAT),在跨视觉任务上实现了具有竞争性的结果。


NA是dot-product Self Attention的一种局部化,将每个query token的感受野限制在key-value pair中对应token周围的一个固定大小的邻域内。较小的感受野带来更多的局部信息,而较大的感受野带来更多的全局信息。这种设计使感受野能够很好的控制平移不变性和平移等方差的平衡。


NA是受到卷积的局部性的启发,以及它们如何产生更多有利于视觉任务的局部性归纳偏差。它不同于将Self Attention应用于Local Windows(Swin),可以将其视为与Content-Dependant Kernel的卷积。


3. 主要贡献


1.Neighborhood Attention(NA):一种简单、灵活的视觉注意力机制,它将每一个Token的感受野定位到Token的邻域。并将该模块的复杂性和内存使用量与Self Attention、Window Self Attention和卷积进行了比较。


2.构建了Neighborhood Attention Transformer(NAT),一种由Neighborhood Attention组成的高效、准确、可扩展的新型分层Transformer。每一层之后都进行下采样操作,将空间大小减少一半。类似的设计可以在许多最近的基于注意力的模型中看到,如Swin和Focal Transformer。与那些模型不同,NAT利用小内核重叠卷积来嵌入和下采样,而不是非重叠卷积。与Swin等现有技术相比,NAT还引入了一组更有效的体系结构配置。


3.展示了NAT在图像分类和下游视觉任务(包括目标检测和语义分割)中的有效性。作者观察到NAT的性能不仅优于Swin Transformer,还优于ConvNeXt。NAT-Tiny模型在ImageNet上仅用4.3 GFLOPs和28M参数就能达到83.2%的top-1精度,在MS-COCO上达到51.4%的Box mAP,在ADE20k上达到48.4%的多尺度mIoU,为这种简单、小规模的Transformer模型创造了水平。


7832a33f61d542b58f9319f7571f1762.png


4. 本文方法


与Self Attention相比,Neighborhood Attention不仅减少了计算成本,而且引入了类似于卷积的局部归纳偏差。该操作适用于邻域大小L,当每个像素最小时,它只关注自身周围的1个像素邻域(创建一个3×3方形窗口)。


作者还表明,当邻域大小达到最大值(即输入的大小)时,Neighborhood Attention等于Self Attention。因此,如果邻域大小超过或匹配feature map的大小,在相同的输入下,Neighborhood Attention和Self Attention的输出是相等的。


此外,NAT利用了一个多级分层设计,类似于Swin-Transformer,这意味着特征映射在级别之间被向下采样,而不是一次性全部采样。然而,与Swin-Transformer不同的是,NAT使用重叠卷积来向下采样特征映射,而不是不重叠的映射。这略微增加了计算量和参数,作者也通过提出计算成本较低的配置来弥补这一点。


4.1 Neighborhood Attention


Neighborhood Attention 主要是受卷积如何引入邻域偏差和局部性的启发。 Neighborhood At tention 的目的是允许特征图中的每个像素只关注其相邻的像素。由于邻域依赖于size, 因此 Neighborhood Attention 机制也是如此。


用 ρ ( i , j )  表示 ( i , j )处的一个像素的邻域, 它是最接近 ( i , j ) 的像素的一个固定长度的索引集。对 于大小为 L × L , ∥ ρ ( i , j ) ∥ = L 2  。因此, 在单个像素上的 Neighborhood Attention 可以定义 如下:


image.png


其中, 其中Q、 K、 V 是X的线性投影, B i , j 为相对位置偏差, 根据相对位置将其添加到每个注 意力权重中。这个操作可以进一步扩展到所有像素 ( i , j ), 从而形成一种局部注意力的形式。


然而, 如果 ρ  函数将每个像素映射到所有像素, 这将等同于 Self Attention (带有额外的位置 偏差)。这是因为当邻域边界超过输入大小时, ρ ( i , j ) 将包括所有可能的像素。结果, K ρ ( i , j ) = K和 V ρ ( i , j ) = V , 通过去除偏置项, 推导出 Self Attention 的表达形式:


image.png


Neighborhood Attention 在计算上是很廉价的。它的复杂性相对于分辨率是线性的, 不像 Se If Attention 是二次的。此外, 其复杂度也与邻域大小呈线性关系。 ρ  函数将一个像素映射到 一组相邻的像素, 可以很容易地通过 Raster-Scan Sliding Window 操作产生, 原理类似于卷积。


88c1d2bc2de740c9b959738c18e1c92f.png


每个像素被简单地映射到一组相邻的像素和自身。图2展示了该操作的示例。对特征图中的每个像素重复此操作。对于不能居中的角像素,扩展邻域以保持感受野的大小。这是一个关键的设计选择,它允许NA随着邻域大小向特征图分辨率增长而一般化到Self Attention。


12d609c2b613407b97ef26734aee5896.png


扩展邻域是通过简单持续选择L2中最接近原始邻域的像素来实现的。例如,对于L=3,每个query将以围绕它的9个key-value像素结束(query位于中心的3×3网格)。


对于角像素,邻域是另一个3×3网格,但query没有定位在中心。图6展示了这个想法的说明。

b0f4db64dacd46c7ad9b6b3141e98bf9.png



4.2 Neighborhood Attention Transformer


NAT通过使用2个连续的3×3卷积(stride=2)来嵌入输入,进而产生输入空间大小1/4的输入。这类似于使用patch和4×4 patch的嵌入层,但它使用的是重叠卷积而不是非重叠卷积。


另一方面,使用重叠卷积会增加成本,而2次卷积会引入更多的参数。然而,作者通过重新配置模型来处理这个问题,这将产生更好的权衡。


NAT由4个level组成,每个level后面都链接一个下采样器(最后一个除外)。下采样器将空间大小减少了为原来的一半,而通道数量增加了一倍。这里下采样使用的是3×3卷积(stride=2)。由于tokenizer的降采样倍数为4倍,因此模型生成了大小为H/4×W/4、H/8×W/8、H/16×W/16和H/32×W/32的特征图.使得NAT可以更容易地将预训练过的模型迁移到下游任务中。


0719d6d2363b4135aa4fcf45ee93379a.png


此外,在训练较大的模型时,使用LayerScale来提高稳定性。图4展示了整体网络架构的说明。在下表中总结了不同的NAT变体及其关键差异。


22a335ab3df74f2e850bf0bf2389ea12.png


5. 实验结果


5.1 分类实验


1b4016de22114cd59d9672978fe40d1a.png


5.2 目标检测


705cee46cb92498581c1847af98d9145.png


5.3 语义分割


2d749d31e64341c7bd325078c7854d0e.png


5.4 可视化分析


fb02c8a57c26408080a5807d67d27c29.png


相关素材来自于【集智书童】公众号

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
7月前
|
机器学习/深度学习 编解码 资源调度
2024年3月的计算机视觉论文推荐
从去年开始,针对LLM的研究成为了大家关注的焦点。但是其实针对于计算机视觉的研究领域也在快速的发展。每周都有计算机视觉领域的创新研究,包括图像识别、视觉模型优化、生成对抗网络(gan)、图像分割、视频分析等。
194 0
|
7月前
|
机器学习/深度学习 自然语言处理 算法
2024年4月计算机视觉论文推荐
四月的计算机视觉研究涵盖多个子领域,包括扩散模型和视觉语言模型。在扩散模型中,Tango 2通过直接偏好优化改进了文本到音频生成,而Ctrl-Adapter提出了一种有效且通用的框架,用于在图像和视频扩散模型中添加多样控制。视觉语言模型的论文分析了CLIP模型在有限资源下的优化,并探讨了语言引导对低级视觉任务的鲁棒性。图像生成与编辑领域关注3D感知和高质量图像编辑,而视频理解与生成则涉及实时视频转游戏环境和文本引导的剪贴画动画。
156 0
|
3月前
|
人工智能 并行计算 PyTorch
AI计算机视觉笔记十八:Swin Transformer目标检测环境搭建
本文详细记录了Swin Transformer在AutoDL平台上的环境搭建与训练过程。作者从租用GPU实例开始,逐步介绍了虚拟环境的创建、PyTorch安装、mmcv及mmdetection的配置,并解决了安装过程中遇到的各种问题,如cython版本冲突等。最后,通过修改代码实现目标检测结果的保存。如需了解更多细节或获取完整代码,请联系作者。原文链接:[原文链接](请在此处插入原文链接)。
|
3月前
|
人工智能 计算机视觉 Python
AI计算机视觉笔记十九:Swin Transformer训练
本文介绍了使用自定义数据集训练和测试目标检测模型的步骤。首先,通过安装并使用标注工具labelme准备数据集;接着修改配置文件以适应自定义类别,并调整预训练模型;然后解决训练过程中遇到的依赖冲突问题并完成模型训练;最后利用测试命令验证模型效果。文中提供了具体命令及文件修改指导。
|
6月前
|
编解码 机器人 测试技术
2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等
6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。
160 8
|
7月前
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
289 3
|
6月前
|
机器学习/深度学习 算法框架/工具 计算机视觉
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
84 2
|
7月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
659 3
AIGC核心技术——计算机视觉(CV)预训练大模型
|
机器学习/深度学习 PyTorch 算法框架/工具
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
134 0
|
3月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。

热门文章

最新文章

相关实验场景

更多