【论文阅读】ELA: Efficient Local Attention for Deep Convolutional Neural Networks

(ELA)Efficient Local Attention for Deep Convolutional Neural Networks

论文链接:ELA: Efficient Local Attention for Deep Convolutional Neural Networks (arxiv.org)

作者:Wei Xu, Yi Wan

单位:兰州大学信息科学与工程学院,青海省物联网重点实验室,青海师范大学

引用:Xu W, Wan Y. ELA: Efficient Local Attention for Deep Convolutional Neural Networks[J]. arXiv preprint arXiv:2403.01123, 2024.

摘要

请参阅标题

众所周知,图像的空间维度包含关键的位置信息,而现有的注意力机制要么无法有效利用这种空间信息,要么以降低通道维数为代价。为了解决这些局限性,本文提出了一种高效局部注意力(Efficient Local Attention,ELA)方法,通过分析Coordinate Attention(CA) method的局限性,确定了Batch Normalization中泛化能力的缺乏、降维对通道注意力的不利影响以及注意力生成过程的复杂性。为了克服这些挑战,提出了结合一维卷积和Group Normalization特征增强技术。这种方法通过有效地编码两个一维位置特征图,无需降维即可精确定位感兴趣区域,同时允许轻量级实现。与2D卷积相比,1D卷积更适合处理序列信号,并且更轻量、更快。GN与BN相比,展现出可比较的性能和更好的泛化能力。
在这里插入图片描述

与 CA 类似,ELA 采用strip pooling在空间维度上获取水平和垂直方向的特征向量,保持窄核形状以捕获长程依赖关系,防止不相关区域影响标签预测,从而在各自方向上产生丰富的目标位置特征。ELA 针对每个方向独立处理上述特征向量以获得注意力预测,然后使用点乘操作将其组合在一起,从而确保感兴趣区域的准确位置信息。

Method

Coordinate Attention

CA包括两个主要步骤:坐标信息嵌入和坐标注意力生成。在第一步中,通过使用strip pooling而不是spatial global pooling来捕捉长距离的空间依赖性。

考虑一个卷积块的输出为 R H × W × C R ^{H \times W \times C} RH×W×C ,分别H,W,C代表高度、宽度和通道维度(即卷积核的数量)。第一步中,为了应用strip pooling,分别在两个空间范围内对每个通道执行平均池化: ( H , 1 ) (H,1) (H,1) 在水平方向上和 ( 1 , W ) (1,W) (1,W) 在垂直方向上,数学表示如下:

z c h ( h ) = 1 H ∑ 0 ≤ i < H x c ( h , i ) z _ { c } ^ { h } ( h ) = \frac { 1 } { H } \sum _ { 0 \leq i < H } x _ { c } ( h , i ) zch(h)=H10i<Hxc(h,i)

z c w ( w ) = 1 W ∑ 0 ≤ j < W x c ( j , w ) z _ { c } ^ { w } \left( w \right) = \frac { 1 } { W } \sum _ { 0 \leq j < W } x _ { c } ( j , w ) zcw(w)=W10j<Wxc(j,w)

第二步中,由上述两个方程生成的特征图被聚合成为新的特征图,然后被送入共享转换函数 F 1 F_1 F1(一个2D卷积)以及批量归一化(BN),可以表示如下。

f = δ ( B N ( F 1 ( [ z h , z w ] ) ) ) f = \delta ( B N ( F _ { 1 } ( \left[ z ^ { h } , z ^ { w } \right] ) ) ) f=δ(BN(F1([zh,zw])))

其中,级联操作 [ . , . ] [.,.] [.,.] 沿空间维, δ \delta δ 表示非线性激活函数。中间特征图 R C / r × ( H + W ) R^{C / r \times ( H + W )} RC/r×(H+W),是水平和垂直编码后得到的。随后, f h ∈ R C / r × H f ^ { h } \in R ^ { C / r \times H } fhRC/r×H f h ∈ R C / r × H , f w ∈ R C / r × W f ^ { h } \in R ^ { C / r \times H } , f ^ { w } \in R ^ { C / r \times W } fhRC/r×H,fwRC/r×W,沿着空间维度。此外,另外两个 1 × 1 1×1 1×1卷积变换 F h F_h Fh F w F_w Fw用于生成与输入通道数相同的张量。

g c h = σ ( F h ( f h ) ) g _ { c } ^ { h } = \sigma ( F _ { h } ( f ^ { h } ) ) gch=σ(Fh(fh))

