邻域注意力Transformer

邻域注意力(NA),这是第一个高效且可扩展的视觉滑动窗口注意力机制,NA是一种逐像素操作,将自注意力(SA)定位到最近的相邻像素,因此与SA的二次复杂度相比,具有线性时间和空间复杂度。与Swin Transformer的窗口自注意力不同,滑动窗口模式允许NA的感受野增长,而无需额外的像素移位,并保留平移等变性。

Neighborhood Attention Transformer可以自适应地将接收域定位到每个token周围的一个邻域,在不需要额外操作的情况下引入局部归纳偏差;而Swin Transformer则通过Window Self Attention和Shifted Window Self Attention两种自注意力,通过像素移位实现两种划分并降低计算复杂度。


NAT(Neighborhood Attention Transformer)是基于NA的新型分层Transformer设计,提高图像分类性能。在视觉范围内,token的数量通常与图像分辨率呈线性相关。因此,较高的图像分辨率会导致严格使用SA的模型的复杂性和内存使用量呈二次方增加。二次复杂度使得此类模型无法轻松应用于下游视觉任务,例如对象检测和分割,其中图像分辨率通常比分类大得多。


独立自注意力

独立自注意力(SASA)是基于局部窗口的视觉注意力的最早应用之一,其中每个像素关注其周围的一个窗口,其显式滑动窗口模式与相同卷积的模式相同,周围有零填充和简单的二维光栅扫描,因此保持平移等变性。

在计算机图形学中,二维光栅扫描算法主要用于将二维图像转换成三维模型,以便在三维空间中进行处理和分析。

平移等变性是指模型对输入数据的平移不敏感,即无论输入数据如何平移,模型的输出都保持不变。这是卷积神经网络(CNNs)的一个关键属性,而SASA通过其局部注意力机制也保持了这一属性。

随着邻域大小的增加,NA 也接近 SA,并且在最大邻域时相当于 SA。

方法描述

邻域注意力(NA):一种简单而灵活的显式滑动窗口注意力机制,将每个像素的注意力范围定位到其最近邻域,随着其范围的增长而接近自注意力,并保持平移等变性。

单个像素的邻域注意力 (NA) 与自注意力 (SA) 的查询键值结构图如下所示

相关工作

自注意力

将缩放点积注意力定义为对查询和一组键值对的操作;

Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d}})V        其中d是嵌入维度(输入向量维度)。

自注意力将点积注意力应用于与查询和键值对相同的输入的线性投影。多头注意力在不同的嵌入上多次应用点积注意力,从而形成注意力头。

给定输入X\in R^{n\times d},其中n是token数量,d是嵌入维度,该操作的复杂度为O(n^2d);注意力权重的空间复杂度为O(n^2)

Vision Transformer

Dosovitskiy 等人提出了一种基于 Transformer 的图像分类器,仅由 Transformer 编码器和图像标记器组成,称为 Vision Transformer (ViT)

DETR探索了用于目标检测的CNN-Transformer混合体。另一方面,ViT提出了一种仅依赖于单个非重叠卷积层(修补和嵌入)的模型。

数据高效图像转换器(DeiT)模型通过使用先进的增强和训练技术,以最小的架构变化推动 ViT 取得进展。

局部自注意力

独立自注意力(SASA)是最早的滑动窗口自注意力模式之一,旨在取代现有 CNN 中的卷积。它的操作类似于零填充的卷积,并通过跨过特征图来提取键值对。

Liu等人引入了窗口和移位窗口(Swin)注意力作为基于非滑动窗口的自注意力机制,该机制对特征图进行分区并将自注意力分别应用于每个分区。

Swin Transformer产生金字塔的特征图,减少空间维度,同时增加深度。

HaloNet

通过用新的块注意力模式取代它来避免SASA的速度问题。虽然这种变化放宽了平移等变性,但它可以提供速度和内存的合理权衡。

这种模式将输入序列划分为多个块(blocks),并且每个块只关注它自己的块以及相邻的几个块。通过这种方式,每个块只需要计算与其相邻块的注意力权重,而不是整个序列。这大大降低了计算复杂性,并且使得 HaloNet 能够有效地处理长序列。

HaloNet的注意力机制由三个阶段组成:块、haloing和注意力。输入特征图被分为不重叠的子集,这些子集将用作查询。接下来,提取“haloing”相邻块,将其用作键和值。然后将注意力应用于提取的查询和键值对。

HaloNet相比于SASA可以有效降低成本,并且提高性能,特别是与网络中的卷积层结合使用时。

卷积基线

Liu等人提出了一种受Swin等模型影响的新CNN架构,称为ConvNeXt。这些模型不是基于注意力的,并且在不同的视觉任务中都表现优于 Swin。

Neighborhood Attention

将感受野定位到每个查询周围的窗口,因此不需要额外的技术,例如Swin使用的循环移位。此外,Neighborhood Attention保持平移等差性,Neighborhood Attention 可以比 Swin 等方法运行得更快,同时使用更少的内存。我们引入了一种具有这种注意力机制的分层变压器模型,称为 Neighborhood Attention Transformer。

