FcaNet: Frequency Channel Attention Networks论文总结

news2025/1/16 13:58:59

论文:https://arxiv.org/abs/2012.11879

中文版:FcaNet: Frequency Channel Attention Networks

源码:https://github.com/cfzd/FcaNet或https://gitee.com/yasuo_hao/FcaNet

一、论文背景和出发点

问题:许多工作都集中在如何设计高效的通道注意机制上,而忽略了一个基本问题,即由于大量的信息丢失,通道注意机制使用标量来表示通道会很困难。(传统的GAP操作,即“平均”操作会极大的抑制特征的多样性,而且会造成大量信息的丢失。)

出发点:在这项工作中,我们从不同的角度出发,将信道表示问题视为使用频率分析的压缩过程。基于频率分析,我们从数学上证明了传统的全局平均池是频域特征分解的一个特例。(为使用离散余弦变换压缩信道提供了可能性。)

有了这些证明,我们自然地推广了信道注意机制在频域中的压缩,并提出了我们的多谱信道注意方法,称为FcaNet。(传统的GAP操作压缩通道的效果不好,因此作者提出使用离散余弦变换(DCT)来压缩信道。)

简单地来说,作者将通道注意力视为一个压缩问题,传统的方式使用全局平均化池会造成大量信息丢失,所以作者建议在信道注意力机制中使用离散余弦变换(DCT)来压缩通道。

二、创新点

1. 证明了传统GAP(全局平均化池)是DCT(离散余弦变换)的特例。

2. 提出了三种频率分量选择标准以及建议的多光谱信道注意力框架,以实现FcaNet。

3. 大量实验表明,该方法在ImageNet和COCO数据集上都取得了最先进的结果,计算成本与SENet相同。在ImageNet数据集上的结果,如下图所示:

三、离散余弦变换(DCT)和通道注意力

1. 离散余弦变换DCT

作用:

(1)2维DCT的基函数

(2)2维DCT

 其中f^{2d}\in \mathbb{R}^{H\times W}是2维DCT频谱,x^{2d}\in \mathbb{R}^{H\times W}是输入图像,Hx^{2d}的高度,Wx^{2d}的宽度,B^{i,j}是2维DCT的基函数,h ∈ { 0, 1, · · · , H−1 },w ∈ { 0, 1, · · · , W−1 }。

(3)逆2维DCT

2. 通道注意力

传统方式的阐述,以SE模块为例。

(1)注意力向量

其中,att\in \mathbb{R}^C是注意力向量,sigmoid是sigmoid函数,fc代表映射函数,如全连接层或一维卷积,compress:R^{C\times H\times W}\mapsto R^C是一种压缩方法(SE模块中使用全局平均池化GAP)。详情可参考:SENet的Squeeze操作和Excitation操作。

(2)缩放

在获得所有通道的注意力向量后,输入X的每个通道按相应的注意力值进行缩放:

其中,X̃是注意力机制的输出,att_i是注意力向量的第i个元素,X_{:,i,:,:}是输入图像的第i个通道。详情可参考:SENet的Scale操作。

3. 证明:GAP是2D-DCT的特例

将2维DCT公式中的h和w都置为0,得到:

f^{2d}_{0,0}表示最低频率分量与gap函数成正比,由上式可见,gap函数是2维DCT的一种特例。

结论在信道注意机制中使用GAP意味着只保留最低频率的信息。

推广:除了低频信息以外,其他频率的所有分量也表示信道的有用信息不应被遗弃,所以作者提出在注意力机制中将GAP推广到2D DCT,并用2D DCT的多个频率分量压缩更多信息。

四、Multi-Spectral Channel Attention的具体实现

多光谱通道注意力模块,如下图所示:

1. 分割

沿通道维度方向将输入X分成\left [ X_0,X_1,\cdots ,X_{n-1} \right ]