g c w = σ ( F w ( f w ) ) g _ { c } ^ { w } = \sigma ( F _ { w } ( f ^ { w } ) ) gcw=σ(Fw(fw))

其中, δ \delta δ 表示sigmoid函数。为了降低计算开销,通常适当的减少 f f f的通道数,比如32。最后得到输出 g c h g _ { c } ^ { h } gch g c w g _ { c } ^ { w } gcw ,被扩展并用作注意力权重,分别对应于水平和垂直方向。最终,CA 模块的输出可以表示为 Y Y Y

y c ( i , j ) = x c ( i , j ) × g c h ( i ) × g c w ( j ) y _ { c } ( i , j ) = x _ { c } ( i , j ) \times g _ { c } ^ { h } ( i ) \times g _ { c } ^ { w } ( j ) yc(i,j)=xc(i,j)×gch(i)×gcw(j)

通道维度的降低旨在减少模型的复杂性,但会影响通道与它们对应权重之间的关联,这可能会对整体的注意力预测产生不利影响。

Shortcomings of Coordinate Attention

在这里插入图片描述

BN极大地依赖于小批量的大小,当小批量过小时,BN计算出的均值和方差可能无法充分代表整个数据集,这可能会损害模型的总体性能。最开始CA中获得的坐标信息嵌入表示了每个通道维度内的序列信息,将BN放置在处理序列数据的网络中并不是最佳选择,特别是对于CA。

因此,CA可能会对较小的网络架构产生负面影响。相反,当GN被用作CA中BN的替代品,并融入到较小的网络架构中时,性能立即出现显著提升。此外,对CA结构的深入分析可以揭示额外的挑战。在第二步的开始,两个方向的特征图和被拼接成一个新的特征图,随后进行编码。然而,两个方向的特征图和具有独特的特性。因此,一旦合并并捕捉到它们的特点,它们各自连接处的相互影响可能会削弱每个方向上注意力预测的准确性

Efficient Local Attention

CA方法通过利用strip pooling来捕获空间维度中的长距离依赖,显著提高了准确度,尤其是在更深层的网络中。基于之前的分析,可以看出BN阻碍了CA的泛化能力,而GN(组归一化)则解决了这些不足

因为第一步中得出的位置信息嵌入是通道内的序列信号。因此,通常更合适的是使用1D卷积而不是2D卷积来处理这些序列信号。1D卷积不仅擅长处理序列信号,而且与2D卷积相比,它更加轻量化。在CA的情况下,尽管两次使用了2D卷积,但它使用的是 1 × 1 1×1 1×1 的卷积核,这限制了特征提取能力。因此,ELA采用5或7大小的1D卷积核,这有效地增强了位置信息嵌入的交互能力,使得整个ELA能够准确找到感兴趣的区域

z h z_h zh z w z_w zw 不仅捕捉了全局感知场,还捕捉了精确的位置信息。为了有效地利用这些特征,作者设计了一些简单的处理方法。对两个方向(水平和垂直)上的位置信息应用一维卷积以增强其信息。随后,使用组归一化 G n G_n Gn 来处理增强的位置信息,可以得到在水平和垂直方向上的位置注意力的表示:

y h = σ ( G n ( F h ( z h ) ) ) y w = σ ( G n ( F w ( z w ) ) ) \begin{matrix} y ^ { h } = \sigma ( G _ { n } ( F _ { h } ( z _ { h } ) ) ) \\ y ^ { w } = \sigma ( G _ { n } ( F _ { w } ( z _ { w } ) ) ) \end{matrix} yh=σ(Gn(Fh(zh)))yw=σ(Gn(Fw(zw)))

其中, σ \sigma σ 为非线性激活函数, F h F _ { h } Fh F w F _ { w } Fw 表示一维卷积,卷积核设置为5或7。尽管参数数量略有增加,但大小为 7 7 7 的卷积核表现更好。

Multiple ELA version settings

为了在考虑参数数量的同时优化ELA的性能,引入了四种方案:ELA-Tiny(ELA-T),ELA-Base(ELA-B),ELA-Small(ELA-S)和ELA-Large(ELA-L)。

  1. ELA-T的参数配置为 kernel size = 5, groups = in channels, num group = 32;
  2. ELA-B的参数配置为 kernel size = 7, groups = in channels, num group = 16;
  3. ELA-S的参数配置为 kernel size = 5, groups = in channels/8, num group = 16;
  4. ELA-L的参数配置为 kernel size = 7, groups = in channels/8, num group = 16;

