【ICCV2023】Adaptive Frequency Filters As Efficient Global Token Mixers

Adaptive Frequency Filters As Efficient Global Token Mixers

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

代码:暂未开源

解读:ICCV23|轻量级视觉主干网络AFFNet:频域自适应频段过滤=空域全局动态大卷积核 - 知乎 (zhihu.com)

摘要

最近的vision transformer、大核CNN和MLP由于其在全局范围内的有效信息融合,在视觉任务中取得了显著的成功。然而,由于自注意机制、大内核或全连接层的高昂计算成本,它们的高效部署,特别是在移动设备上的高效部署仍然面临着值得注意的挑战。这项工作,将传统的卷积定理应用于深度学习,以解决这一问题,并揭示自适应频率滤波器可以作为有效的全局令牌混频器。

基于此,论文提出了自适应频率滤波(AFF)令牌混频器:Adaptive Frequency Filtering token mixer。通过傅里叶变换 (Fourier transform) 将特征变换到频域,并利用下面关系在数学上的等价:

  • 在频域中 "通过逐位置的乘法操作过滤不同频段的特征"。
  • 在空域中 "用一个动态卷积核执行特征混合操作,卷积核的大小为特征的大小"。

AFF令牌混合器作为主要的神经算子来构建一个轻量级的神经网络,称为AFFNet。

实验结果表明,与其他轻量级网络设计相比,AFFNet 在大多数视觉任务 (包括视觉识别和密集预测任务) 上实现了更好的精度和效率的权衡。

动机

AFFNet 设计了一种自适应频段过滤算子:Adaptive Frequency Filtering token mixer。

利用卷积定理, 即:在一个域中的卷积在数学上等于其对应的傅里叶域中的 Hadamard 积 (也称为 Elementwise 乘积)。它的特点力求和 Self-Attention 对齐,包括:

  • 全局信息建模 (Large Scope):在频域中进行 Hadamard 积运算等价为在空域中进行大卷积核运算。
  • 输入自适应 (Instance-Adaptive):Self-Attention 的另一个性质是输入自适应,即计算出的 Attention 权重与输入图片的内容有关。动态卷积满足这一性质,但是同样存在计算代价高昂的问题,尤其是大核卷积的情况。直接加大卷积核很难直接满足这个需求。

方法

Token Mixing 过程表示

对于特征 x^q, 经过 token mixing 后得到N(x^q) 的过程可以统一描述为下式:

对于 CNN 模型,如果使用大卷积核,卷积的计算复杂度随总的 token 数呈O(N^2)的关系,对于 Transformer 模型,Self-Attention 的计算复杂度随总的 token 数也呈O(N^2)的关系。MLP-Mixer 模型如果实现全局感受野需要大量的权重参数。因此自适应频段过滤算子希望借助频域设计高效,全局,以及输入自适应的算子。

自适应频段过滤算子的原理

卷积过程可表表达为: 

AFFNet网络 & 自适应频段过滤算子 

图2:自适应频段过滤算子,左侧:把空域特征转换到频域进行操作,右侧:直接在空域中进行动态卷积的操作相互等价

AFFNet 网络架构:每一层包括一个 MBConv 模块和一个自适应频段过滤算子。遵循 Transformer 架构的一般范式使用 Layer Normalization 归一化。整体架构可以写成下式:

堆叠多个 AFF 块来构建轻量级骨干网络,即 AFFNet,AFFNet 使用惯例做法 Convolution Stem 来处理输入图片,每个 Stage 之间使用一个 Fusion 模块来融合特征。

自适应频段过滤算子流程:

  1. 首先把输入特征做快速傅里叶变换 (Fast Fourier Transform, FFT) 转换到频域X_F=\mathcal{F}(X), 其中\mathcal{F}(X)为:

 快速傅里叶变换的计算复杂度是O(NlogN).

  2. 通过可学习的频域滤波器 \mathcal{M}(\mathcal{F}(X))点乘输入的频域特征:

其中,\mathcal{M}(\mathcal{F}(X)) 是可学习的频域滤波器, 和频域特征有相同的形状。为了使网络尽可能轻量化, \mathcal{M}(\cdot)由 1×1 卷积层, 即线性层, ReLU 激活函数和一个线性层实现。

  3. 通过快速傅里叶逆变换 (Inverse Fast Fourier Transform, IFFT) 转换回到空域:

至此,\hat{X}在数学上等价于采用大核动态卷积作为 Token Mixer 的权重得到的输出结果。 ​​​​

