SpectFormer:把频域和 Attention 结合起来,Vision Transformer 会更好吗
论文信息
论文题目:SpectFormer: Frequency and Attention is what you need in a Vision Transformer
这篇论文关注的是视觉 Transformer 的 backbone 设计。作者试图回答一个很具体的问题:图像建模到底该主要依赖 attention,还是应该更多利用频域表示?
作者的结论不是二选一,而是认为这两类机制各有分工:
spectral / Fourier更适合提取边缘、纹理、线条和周期性结构;attention更适合建模 token 和 token 之间的全局依赖关系。
因此论文提出了 SpectFormer,核心思想是:
前几层先用 spectral block 做频域建模,后几层再用 attention block 做语义交互。
动机:为什么不能只靠一种机制

从第一页的 Figure 1 和 Figure 2 就能看出作者的出发点。
Figure 1 里作者把网络写成一串 block,其中:
- 前面一部分是
Spectral Blocks - 后面一部分是
Attention Blocks
这里的超参数 α 表示 spectral block 的数量:
α = 0:全是 attention,接近DeiT / ViTα = L:全是 spectral,接近GFNet0 < α < L:前 spectral、后 attention,就是SpectFormer
这张图本质上在表达一个判断:视觉任务里的信息不只有一种,因此 backbone 也不该只用一种 mixing 机制。
Figure 2 给了更直观的解释:
- 上方的 spectral module 先进入
Fourier Space,再Inverse Fourier回来; - 下方的 attention module 负责不同 token 之间的信息流动。
作者认为:
- 图像中的局部纹理、边缘、方向性结构,更适合频域分析;
- 图像中的非周期、跨区域依赖,更适合 attention。
因此 SpectFormer 的动机不是“谁取代谁”,而是:
让 spectral 和 attention 各做自己最擅长的部分。
这里的频域到底是什么
这篇论文里的“频域”不是小波 DWT 主线,而是 Fourier 频域。更准确地说,它使用的是 FFT / DFT 这类表示。
如果把图像看成一个二维信号,那么:
低频对应整体轮廓、平滑区域、慢变化;高频对应边缘、纹理、线条、快变化。
论文里的 spectral block 做的事情是:
- 把 patch 特征送到 Fourier 频域;
- 在频域里做可学习加权;
- 再通过逆变换回到空间域。
所以它本质上更像一个 可学习的频域滤波器。
这条路线和 GFNet 很接近。GFNet 也属于 frequency-domain 的视觉 backbone,强调用频域全局滤波做 token mixing。但 SpectFormer 认为:纯 spectral 方法虽然高效,却仍然不如强 attention 模型擅长复杂 token 交互,因此需要和 attention 结合。
Figure 3:SpectFormer 的结构到底长什么样