Visualization

为了评估ELA方法的有效性,作者在ImageNet上进行了两组实验:ResNet(不包含注意力模块)和ELA-ResNet(包含ELA)。为了评估性能,作者使用了五张图像进行测试。通过使用GradCAM生成视觉 Heatmap ,作者在第四层(最后一个阶段的最后瓶颈)展示了两组模型的成果。下图说明了作者提出的ELA模块成功指导整个网络更精确地聚焦于目标细节的相关区域。这一演示突显了ELA模块在提高分类准确度方面的有效性。

在这里插入图片描述

Implementation

在这里插入图片描述

实验

在这里插入图片描述

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

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

相关文章

基于架构的软件开发方法_1.概述和相关概念及术语

1.体系结构的设计方法概述 基于体系结构的软件设计&#xff08;Architecture-Based Software Design&#xff0c;ABSD&#xff09;方法。ABSD方法是由体系结构驱动的&#xff0c;即指由构成体系结构的商业、质量和功能需求的组合驱动的。 使用ABSD方法&#xff0c;设计活动可以…

C++项目——集群聊天服务器项目(十一)服务器异常退出与添加好友业务

本节来实现C集群聊天服务器项目中的服务器异常退出与添加好友业务&#xff0c;一起来试试吧 一、服务器异常退出 在Linux环境下&#xff0c;我们在服务器端使用CTRLC结束程序执行&#xff0c;即使用CTRLC让服务器异常退出&#xff0c;这样的后果是本应登录服务器的用户在数据库…

vsCode 刷 leetcode 使用 Cookie 登录

1. 安装插件 打开 vsCode&#xff0c;选择扩展&#xff0c;搜索 leetcode&#xff0c;选择第一个&#xff0c;带有中文力扣字样&#xff0c;安装后重启 2. 切换终端 插件安装成功之后&#xff0c;侧边栏选择 leetcode 菜单&#xff0c;切换终端&#xff0c;选择中文版本&…

海康摄像头插件嵌入iframe时视频播放插件位置问题

参考&#xff1a;https://juejin.cn/post/6857670423971758094 原因&#xff1a;没有按照iframe相对位置计算视频插件位置。 解决&#xff1a; $(window).on(resize, resize);function resize(){// 解决iframe中嵌入海康插件初始化问题:// 1. 获取iframe相比于窗口的偏移量;c…

Flutter仿Boss-2.启动页、引导页

简述 在移动应用开发中&#xff0c;启动页和引导页是用户初次接触应用时的重要组成部分&#xff0c;能够提升用户体验和导航用户了解应用功能。本文将介绍如何使用Flutter实现启动页和引导页&#xff0c;并展示相关代码实现。 启动页 启动页是应用的第一个页面&#xff0c;首…

Jenkins首次安装选择推荐插件时出现”No such plugin cloudbees-folder”解决方案

安装Jenkins成功之后&#xff0c;首次启动Jenkins后台管理&#xff0c;进入到安装插件的步骤&#xff0c;选择"推荐安装"&#xff0c;继续下一步的时候出现错误提示&#xff1a; 出现一个错误 安装过程中出现一个错误&#xff1a;No such plugin&#xff1a;cloudb…

【大数据存储】实验二 HDFS操作实验

实验二 HDFS操作实验 启动Hadoop&#xff0c;执行jps&#xff0c;检查Hadoop相关进程是否启动成功 启动hadoop 执行jps,可以看到名称节点和数据节点&#xff0c;第二名称节点都打开了&#xff0c;则hadoop相关进程启动成功 在本地文件系统“/home”下新建两个文件夹&#xff…

Dapr(一) 基于云原生了解Dapr