其中,X_i \in R^{C' \times H \times W} , i \in \{0, 1,\cdots , n-1\}, C' = \frac{C}{n},通道数C被分为了n份。

2. 压缩

对于每个X_i,分配相应的2D-DCT频率分量用作每个X_i的压缩,得到的{Freq}^i构成通道注意力的各个分量。

 其中,[u_i,v_i]是对应于X^i的频率分量2维指数,{Freq}^i \in {\mathbb{R}^{C'}}是压缩后的C'维向量。

3. 拼接

对每个{Freq}^i进行拼接操作,得到多光谱向量。

其中,Freq\in R^C是获得的多光谱向量。

4. 多光谱通道注意力

为了获取通道注意力,多光谱向量还要经过全连接层和sigmoid处理。整个多光谱通道注意力框架可以表示为:

获取到通道注意力之后的步骤与SEnet基本一致。

五、频率分量的选择标准

如何为每个X_i选择频率分量指数[u_i,v_i]是一个重要问题,作者提出了三个选择标准。

1. FcaNet LF(低频)

只选择低频分量。

2. FcaNet TS(两步选择)

第一步:分别评估通道注意力中每个频率分量的结果。

第二步:根据评估结果,我们选择了性能最高的Top-k频率分量。

3. FcaNet NAS(神经结构搜索)

使用神经结构搜索来搜索信道的最佳频率分量。

对于每个X_i,将一组连续变量\alpha =\{\alpha(u,v)\}配给搜索组件。该X_i的频率分量可以表示为:

其中O是包含所有2D DCT频率分量索引的集合。训练后,X_i的频率分量等于\{\alpha(u,v)\}中的最大值。

六、实验

数据集:ImageNet,COCO数据集。

网络:ResNet-34、ResNet-50、ResNet-101和ResNet-152。

1. 在ImageNet上不同注意力方法的比较

 在相同的计算成本下,FcaNet优于对比的不同注意力方法。

2. 在CoCo上不同注意力方法的比较

  在不同的数据集上,FcaNet依然优于对比的不同注意力方法。

七、总结

在本文中,研究了通道注意力的一个基本问题,即如何表示通道,并将此问题视为一个压缩过程。证明了GAP是DCT的一个特例,并提出了具有多谱注意力模块的FcaNet,它在频域上推广了现有的信道注意力机制。同时,在多谱框架中探索了频率分量的不同组合,并提出了频率分量选择的三个标准。在相同数量的参数和计算成本的情况下,本文提出的方法可以始终优于SENet。与其他通道注意力方法相比,我们在图像分类、对象检测和实例分割方面也取得了最先进的性能。此外,FcaNet简单而有效。本文提出的方法可以在现有信道注意力方法的基础上,只需更改几行代码即可实现。

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

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

相关文章

【T+】安装畅捷通T+提示安装向导找不到环境检测工具,是否手动选择环境检测工具文件夹。

【问题描述】 在windows server 2008r2系统环境下, 安装畅捷通T专属云标准版18.0软件的时候,提示: 安装向导找不到环境检测工具,是否手动选择环境检测工具文件夹(CheckEnvironment) 点击【是】手动选择&…

leetcode数据库题第六弹

leetcode数据库题第六弹 626. 换座位1280. 学生们参加各科测试的次数1321. 餐馆营业额变化增长1327. 列出指定时间段内所有的下单产品1341. 电影评分1378. 使用唯一标识码替换员工ID1393. 股票的资本损益1407. 排名靠前的旅行者1484. 按日期分组销售产品1517. 查找拥有有效邮箱…

数字基带传输

常用码型: 为了适应信道的传输,传输码型必须具备以下基本特性: 1)无直流、很少的低频分量; 2)含有码元定时信息; 3)主瓣宽度窄; 4)适用于各种信源的…

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视

课程名称适应人群ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视 全面AI时代就在转角,道路已经铺好了“局外人”or“先行者”就在此刻等你决定 1、对ChatGPT感兴趣并希望有人手把手教学的新手 2、希望了解GPT各类应用抓住未来风口 3、希…

【软件设计师暴击考点】UML知识高频考点暴击系列

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件…

【Android Framework系列】第2章 Binder机制大全

1 Binder简介 1.1 什么是Binder Binder是Android中主要的跨进程通信方式。Android系统中,每个应用程序是由Android的Activity,Service,BroadCast,ContentProvider这四剑客中一个或多个组合而成,这四剑客所涉及的多进程…

