快速傅里叶卷积
论文链接
NeurIPS 2020
摘要: 目前深度网络中的普通卷积以局部且固定scale的方式运行(例如,面向图像的任务广泛采用3×3 kernel),导致网络低效连接两个远距离位置。本文提出了一种具有 non-local 感受野和卷积单元内 cross-scale fusion 的新卷积算子:快速傅里叶卷积(Fast Fourier Convolution FFC)。根据傅里叶理论中的谱卷积定理,全局谱域中的逐点更新会影响傅里叶变换中涉及的所有输入特征,是 non-local 感受野的设计线索。本文提出的FFC旨在将三种不同的计算封装在一个运算单元中:
① 一个进行普通 small-kernel 卷积的 local 分支;
② 一个处理频谱叠加图像 patch 的 semi-global 分支;
③ 一个处理图像级别频谱的 global 分支。
所有分支互补处理不同的scale,通过一个多分支聚合步骤进行 cross-scale fusion。无需任何调整 FFC 就可直接替换现有网络中的普通卷积,且复杂性(例如FLOPs)相当。我们在三个视觉基准(用于图像识别的ImageNet、用于视频动作识别的Kinetics、用于人体关键点检测的MSCOCO)上对FFC进行了实验评估,结果表明FFC能显著提升上述任务的准确性。
一句话总结:本文设计了一个新的卷积操作,用傅里叶变换到频域,在频域内做卷积以捕获全局特征,然后再逆变换回去;
文章目录
1 Introduction
两个需求激发FFC的设计:
① 首先,深度卷积神经网络(CNN)的核心概念之一是深根于视觉皮层结构中的感受野。卷积网络中的感受野指一个滤波器可以访问的图像部分。大多网络深度堆叠许多小感受野来线性或指数级增大感受野(例如,ResNet中用于图像的3×3卷积核,C3D中用于视频的3×3×3卷积核),确保整幅图像对高层可见。但大感受野对人体姿态估计之类的上下文敏感任务至关重要。最近关于扩大感受野的研究包括可变形卷积和 non-local 神经网络。
② 其次,CNN通常采用链式拓扑结构,神经层提供不同 level 的特征抽象。cross-scale fusion 在各种场景中都取得了成功,例如 FPN 可以向较浅的层 tailor 并发送 high-level 语义,以引导更精确的空间检测;HRNet 和 Auto-Deeplab 以更复杂的方式加强 cross-scale fusion。我们的工作部分受到GoogLeNet 的启发,GoogleNet 在一个 operation unit 而非 distant neural blocks 中捕获并融合多尺度信息。
我们寻求一种新的卷积算子来有效实现 non-local 感受野并融合多尺度信息。我们工作的关键工具是 频谱变换理论(spectral transform theory),本文选择傅里叶变换。根据 [An introduction to harmonic analysis] 的傅里叶理论中的谱卷积定理,更新谱域中的单个值会全局影响所有原始数据,这为设计具有 non-local 感受野的高效神经架构提供了线索。具体而言,我们设计了一组具有不同感受野的 operations,其中non-local 操作通过傅里叶变换完成。 这些 operations 应用于不相交的特征通道子集。跨尺度更新的特征图最终被聚合为输出。
据我们所知,FFC是第一个在单个单元中探索 local 和 non-local 感受野有效结合的工作。FFC即插即用,无需额外花费,可轻松取代主流CNNs中的普通卷积。相比之下,现有的 non-local 操作由于计算成本高昂,只能稀疏地插入到网络 pipeline 中。FFC 与普通卷积的 FLOPs 和参数量相当,但传递了更丰富的信息。 实验中,我们将FFC应用于各种CV任务中,包括ImageNet上的图像识别、Kinetics数据集上的视频动作识别和Microsoft COCO数据上的人体关键点检测,实验结果显著超越先前的模型。我们坚信,FFC可以进入到统一的局部感受野独占鳌头的神经网络设计领域。
2 Related Work
Non-local neural networks. 有效感受野理论揭示了卷积倾向于收缩到中央区域,质疑了大卷积核的必要性,此外,小核卷积能够降低过拟合的风险,在神经网络中很受欢迎。最近,研究人员逐渐意识到,在一个层中连接两个任意距离的神经元对上下文敏感任务至关重要,例如在时空视频 tube 中对动作类型进行分类,或人体关键点精确位置的联合推断,non-local network 解决了此问题,但其只能稀疏的插在 network pipeline 中,如何密集使用仍是一个尚未探索的研究问题。
Cross-scale fusion. 在CNN中,人们普遍认为,从网络不同位置提取的特征是高度互补的,提供low-level(边缘、斑点等)、mid-level(形状)或 high-level语义抽象。cross-scale 特征融合被广泛认可,例如,FCN [Fully convolutional networks for semantic segmentation] 直接连接不同 scale 的特征图,生成更精确的图像分割。视觉目标检测任务需要精确定位和准确预测对象类别,为此,FPN 以top-down 的方式传播特征,无缝连接了较低层的高空间分辨率和较高层的语义辨别能力,HRNet 在保持不同空间分辨率的多个网络分支间进行跨尺度融合。
Spectral neural networks. 近年来,频谱神经网络的研究热情日益高涨。先前仅用于加速卷积的谱域也为构建深度网络提供了强大的 building block,例如,[Spectral representations for convolutional neural networks] 提出通过截断频域中的表示来执行降维的 spectral pooling。[Joint sub-bands learning with clique structures for wavelet domain super-resolution] 利用基于 wavelet 的表示来恢复高分辨率图像。[Fast non-local neural networks with spectral residual learning] 提出了成对的空间频谱变换,并在频谱域中设计了许多新的层。我们的工作通过设计一个同时使用空间和频谱信息实现混合感受野的 operation unit 来推进上述研究。
3 Fast Fourier Convolution (FFC)
3.1 Architectural Design
图1所示为FFC架构,FFC由两条相互连接的 path 组成:① spatial(local)path:在部分输入特征通道上进行普通卷积;② spectral (global) path:在频谱域中运行。每条 path 都可以捕获具有不同感受野的互补信息,这些 path 间的信息交换在内部进行。
X
∈
R
H
×
W
×
C
X∈R^{H×W ×C}
X∈RH×W×C 是FFC的输入特征图,在FFC入口处,先沿特征通道维度划分 X :
X
=
{
X
l
,
X
g
}
X=\{X^l, X^g\}
X={Xl,Xg},局部部分
X
l
∈
R
H
×
W
×
(
1
−
α
i
n
)
C
X^l∈R^{H×W ×(1−α_{in})C}
Xl∈RH×W×(1−αin)C 期望从局部邻域中学习, 全局部分
X
g
∈
R
H
×
W
×
α
i
n
C
X^g∈R^{H×W ×α_{in}C}
Xg∈RH×W×αinC 用于捕获 long-range context。αin∈[0, 1]表示给全局部分分配特征通道的百分比。为简化网络,假设输入输出size相等。输出tensor:
Y
∈
R
H
×
W
×
C
Y∈R^{H×W×C}
Y∈RH×W×C ,同样
Y
=
{
Y
l
,
Y
g
}
Y=\{Y^l, Y^g\}
Y={Yl,Yg} 是 local-global split,输出张量的全局部分比率由超参 αout∈ [0,1] 控制。FFC内的更新过程可通过以下公式描述:
Y
l
→
l
Y^{l→l}
Yl→l 捕获小尺度信息,采用规则卷积,
Y
g
→
l
,
Y
l
→
g
Y^{g→l}, Y^{l→g}
Yg→l,Yl→g 也使用规则卷积来实现inter-path transition 以充分利用多尺度感受野。复杂性主要源于
Y
g
→
g
Yg→g
Yg→g 的计算,fg 作为 spectral transformer。
3.2 Implementation Details
Spectral transformer. 图1中 global path 的目标是以有效方式将卷积的感受野扩大到输入特征图分辨率,为此,我们采用了离散傅里叶变换(DFT),使用了Cooley-Tukey算法的加速版本。图1描述了Spectral transformer:受 ResNet 中 bottleneck block 的启发,为了降低计算成本,在开始时使用1×1卷积将通道数减半,最后再采用一个1×1卷积恢复通道数,如图所示,在这两个1×1卷积之间有一个具有 global 感受野的傅里叶单元 (Fourier Unit: FU)、一个设计用于捕获 semi-global 信息并操作于1/4特征信道的局部傅里叶单元(Local Fourier Unit: LFU)以及一个残差连接。
Fourier Unit (FU). FU的目的是先将原始空间特征转换为某个谱域,对谱数据进行有效的全局更新,最后将数据转换回空间格式。由于傅里叶变换处理复数(我们把形如z=a+bi(a、b均为实数)的数称为复数。其中,a称为实部,b称为虚部,i称为虚数单位。),因此必须确保FU的输入/输出都是实数从而能与其他神经模块兼容。当对一些实信号(物理可实现的信号常常是时间t(或k)的实函数(或序列),其在各时刻的函数(或序列)值为实数,这样的信号称为实信号。)应用2-D快速傅里叶变换(FFT)时,会生成完全共轭对称(当一个函数f其实部为偶函数,虚部为奇函数时,此函数就为共轭对称函数,即f(x)的共轭等于f(-x)。)的埃尔米特矩阵(n阶复方阵A的对称单元互为共轭,即A的共轭转置矩阵等于它本身,则A是埃尔米特矩阵(Hermitian Matrix)),关键对埃尔米特矩阵应用 Inverse 2-D FFT(逆FFT) 运算会产生一个只有实元素的矩阵。 上述特性确保傅里叶卷积与其他神经层的兼容性。
图2所示为 FU 的伪代码。当给 FU 喂一个实tensor时,其结果是共轭对称的,因此,在不丢失有用信息的情况下,保留一半结果,并通过使用共轭对称性来恢复另一半。为便于计算,将虚部 append 到实部,形成特征张量的额外维度,本质上,所得张量被视为全实数。在我们的FU实现中,使用 spectral 1x1 convolution,batch normalization 和 ReLU。最终,通过沿辅助维度将结果 split 成实部和虚部,将结果转换回复数。Inverse 2-D FFT操作创建一个具有所有实数的输出张量(即图2中的变量z)。
Local Fourier Unit (LFU). FU操纵整幅图像,为捕获并传播 semi-local 信息(如输入特征图左上角的辨别纹理模式),我们进一步设计了LFU,其神经结构如图3所示,与FU的关键区别在于额外的split-and-concatenate 步骤,它将两个空间维度减半,并 render 四个较小的特征图,然后将标准FU应用于堆叠的特征图。受TSM中 temporal shift 的启发,对结果进行 spatial shift 和复制,以完全恢复原始分辨率和通道。与FU相比,LFU增加了通道,因此需要更高的计算复杂性。LFU的效果因具体任务而异。
Compatibility with vanilla convolutions 与普通卷积的兼容性. 指定kernel size, stride, channel grouping等,可以充分定义一个普通卷积。因为
f
l
,
f
g
→
l
,
f
l
→
g
f_l, f_{g→l}, f_{l→g}
fl,fg→l,fl→g 都依赖常规卷积,因此它们自然而然地继承了常规卷积地性质。 对于 spectral transformer fg,主要考虑两个方面:
① 由于谱域中的任何 operations 都具有全局感受野,所以 spectral transformer 不需要大核,因此,它内部的kernel size 始终固定为1。。
② 其次,当模拟普通卷积地下采样操作(即 convolutional stride > 1)时,受 OctConv 启发,在图1进行 channel-reducing 之前使用平均池,能基本近似下采样。
如前所述,FU中复数的处理确保了输入/输出都是实数,因此,FFC完全可微,无需额外修改就可以插入到大多数规则卷积神经网络中。
不同神经层地参数αin、αout可以变化,并控制semi-global 和 global 分支的即时贡献。最浅层主要利用 low-level 局部模式,因此设 αin=0;最顶层高度要求上下文推理,因此 αout=0,αin=1(注意,αout=0 时,FFC归结为普通卷积)。在中间神经层中,保持 αIn=αout=0.5。
Extension to spatio-temporal video data 扩展到时空视频数据. 通过将高维核(即t×h×w)应用于FFC中的所有卷积层,可以将FFC扩展到高维。3D-FFC的基石仍然是应用于每个单独特征通道的2D傅里叶变换。
3.3 Complexity analysis
表1为FFC和普通卷积的复杂性比较。FFT / inverse FFT 无参数,因此其复杂性被省略,且与其他计算成本(例如,FU中的O(CHW log(HW ))相比,它们的时间复杂性可以忽略不计。如图所示,FFC与普通卷积的成本相当。关键的是,当需要大核卷积时,FFC就体现了它的优势,因为 fg 仍可以使用1×1 kernel 学习全局感受野。
4 Experiments
我们在三个视觉任务上评估FFC:图像分类、视频动作分类和人体关键点检测。ImageNet 上地图像分类主要研究使用FFC替换CNN中的普通卷积,证明其在不同网络架构中的通用性。第二个动力学视频实验是对高维数据的研究。最后一项任务需要精确预测人体关节的空间位置。该实验旨在证明FFC可以在 spatial specificity 和 global context 间取得良好的平衡。
4.1 Evaluation Protocols
略
4.2 Experiments on ImageNet
Ablation studies on ratios αin, αout. 中间层设置αin=αout=α。比率α从0到1变化,以探索基于ResNet-50 backbone的 local 和 global path 间的最佳比率。表2得出两个观察结果:① 首先,global path 仅需很少的 GFLOPs 或 参数就能显著改进模型性能;② 性能对α不敏感,大α意味着更多的全局运算和更高的复杂性,α=0.5时精度最佳,考虑到性能和复杂性之间的trade-off,剩余的实验中设置α=0.25。
Impact of cross-scale fusion. FU和LFU 操作的 scale 不同。表3的消融实验结果表明 LFU能提升FU,但精度提升的小,且增加了适度的额外成本。
此外,在ImageNet上,使用相同的参数(例如,α=0.25),具有完整 cross-scale fusion 的FFC实现了77.6%的顶级精度,去除 global-to-local fusion 或 local-to-global fusion时,准确率分别降低到76.6%和76.2%。去除图1中的
f
l
→
g
和
f
g
→
l
f_{l→g}和f_{g→l}
fl→g和fg→l 仅达75.6%精度,验证了inter-path transitions的作用。
Plug-and-play with more CNNs. 使用FFC替代sota网络中的卷积,以验证其通用性。结果如表4所示,可以看出FFC能给不同的网络带来提升,即使是ResNeXt这样的强大网络。FFC-ResNet-50比ResNet-101高0.4%的准确度,且参数量仅为ResNet-101的60%,表明 FFC 带来的 mixed, non-local 感受野能显著降低达到高精度所需的深度。此外,FFC对较深的网络也有效(ResNet-101:+1.4%,ResNet-152:+0.6%),尽管这些网络通过堆叠许多卷积层实现了较大的感受野,这表明FFC与传统卷积互补。
4.3 Experiments of Video Classification
4.4 Experiments of Human Keypoint Detection on COCO
相比于分类任务,检测人体关节需要定位精确的特征语义,需要更精细的预测,因此,人体关键点检测是一个测试 mixing local / non-local感受野的很好的实验。
表6为模型的mAP结果。从表中可以看出,深层次网络由于感受野饱和,抵消了FFC的优势,同样也说明 ResNet-50上的改善是FFC带来的。大空间分辨率的输入图像可能会复杂化标准卷积获取大感受野,插入FFC后的改善更显著。相比于最新的SRL-FFT,FFC可以充分利用局部和全局信息,性能更佳。FFC可以与更深的模型性能相当,例如,在256×192输入大小下,FFC-ResNet-101的性能优于SRL-FFT-ResNet-152。
5 Conclusion
本文提出了一个新的卷积操作:FFC,利用傅里叶谱理论在深度模型中实现 non-local 感受野。利用FFC设计了一个能够实现cross-scale fusion的架构。三个CV任务上的综合实验性能表明了FFC的有效性。我们坚信,FFC为设计 non-local, scale-fused 神经网络开辟了一条新的研究路径。
6 Broader Impact
从最初的LeNet发展到最近的Resnet、DenseNet等,现代神经网络已经发展了几十年。神经网络模型的部署促进了工业界的发展,尤其对于面向视觉数据的产品。尽管如此,神经网络架构设计中的几个关键概念(如感受野)仍没有得到充分探索。本项工作提出了一种通用技术FFC,在卷积单元中引入并融合多尺度感受野,能够捕获更丰富的上下文信息,能够促进上下文敏感的CV任务。
此外,FFC从谱角度激发研究者对神经网络的反思,并促进开发更多高效准确的backbone。我们认为,FFC对工业界和学术界(尤其是CV和NLP)都有重大影响。