(这期先了解Dapr&#xff0c;之后在推出如何搭建Dapr&#xff0c;以及如何使用。) 目录 引言&#xff1a; Service Mesh定义 Service Mesh解决的痛点 Istio介绍 Service Mesh遇到的挑战 分布式应用的需求 Multiple Runtime 理念推导 Dapr 介绍 Dapr 特性 Dapr 核心…

前后台分离nodejs+vue租房信息网站express-94sk3.

本租房管理系统有管理员&#xff0c;租客&#xff0c;屋主三个角色。管理员功能有个人中心&#xff0c;租客管理&#xff0c;屋主管理&#xff0c;房源信息管理&#xff0c;订单信息管理&#xff0c;屋主申诉管理&#xff0c;通知公告管理&#xff0c;留言板管理&#xff0c;系…

Electron的学习

目录 项目初始化可以看官网非常详细根路径创建.vscode文件夹主进程和渲染进程之前的通信ipcRenderer.send和ipcMain.on的使用ipcRenderer.invoke和ipcMain.handle的使用 切换主题模式文件拖放保存消息通知进度展示图标闪烁自定义菜单自定义右键菜单 项目初始化可以看官网非常详…

基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络&#xff08;CNN&#xff09;在时间序列中的应用 4.2 长短时记忆网络&#xff08;LSTM&#xff09;处理序列依赖关系 4.3 注意力机制&#xff08;Attention&#xff09; 5…

如何将平板或手机作为电脑的外接显示器?

先上官网链接&#xff1a;ExtensoDesk 家里有一台华为平板&#xff0c;自从买回来以后除了看视频外&#xff0c;基本没什么作用&#xff0c;于是想着将其作为我电脑的第二个屏幕&#xff0c;提高我学习办公的效率&#xff0c;废物再次利用。最近了解到华为和小米生态有多屏协同…

FMEA引领智能家居安全革新,打造无忧智能生活新纪元!

在智能家居日益普及的今天&#xff0c;如何确保家居安全成为消费者关注的焦点。本文将探讨如何通过FMEA&#xff08;故障模式与影响分析&#xff09;这一强大的质量管理工具&#xff0c;为智能家居赋能&#xff0c;打造安全无忧的智能生活新体验。 一、FMEA在智能家居领域的应用…

wireshark数据流分析-学习日记day1

参考内容&#xff1a; 网址hxxp://194.55.224[.]9/liuz/5/fre.php描述Loki Bot C2 网址早在 2023-08-15 就被注意到了2023-07-27 记录的 IcedID C2 域&#xff1a; vrondafarih[.]com - HTTP trafficmagiketchinn[.]com - HTTPS trafficmagizanqomo[.]com - HTTPS traffic 网…

【Python从入门到进阶】52、CrawlSpider链接提取器的使用

接上篇《51、电影天堂网站多页面下载实战》 上一篇我们采用Scrapy框架多页面下载的模式来实现电影天堂网站的电影标题及图片抓取。本篇我们来学习基于规则进行跟踪和自动爬取网页数据的“特殊爬虫”CrawlSpider。 一、什么是CrawlSpider&#xff1f; 1、CrawlSpider的概念 Cr…

算法打卡day23

今日任务&#xff1a; 1&#xff09;39. 组合总和 2&#xff09;40.组合总和II 3&#xff09;131.分割回文串 39. 组合总和 题目链接&#xff1a;39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;…

(十)Docker的基本操作

1.1.镜像操作 1.1.1.镜像名称 首先来看下镜像的名称组成&#xff1a; 镜名称一般分两部分组成&#xff1a;[repository]:[tag]。在没有指定tag时&#xff0c;默认是latest&#xff0c;代表最新版本的镜像 如图&#xff1a; 这里的mysql就是repository&#xff0c;5.7就是…

Python学习: 错误和异常

Python 语法错误 解析错误&#xff08;Parsing Error&#xff09;通常指的是程序无法正确地解析&#xff08;识别、分析&#xff09;所给定的代码&#xff0c;通常是由于代码中存在语法错误或者其他无法理解的结构导致的。这可能是由于缺少括号、缩进错误、未关闭的引号或其他括…

数据结构——二叉树——二叉搜索树(Binary Search Tree, BST)

目录 一、98. 验证二叉搜索树 二、96. 不同的二叉搜索树 三、538. 把二叉搜索树转换为累加树 二叉搜索树&#xff1a;对于二叉搜索树中的每个结点&#xff0c;其左子结点的值小于该结点的值&#xff0c;而右子结点的值大于该结点的值 一、98. 验证二叉搜索树 给你一个二叉树的…

P6维护:Oracle P6服务性能优化

前言 本文将介绍如何对ORACLE Primavera P6 EPPM软件进行性能调优&#xff0c;考虑到P6主要采用JAVA语言编制&#xff0c;且其使用的是Weblogic Server应用服务器部署P6各项服务器&#xff0c;其性能优化的原理便是基于其JVM特征参数进行设置 方法一&#xff1a;修改配置文件…