等价关系如下

 其中, \mathcal{F}^{-1}[\mathcal{M}(\mathcal{F}(X))]是与 X 形状相同的张量, 可以看作是大核动态卷积的卷积核 (满足性质 a : 全局信息建模), 这个 Kernel 与输入内容有关 (满足性质 b : 输入自适应)。因此, \hat{X} 在数学上等价于采用大核动态卷积作为 Token Mixer 的权重得到的输出结果。根据傅里叶变换的性质, 对X 采用 circular padding。

自适应频段过滤算子使用极轻量级的网络构建一个可学习的频域滤波器 \mathcal{M}(\cdot), 然后计算 \mathcal{M}(\cdot)与频域特征之间的 Hadamard 积进行自适应频率滤波。最后再将特征通过傅里叶逆变换, 变换到空域。至此, 频域自适应频段过滤就相当于是空域全局动态大卷积核。

使用不同频率操作操作算子的比较: 

实验

ImageNet-1K 图像识别 

 

COCO 目标检测  & ADE20k 语义分割

消融实验

为了验证频域中混合信息的有效性,作者比较了在原始域和频域应用相同的自适应过滤操作,即进行了下面的实验:丢弃所有的傅里叶和傅里叶反变换,并保持其他与 AFFNet 相同,命名为 "Base.+AFF w/o FFT"。在相同的模型复杂度下,AFFNet 明显高出 1.4% 的 Top-1 精度。在原始域中应用自适应滤波甚至比仅仅用 Conv 作为 Token Mixer 弱 (取得了 78.6% 的 Top-1 精度,命名为 "Base.+Conv-mixer (3×3)"),这表明只有自适应频率滤波器可以作为有效的全局 Token Mixer. 

使用不同的频率操作比较 

 


http://www.niftyadmin.cn/n/4955721.html

相关文章

滑动验证组件---设置movable-view组件的x属性在微信小程序端失效的问题

场景 采用uniapp的movable-view组件实现滑动验证组件。 流程 滑块未滑到最右端时,回弹到原点滑块滑到最右端时,则显示滑动结束,不可再滑动 问题 频繁设置uniapp的movable-view组件的x属性,在H5端正常,但在微信小程…

Vue 框架如何获取数组中的值?

在Vue框架中&#xff0c;获取数组中的值可以通过以下几种方式实现&#xff1a; 1、使用数组索引&#xff1a; 可以使用数组的索引来获取特定位置的值。在Vue中&#xff0c;可以通过在模板中使用差值表达式或指令来获取数组中的值。例如&#xff1a; <div>{{ myArray[0]…

软件成本估算中的软件因素调整因子及开发、测试因素调整因子是什么?

我们在对软件项目进行软件成本估算时&#xff0c;经常会用到两个重要的因子——软件因素调整因子及开发/测试因素调整因子。那么&#xff0c;什么是软件因素调整因子&#xff1f;什么是开发/测试因素调整因子呢&#xff1f;这两个重要参数我们如何获得&#xff1f;   所谓软件…

基于springboot+vue的博物馆藏品平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Golang GORM 单表删除

删除只有一个操作&#xff0c;delete。也是先找到再去删除。 可以删除单条记录&#xff0c;也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…

幼儿园托幼机构管理系统 微信小程序

托幼机构管理系统微信小程序从功能、数据流程、可行性、运行环境进行需求分析。对托幼机构管理系统微信小程序的数据库、功能进行了详细设计&#xff0c;分析了主要界面设计和相关组件设计&#xff0c;托幼机构管理系统微信小程序的具体实现进行了介绍。从数据库中获取数据、向…

Linus对AMD的fTPM 漏洞表示”沮丧” 呼吁禁用该功能

AMD 的 fTPM 问题在业内众所周知&#xff0c;经常导致系统崩溃和卡死。Linux 的创建者 Linus Torvalds 对该功能表示失望&#xff0c;称其为内核的”瘟疫”。 简单回顾一下&#xff0c;可信平台模块&#xff08;Trusted Platform Module 或 TPM&#xff09;是一种安全检查&…

SVF——C/C++指针分析/(数据)依赖分析框架

这篇文章包括&#xff1a; SVF介绍SVF源码解读SVF优势与不足如何扩展改进 文章包括一些个人观点&#xff0c;若觉得有误请留言纠正&#xff0c;感谢&#x1f64f; 在这篇文章之前强烈推荐看我公众号之前推的一篇文章&#xff1a;CG0’2011 “Flow-sensitive pointer analysis f…