Figure 3 是整篇论文最关键的一张图。
左边作者先画了标准 DeiT:
- 输入图像切成 patch;
- patch 做线性投影;
- 加 position embedding;
- 堆叠一串 Transformer block;
- 最后做分类。
它的 block 就是标准结构:
MHSAMLP- 残差连接
LayerNorm
中间作者把 SpectFormer 的两类基本 block 单独拆了出来:
Attention Block
这部分和普通 Transformer 基本一致:
LayerNormMulti-Head Self-Attention- 残差
LayerNormMLP- 残差
作用是:
- 建模 patch 与 patch 之间的关系;
- 提供全局依赖和非局部语义交互。
Spectral Block
这部分对应论文真正的创新点。它的流程是:
LayerNormFFTSGNIFFTMLP
其中 SGN 是 Spectral Gating Network,也就是频域门控网络。
你可以把这个 block 理解成:
把原本 attention 做 token mixing 的那一段,
换成频域下的可学习 mixing。
注意作者并没有把 Transformer 的整体框架推翻,而只是把“前半段的 mixing 机制”从 attention 替换成了 spectral mixing。
SGN:频域门控模块具体在干什么
Figure 3 最右边红框就是 SGN 的细节。
它的流程可以概括成:
- 输入
X - 做
FFT - 得到频域表示的实部和虚部
- 分别与可学习参数
W_R、W_I相乘 - 组回复数表示
- 做
IFFT - 输出回空间域
由于 Fourier 变换后的结果是复数,所以这里必须同时处理:
- 实部
Real - 虚部
Imaginary
这一步和普通卷积、普通线性层很不一样。SpectFormer 在频域里做的是:
对不同频率位置、不同通道的频率成分进行可学习加权。
这等价于在学习:
- 哪些频率要放大;
- 哪些频率要抑制;
- 哪些方向的纹理更重要;
- 哪些模式对后续任务更有帮助。
论文还强调,频域里的这种乘法,从空间域视角看可以解释成一种 global convolution。也就是说 Spectral block 虽然没有显式算 attention matrix,但它依然是一种全局 mixing 操作。
为什么一定是“前 spectral、后 attention”
这其实是论文最重要的结论,不只是一个经验做法。
作者先从直觉上给出解释:
- 浅层更适合先学习边缘、线条、纹理和局部频率结构;
- 深层更适合做长距离关系建模和高层语义交互。
然后他们又用消融去验证这个判断。后面实验表明:
- 前面放 spectral、后面放 attention 的结构最好;
- 如果反过来放,性能会明显下降;
- 交替摆放也不如这种单向分工。
换句话说,SpectFormer 不是在说“spectral 和 attention 两个都加进去就行”,而是在说:
这两类机制在网络深度方向上也应该有明确分工。
实验设计:不只做分类,也做下游任务
论文实验部分主要包含四类任务:
ImageNet-1K图像分类- 迁移学习分类
- 目标检测
- 实例分割
其中最核心的主任务还是 ImageNet-1K 分类。
检测与分割更多是用来证明它可以作为通用 backbone 迁移到别的视觉任务。
除了主任务之外,作者还做了三类分析:
α的消融分析:到底应该放多少个 spectral block- spectral layer 变体分析:到底该用哪种频域模块
- 结构排布分析:spectral block 到底该放前面还是后面
另外还有一部分滤波器可视化分析,用来解释为什么它的表示更好。
主结果:ImageNet 上它到底强在哪

这页表 2 是主结果,作者把模型按 FLOPs 分成:
SmallBaseLarge
然后和很多 backbone 比较,包括:
ResNetDeiTPVTSwinGFNetWave-ViTVOLOMaxViTBiFormer
SpectFormer 的代表结果包括:
SpectFormer-H-S*:84.3SpectFormer-H-B*:85.1SpectFormer-H-L*:85.7
这组结果的意义在于:
- 它优于纯 spectral 模型,比如
GFNet - 它也能和强 attention / hierarchical 模型竞争
- 而且不是靠特别夸张的计算成本换来的
因此论文想证明的主结论是:
混合 spectral + attention 的设计,确实能把纯 spectral 和纯 attention 两条路线的优点结合起来。
消融 1:alpha 到底取多少
论文里 α 表示 spectral block 的数量。
在一个 12 层的 vanilla 结构里:
α = 0:全 attentionα = 12:全 spectral- 中间值:混合结构
作者测试了多个取值,发现:
α = 4最优- 继续增加 spectral block,性能反而下降
这说明:
- 纯 attention 不是最优;
- 纯 spectral 也不是最优;
- 少量 spectral + 更多 attention 是最好的折中。
这正好对应论文一开始的假设:spectral 有价值,但不应完全替代 attention。
消融 2:为什么最后选 Fourier Gating