方法

邻域注意力,考虑视觉数据结构的自注意力的本地化。与自注意力相比,不仅降低了计算成本,而且还引入了局部归纳偏差,类似于卷积。

NAT采用多层级联设计,类似于Swin,意味着特征图在不同层级之间进行下采样,而不是一次全部下采样。与Swin不同,NAT使用重叠卷积来对特征图进行下采样,而不是非重叠卷积。

  • NAT使用了一个多层级联设计,这与Swin相似。这种设计意味着特征图(feature maps)在不同的层级之间进行了下采样(downsampling),而不是一次性完成所有下采样。
  • 在深度学习中,多层级联设计通常用于捕获不同尺度的信息。较低层级的特征图包含更多的细粒度信息,而较高层级的特征图则包含更多的粗粒度或全局信息。
  • 重叠的卷积意味着卷积核在特征图上移动时,相邻的卷积操作会有部分重叠。这通常可以增加模型的表达能力,因为它允许模型捕捉更多的局部和全局信息。
  • 归纳偏置是机器学习中的一个概念,它指的是模型在学习过程中自动获取的一些有用的假设或约束。这些偏置可以帮助模型更好地泛化到未见过的数据。

 Neighborhood Attention

Swin 的 WSA(Window Self Attention) 可以被认为是现有最快的限制自我注意力的方法之一,其目的是降低二次注意力成本。它只是简单地对输入进行分区,并将自注意力分别应用于每个分区。

SWSA会移位这些分区线以允许窗口外交互。对于扩大感受野来说至关重要。然而,局部限制自注意力的最直接方法是允许每个像素关注其相邻像素,这导致大多数像素周围有一个动态移位的窗口,扩大了感受野,因此不需要手动移位。

与Swin不同且类似于卷积,这种受限自注意力的动态形式可以保留平移等差性。


给定输入X\in R^{n\times d},它是一个矩阵,其一行是 d 维标记向量,以及X的线性投影Q,K和V以及相对位置偏差B(i,j);我们定义注意力权重对于领域大小为 k 的第 i 个输入,A^k_i作为第 i 个输入的查询投影与其 k 个最近邻键的点积

其中\rho _j(i)表示 i 的第 j 个最近邻。然后,我们将邻近值V^k_i定义为一个矩阵,其行是第 i 个输入的 k个最近邻值投影。

 邻域大小为 k 的第 i 个标记的邻域注意力

 其中\sqrt{d}是缩放参数,对特征图中的每个像素重复此操作。

随着k的增长,A^k_i接近自注意力权重,V^k_i接近V_i本身。因此邻域注意力接近自注意力。每个像素都关注其周围的窗口,并在输入周围进行填充以处理边缘情况,正是由于这种差异,随着窗口大小的增加,NA逐渐接近自注意力,但由于输入周围的零填充,在SASA(独立自注意力)中并不适用。

平铺领域注意力和NATTEN(Neighborhood Attention Extension)

以像素方式限制自注意力,被认为是一种成本高昂的操作,需要较低级别的重新实现。因为自注意力本身被分解为矩阵乘法,这是一种可以在加速器上轻松并行化的操作,并且为计算软件中的不同用例定义了无数高效的算法(LAPACK、cuBLAS、CUTLASS)


由于像素级结构NA以及NA中邻域定义的新颖性,使用这些平台实现NA的唯一方法是堆叠许多低效操作来提取邻域,将它们存储为中间张量,然后计算注意力。这会导致操作速度明显变慢,并且内存使用量呈指数级增长。

NATTEN包括半精度支持、对1D和2D数据的支持以及与PyTorch的autograd兼容集成。

用户可以简单地将NA作为PyTorch模块导入并将其集成到现有管道中。

平铺NA算法:通过将不重叠的查询平铺加载到共享内存中去计算邻域注意力权重,以最大程度地减少全局内存读取。与简单的实现相比,平铺NA可以将延迟降低一个数量级。

Neighborhood Attention Transformer

NAT使用两个连续的3*3卷积(步幅为2)的嵌入输入,从而产生\frac{1}{4}输入大小的输出。这类似于使用补丁和具有4\times 4补丁的嵌入层,但它利用重叠卷积来引入有用的归纳偏差。使用重叠卷积会增加成本,并且两个卷积会产生更多参数。然而,我们通过重新配置模型来处理这个问题,从而实现更好的权衡。

NAT 由 4 个级别组成,每个级别后面都有一个下采样器(最后一个除外)。

下采样器将空间大小减少一半,同时通道数量增加一倍。我们使用步长为 2 × 2 的 3 × 3 卷积,而不是 Swin 使用的 2 × 2 非重叠卷积(补丁合并)。

 “Overlapping Tokenizer” 指的是一种分词器(Tokenizer)的设计方法,它在将文本切分为词或标记(tokens)时,允许词与词之间有重叠的部分。这与传统的分词器不同,传统的分词器通常会将文本切分为不重叠的词或标记。