【瑞萨RA_FSP】IWDT——独立看门狗定时器

文章目录 一、IWDT简介二、IWDT功能框图剖析1. IWDT 时钟源(1) 计数器时钟(2) 独立看门狗超时时间计算 2. IWDT 模块电路功能讲解3. 独立看门狗(IWDT)与看门狗(WDT)功能对比4. 怎么使用IWDT 三、IWDT实验1. 硬件设计2. 文件结构3.…

交通 | 考虑供需交互下的航空网络优化问题

编者按: 本文提出了一种包含供需交互作用的航空网络规划模型 (ANPSD),该模型同时考虑了航线选择、航班频率和机队组成等问题,还捕捉了航空公司的供应和乘客需求之间的相互依赖关系。作者将需求实证函数与 ANPSD 模型相结合,开发了…

代码随想录算法训练营第四十四天|完全背包、518. 零钱兑换 II 、377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

【数据结构】顺序表,链表

前言 小亭子正在努力的学习编程,接下来将开启 javaEE 的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 前言 顺序表 ArrayList ArrayLi…

K8S存储值之PV和PVC

1. 概念: 1.1. PersistentVolume (PV): 是由管理员设置的存储,它是群集的一部分。就像节点是集群中的资源一样,PV也是集群中的资源。PV是Volume之类的卷插件,但具有独立于使用PV的Pod的生命周期。此API对象包含存储实…

数字图像处理-图像复原与重建

文章目录 一、图像退化/复原过程的模型二、噪声模型2.1噪声的空间和频率特性2.2一些重要的噪声概率密度函数2.2.1高斯噪声2.2.2瑞利噪声2.2.3爱尔兰(伽马)噪声2.2.4指数噪声2.2.5均匀噪声2.2.6脉冲(椒盐)噪声 2.3周期噪声 三、只存…

【ABAP】数据类型(四)「类型组TYPE-POOL」

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较…

基于电容电流前馈与电网电压全前馈的三相LCL并网逆变器谐波抑制MATLAB仿真

基于电容电流前馈+电网电压全前馈的三相并网逆变器谐波抑制MATLAB仿真资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87940934模型简介: 测试环境为MATLAB2021b 一共包含两个模型:一个是传统无改进模型,一个…

chatgpt赋能python:Python画运动轨迹:探索世界的足迹

Python画运动轨迹:探索世界的足迹 作为一门快速发展的编程语言,Python在数据分析、机器学习、Web开发等多个领域中发挥着举足轻重的作用。其中,画运动轨迹是Python可视化库中较为常见的应用之一。本文将介绍使用Python画运动轨迹的方法&…

chatgpt赋能python:Python画点函数:如何绘制并掌握基础图形?

Python画点函数:如何绘制并掌握基础图形? Python是一个极为强大的编程语言,它可以用来编写各种应用程序,包括绘图。绘图是Python的重要特性之一,它提供了各种绘图函数,包括画点函数。Python的画点函数是一…

chatgpt赋能python:Python的frozenset:一种不可变的集合类型

Python的frozenset:一种不可变的集合类型 在Python中,集合是一种基本的数据类型。它们是无序的、可变的、且不允许重复的元素。但是,有时候我们需要一个不可变的集合,即一旦创建就不允许进行修改操作的集合。这就是frozenset的作…

【STM32 】芯片命名、内核、产品系列

文章目录 一、半导体公司介绍二、STM32 芯片2.1 芯片命名2.2 Cortex-M内核2.3 STM32 系列 一、半导体公司介绍 STM32是STMicroelectronics(意法半导体)公司的一系列32位微控制器,基于ARM Cortex-M内核,具有高性能、低功耗、丰富的…

【软件设计师暴击考点】软件工程知识高频考点【二】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件…

chatgpt赋能python:Python的Pipe:快速高效的数据传输工具

Python的Pipe:快速高效的数据传输工具 如果你是一名Python工程师,那么你一定会非常了解数据传输的重要性。Python的Pipe就是一种可以让你快速高效地传输数据的工具。在本文中,我们将对Python的Pipe进行详细介绍,探讨它的优点、如…