这页同时包含了表 3、表 4 和 Figure 4。
表 3 比较了几种 spectral layer 变体:
FNFNODCTWGNFGN
其中:
WGN更接近 wavelet / 小波路线FGN是 Fourier Gating Network
结果显示:
FGN最好WGN并不是最佳
所以从代码和实验两边都能看出来,作者最终选择的是 Fourier gating,而不是 DWT / wavelet 主路线。
消融 3:Spectral block 该放哪里
同一页的表 4 比较了几种结构摆放方式:
Init-SpectralInit-CNNFinal-SpectralAlt-Spectral
结果非常清楚:
Init-Spectral最好Final-Spectral明显变差- 交替放也不如前 spectral 后 attention
这张表的重要性不亚于主结果,因为它直接支撑了论文的核心结构判断:
频域模块更适合放在前面,attention 更适合放在后面。
这不是拍脑袋设计,而是有实验支撑的。
Figure 4:为什么说 SpectFormer 学到的滤波器更锐利
同页右侧的 Figure 4 是滤波器可视化。
作者拿 DeiT、GFNet 和 SpectFormer 的前几层滤波器做比较,结论是:
SpectFormer学到的滤波器更局部化;- 对线条、边缘和方向性结构的响应更清晰;
- 比纯 spectral 的
GFNet更锐利。
这个结果很有意思,因为它说明:
- SpectFormer 不是单纯把 spectral 和 attention 堆起来;
- 后面的 attention 层,会反过来帮助前面的 spectral 层学到更有区分力的频域特征。
作者的解释是:由于 deeper attention layers 存在,浅层 spectral blocks 会更倾向于学习后续语义建模真正需要的边缘和结构信息。
下游任务:检测、实例分割和迁移学习

这一页包含了 COCO 和迁移学习实验。
目标检测与实例分割
作者在 MS COCO 2017 上测试了:
RetinaNet:目标检测Mask R-CNN:实例分割
评估指标包括:
APAP50AP75APS / APM / APLAP^b / AP^m
结论上,SpectFormer 作为 backbone 的结果是有竞争力的,说明它并不是只适合分类任务。
迁移学习分类
作者还在这些数据集上做了迁移学习:
CIFAR-10CIFAR-100Flowers-102Stanford Cars
他们先在 ImageNet-1K 上预训练,再 fine-tune 到这些数据集。结果显示 SpectFormer 的表示具有较好的通用性,并不是只在 ImageNet 上刷分有效。
官方代码实现:论文中的 Spectral block 在代码里怎么落地
作者公开了官方仓库,并分别实现了:
vanilla_architecturehierarchical_architecture
源码里最核心的模块就是 SpectralGatingNetwork。它做的事情和论文 Figure 3 基本一致:
- 输入
x - reshape 成二维 patch 网格
torch.fft.rfft2- 与
complex_weight做复数乘法 torch.fft.irfft2- 再还原成 token 序列
这说明论文不是只在概念上说“进入 Fourier space”,而是真的在代码里用 FFT 做了频域门控。
另一个关键点是,vanilla 代码里直接把最优配置写成了:
alpha = 4
而 hierarchical 版本则采用:
- 前两个 stage 用 spectral block
- 后两个 stage 用 standard attention block
这和论文实验结论是完全一致的。
如果把这篇论文的价值压缩成三点
我觉得 SpectFormer 最值得记住的是下面三点。
第一,它提出的不是“频域替代 attention”,而是 频域和 attention 的互补性。
第二,它不只是说“混合有用”,而是进一步指出:
前 spectral、后 attention 才是更合理的视觉层级分工。
第三,它通过分类、迁移学习、检测、实例分割、消融和滤波器可视化,比较完整地证明了这套设计确实有效。
这篇论文的启发
如果从后续研究的角度看,SpectFormer 的启发很明确:
- 图像任务不一定只能沿着纯 attention 扩展;
- 频域表示仍然是有价值的;
- 关键不在于“频域是否强于 attention”,而在于“频域应该在网络里扮演什么角色”。
这也是为什么这篇论文读起来比较舒服。它不是在一味堆新模块,而是在认真回答一个 backbone 设计问题:
对视觉 Transformer 来说,频域和注意力机制到底该如何协作。
一句话总结
SpectFormer 真正想表达的是:
纯 attention 太贵,纯 spectral 又不够强,因此更好的 Vision Transformer 设计,是让浅层先做频域建模,深层再做 attention 语义交互。
See also
- SCRWKV 论文总结:用结构校准 RWKV 做轻量裂缝分割 2026-07-27
- MambaLiteUNet:用 Mamba、双门控与净化跳连做轻量皮肤病变分割 2026-07-26
- UTANet:用任务自适应专家混合重构 U-Net 跳跃连接 2026-07-25
- DSC:让 U 型网络的跳跃连接在测试时适配医学图像 2026-07-23
- TG-HEM:用拓扑困难样本挖掘改进拥挤病理细胞检测 2026-07-22