基本信息

  • title: Global Filter Networks for Image Classification
  • date: 2021
  • background: 随着 NLP 领域的发展,seq2seq 模型也走进了图像分类领域,但 self-attention 带来的 O(n2)O(n^2) 计算量使得在实际中难以接受,急需更低时间复杂度的模型。

图像分类模型现状

  1. 首先是最经典的 CNN 模型
  2. 然后是基于 Transformer 的模型 ViT
  3. 再往后,有些论文质疑 self-attention 的有效性,使用 MLP 替代 self-attention 层也达到了相同的效果

由于引入的归纳偏置更少,后两类模型有潜力从原始数据中学习到更通用、更灵活的空间位置间交互。但问题出在了计算复杂度上——复杂度会随着 token 数量的增加呈二次方增长。ViT 通常为中间特征考虑相对较低的分辨率(例如,ViT 和 MLP-Mixer 都从输入图像中提取 14×14 的标记),但这种设计可能限制其在下游密集预测任务(如检测和分割)中的应用。

from ViT to GF-NET

以下模型都是以 ViT 为基础,进行改动。

ViT

首先是 patch embedding,有两个作用:

  1. position encoding:self-attention 无法区分不同位置的 token(当然后来的 MLP 不需要这个过程)
  2. token embedding:将 patch 转换为 token 表示,压缩信息

ViT 中的 Transformer Encoder 可以分成两部分:

  1. self-attention
  2. feed forward

self-attention 层负责将 token 按照重要性混合起来,这个过程对于 token 来说是 channel-wise 的。因此后续还需要一个 FFN,将 channel 中的信息进行融合。

MLP

论文 MLP-Mixer: An all-MLP Architecture for Vision 指出,self-attention 不是必要的,MLP 可以替代 self-attention 层,达到相同的效果。

其提出了 MLP-Mixer,包含两个组件:

  1. token-mixing MLP(极端情况下等价于全局卷积)
  2. channel-mixing MLP

和 ViT 相比,其实只是把 token-mixing 的方法从 self-attention 改为了 MLP。但对于工程任务,其并没有多大的改善,因为时间复杂度仍然是平方级别的。实验取得了与 self-attention 几乎相同的性能,说明 self-attention 不是必要的。

proposal idea:Global Filter Layer

针对视觉 Transformer 进行改动,将 self-attention 层换成 Global Filter Layer。

Global Filter Layer 主要做了以下三件事:

  1. 傅里叶变换
  2. 滤波
  3. 逆傅里叶变换

其中,快速傅里叶变换(FFT)的时间复杂度为 O(LlogL)O(L \log L),这里 L=H×WL = H \times W 是特征图的像素总数。


为何使用频域滤波

GF layer 作用等效于空域 channel-wise 全局卷积(即卷积核大小为 H × W 的卷积),其核心依据是卷积定理

卷积定理

空域卷积 ⇔ 频域乘法

两个函数在空域的卷积,等价于它们在频域的乘积;反之,两个函数在空域的乘积,等价于它们在频域的卷积:

空域:(fg)(x)    频域:f^(ω)g^(ω)\text{空域:} (f * g)(x) \iff \text{频域:} \hat{f}(\omega) \cdot \hat{g}(\omega)

因此,如果想在空域做全局卷积(卷积核大小为 H×W),直接算的复杂度是 O((HW)2)O((HW)^2)。但根据卷积定理,我们可以:

  1. 将输入特征图和卷积核都变换到频域(用 FFT,O(HWlog(HW))O(HW \log(HW))
  2. 在频域做逐元素乘法(O(HW)O(HW)
  3. 再通过逆 FFT 变回空域(O(HWlog(HW))O(HW \log(HW))

总复杂度从 O((HW)2)O((HW)^2) 降到 O(HWlog(HW))O(HW \log(HW)),且不受卷积核大小影响——无论卷积核是 3×3 还是 H×W,计算量都一样。

这就是 GF layer 的核心思想:用频域乘法等价替代空域全局卷积,既保有了全局建模能力,又获得了高效的计算效率。

参数量相同

组件 参数量
GF layer H×W×DH \times W \times D(实数参数,利用共轭对称可减半)
普通卷积 H×W×DH \times W \times D

但运算速度变快

  • self-attention:O((HW)2)O((HW)^2)
  • GF layer(FFT):O(HWlog(HW))O(HW \log(HW))

我们平时不用超大卷积核不是因为其建模能力弱,而是因为计算效率低且容易过拟合。而小卷积又会导致感受野受限。GF 正是通过频域计算,在保持全局建模能力的同时大幅降低复杂度。


频域滤波性能甚至优于 MLP-Mixer

在 MLP-Mixer 中,其把所有 patch 拍平了,丢失了二维结构,其全局卷积是一维的。

而 GF Net 使用二维傅里叶变换,其等价于二维全局卷积,意味着卷积核仍然能够学习到上下左右这种二维关系,保持了空间结构的连续性。

总结

Self-Attention 在视觉领域的必要性已受到不少质疑,纯 MLP 类模型同样能达到与之相近的性能。但这类方法在工程落地时仍面临着共同瓶颈——它们的计算复杂度均为平方级别。

而 Global Filter 正是为解决这一问题提出的高效方案:它依托卷积定理,将原本在空域难以落地的全局大核卷积转移到频域中完成计算,并通过快速傅里叶变换 FFT 实现加速,把平方级的复杂度大幅降至近似线性的 O(LlogL)O(L \log L),让全局空间建模真正做到高效且可工程化落地。