复杂性分析

给定形状为 h × w × d 的输入特征图,其中 d 是通道数,h 和 w 分别是特征图的高度和宽度。

深度学习中的FLOPs是指模型中的浮点运算操作总数

QKV的线性变换的浮点运算次数是3hwd^2 FLOPs;

SA(自注意力)计算复杂度与输入大小的平方成正比,因为计算注意力权重和输出的浮点运算总数是h^2w^2d FLOPs;并且注意力权重的形状为hw\times hw

Swin的WSA(基于窗口的自注意力机制)将查询、键、值划分为k\times k个形状为\frac{h}{k}\times \frac{w}{k}的窗口,然后对每个窗口应用自注意力,即hwdk^2 FLOPs。由于其注意力权重的形状为\frac{h}{k}\times \frac{w}{k}\times k^2\times k^2,WSA的内存消耗为hwdk^2 。

在NA中,A^k_i的大小为h\times w\times k^2,计算它的成本为hwdk^2 。V^k_i的形状为h\times w\times k^2\times d,对其应用注意力权重的成本为hwdk^2。内存使用量为d^2k^2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/685639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库被攻击后出现1044 - access denied for user ‘root‘@‘% ‘ to database table

MySQL数据库被攻击后,数据库全部被删除,并且加一个一个勒索的数据,向我索要btc, 出现这个问题就是我的数据库密码太简单了,弱密码,被破解了,并且把我权限也给修改了 导致我操作数据库时&#…

AI英语口语训练软件有哪些?这4款简单易用

AI英语口语训练软件有哪些?AI英语口语训练软件在现代语言学习中确实扮演着举足轻重的角色。它们凭借先进的智能算法,能够为我们量身定制学习方案,精准识别并纠正发音错误,模拟真实对话场景,使学习过程更加高效、有趣。…

【动态规划】子序列问题

最长上升子序列 题目描述: 解题思路: 核心思路: 用f[i]:表示以第i个数结尾的最大子序列,只需要找到比第i个小的最大子序列再加上1 即可; ----> f[i]max(f[j]1,f[i]); 定义 f[i] 表示以第 i 个元素结尾的最长上升子…

代码随想录算法训练营第36期DAY18

DAY18 二叉树的层序遍历 102二叉树的层序遍历 “队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。” 二叉树层序遍历模版: /** * Definition for a binary tree node. * struct TreeNode { *…

基于torch_dispatch机制生成Megatron-DeepSpeed调用关系图

基于torch_dispatch机制生成Megatron-DeepSpeed调用关系图 一.局部效果图二.运行训练过程,拦截算子,生成调用关系信息三.可视化,生成SVG图像 想知道Megatron-DeepSpeed训练过程中各模块之间的调用关系。torch_dispatch机制可以拦截算子,inspect又能获取到调用栈(文件,类名,函数…

《引爆流量获客技术》实操方法,手把手教你搭建盈利流量池

[1]-先导课.mp4 [2]-第1节:设计客户终身价值的方法和买客户思维.mp4 [3]-第2节:【渠道模型】解决谁是我的客户如何找到.mp4 [4]-第3节:【诱饵模型】解决 如何获得更多的客户.mp4 [5]-第4节:【钩子模型】解决让目标客户主动找你…

轮式机器人

迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…

milvus元数据在etcd的存储解析

milvus元数据在etcd的存储解析 数据以key-value形式存在。 大致包含如下一些种类: databasecollectionfieldpartitionindexsegment-indexresource_groupsession database 创建一个数据库会产生2个key,但value是相同的。 key规则: 前缀/root-coord/database/db…

01.基本概念

操作系统 为什么要有操作系统? 计算机时一个十分复杂的系统,又cpu、内存、磁盘、IO设备、网络接口等等复杂的硬件组成,人的精力是有限的,不可能了解所有的硬件接口,但是程序可以。 所以我们在计算机上安装了一层软件&…

无人机+光电吊舱:四光(可见光+红外热成像+广角+激光测距)吊舱设计技术详解

无人机与光电吊舱的结合,特别是四光吊舱(包含可见光、红外热成像、广角和激光测距技术)的应用,为无人机提供了强大的侦察和测量能力。以下是对四光吊舱设计技术的详解: 1. 可见光技术:可见光相机是吊舱中最…

福昕PDF阅读器取消手型工具鼠标点击翻页

前言: 本文介绍如何关闭福昕PDF阅读器取消手型工具鼠标点击翻页,因为这样真的很容易误触发PDF翻页,使用起来让人窝火。 引用: NA 正文: 新版的福昕PDF阅读器默认打开了“使用手型工具阅读文章”这个勾选项&#x…

IPO压力应变桥信号处理系列隔离放大器 差分信号隔离转换0-10mV/0-20mV/0-±10mV/0-±20mV转4-20mA/0-5V/0-10V

概述: IPO压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。该模块内部嵌入了一个高效微功率的电源,向输入端和输出端…