【涨点神器】GSA:全局自注意力网络,打造更强注意力模型

简介: 【涨点神器】GSA:全局自注意力网络,打造更强注意力模型

1、简介


由于自注意力的二次计算和存储复杂性,这些工作要么仅将注意力应用于深层网络后期的低分辨率特征图,要么将每层的注意力感受野限制在较小的局部区域。为了克服这些限制,本文引入了一个新的全局自注意力模块,称为GSA模块,该模块足够高效,可以用作深度网络的backbone组件。

该模块由两个并行层组成:一个内容注意力层,仅基于像素的内容对其进行关注;一个位置关注层,其基于像素的空间位置进行关注。该模块输出是两层输出的总和。在提出的GSA模块的基础上引入了独立的基于全局注意力的网络,该深度网络使用GSA模块来建模像素交互。由于所提出的GSA模块具有全局范围,所以GSA网络能够在整个网络中对远距离像素间的相互作用进行建模。

实验结果表明,GSA网络在使用较少的参数和计算量的情况下,在CIFAR-100和ImageNet数据集上显著优于基于卷积的网络。在ImageNet数据集上,提出的GSA网络也优于现有的各种基于注意力的网络。


2、相关方法


2.1、Auxiliary Visual Attention

Non-Local Block首次在计算机视觉中采用dot-product attention注意力机制进行long-range dependency建模,实验验证了该算法在视频分类和目标检测方面的有效性。

最近,一系列的工作将Transformer引入了计算机视觉领域。使用深度CNN模型提取语义特征,然后由Transformer对特征之间的高层交互进行建模。有学者使用Transformer建模对象级的交互以进行对象检测,也有学者使用Transformer建模帧间的依赖关系以进行视频表示学习。

这些辅助注意力方法在大部分卷积的网络中或仅在网络的末端使用注意模块。它们增强了CNN的远程交互建模,但仍然将大部分特征建模归为卷积操作。

2.2、Bacbone Visual Attention

由于Non-Local Block高昂的开销使得无法广泛替换卷积层,导致最终的模型仍然有大部分卷积模块。有研究人员将感受野限制在一个local内(通常是7*7)来解决这个问题。也有研究人员利用global attention的轴向分解来解决这个问题。


3、本文方法


3.1、Content Attention Layer

这一层使用以下基于内容的全局注意操作来生成新的特性:

式中,为K的矩阵转置,表示对每一行分别进行softmax归一化的运算。这种注意力机制可以被视为第一个像素特征V通过使用中的权重聚合到dk全局上下文向量,然后重新分配全局上下文向量回每个像素使用Q。这个操作的计算和内存复杂度是O(N)。

3.2、Positional Attention Layer

内容注意层不考虑像素的空间位置,因此与像素变换是等变的。就其本身而言,它并不最适合处理空间结构化数据(如图像)的任务。本文通过使用位置注意层来解决这个问题,该层根据像素本身的内容及其相对于相邻像素的空间位置来计算像素的Attention map。对于每个像素,位置注意层关注它的L×L近邻spatial。

本文将这个注意层实现为一个仅存在列的注意层,然后是一个仅存在行的注意层。在仅列关注层中,输出像素只关注其列上的输入像素,而在仅行关注层中,输出像素只关注其行上的输入像素。让是一组L补偿,表示L沿着一条列可学的相对位置嵌入相应的矩阵空间偏移量。设为像素(a,b)的L列邻居处的值组成的矩阵。设表示像素点处的无列位置注意层的输出(a,b)。然后,仅列位置注意力机制,使用相对位置嵌入作为关键,可以描述使用:

image.png

其中为像素点(a,b)处的查询。由于每个像素只关心L列邻居,因此这个仅列位置注意层的计算和存储复杂性为O(NL),其中N为像素的个数。类似地,可以使用L行邻居对应的L可学习相对位置嵌入image.png来定义具有O(NL)计算和内存复杂性的仅行位置注意层。

3.3、GSA Network

GSA网络是使用GSA模块而不是空间卷积来建模像素交互的深度网络。表1显示了GSA网络与最近各种基于注意力的网络的区别。

image.png


4、实验结果


4.1、基于CIFAR-100实验

image.png

可以看出在CIFAR-100数据集上基于GSA的设计,参数更少,精度更高;

4.2、基于ImageNet实验

可以看出在ImageNet数据集上基于GSA的设计,参数更少,精度更高;

更为详细内容可以参见论文中的描述。


References


[1] GLOBAL SELF-ATTENTION NETWORKS

相关文章
|
5月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
225 2
|
5月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
174 1
|
5月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
2月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
244 2
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
5月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
322 60
|
5月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
326 57
|
5月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
212 57
|
4月前
|
算法 安全 网络安全
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
227 0