[论文解读] Fast Training of Convolutional Networks through FFTs
本文提出了一种基于FFT的算法,通过在傅里叶域中将卷积计算为逐点乘积,并在多个操作间重用变换后的特征图,从而加速卷积神经网络的训练与推理。该方法相较于最先进实现,实现了超过一个数量级的速度提升,尤其在梯度计算和大卷积核情况下表现显著。
Convolutional networks are one of the most widely employed architectures in computer vision and machine learning. In order to leverage their ability to learn complex functions, large amounts of data are required for training. Training a large convolutional network to produce state-of-the-art results can take weeks, even when using modern GPUs. Producing labels using a trained network can also be costly when dealing with web-scale datasets. In this work, we present a simple algorithm which accelerates training and inference by a significant factor, and can yield improvements of over an order of magnitude compared to existing state-of-the-art implementations. This is done by computing convolutions as pointwise products in the Fourier domain while reusing the same transformed feature map many times. The algorithm is implemented on a GPU architecture and addresses a number of related challenges.
研究动机与目标
- 为解决训练大型卷积网络的高计算成本问题,即使在现代GPU上,训练也可能需要数周时间。
- 减少大规模数据集(如网络规模图像标注)的推理时间,其中标签预测计算成本高昂。
- 开发一种通用算法,加速反向传播中所有主要操作:前向传播、梯度计算和权重更新。
- 探索在特征图数量较大时,使用FFT进行深度网络卷积的可行性。
- 通过基于FFT的方法,使计算与卷积核大小无关,从而克服大卷积核卷积的性能瓶颈。
提出的方法
- 该方法利用卷积定理,即空间域中的卷积等价于傅里叶域中的逐点乘积:$ f * g = \mathcal{F}^{-1}(\mathcal{F}(f) \cdot \mathcal{F}(g)) $。
- 在每层中仅计算一次输入特征图和卷积核的傅里叶变换,然后在所有前向、反向和权重更新操作中重用这些变换。
- 所有卷积操作——前向传播、输入梯度和权重梯度——均在频域中重新表述为逐点乘法,避免重复的空间卷积计算。
- 该算法在GPU架构上实现,输入和卷积核大小被填充至下一个2的幂次方,以支持高效的FFT计算。
- 通过将输出裁剪至与标准卷积一致的大小,处理循环卷积的伪影,确保正确性且无需额外开销。
- 该方法与卷积核大小无关,因为卷积核在FFT前被填充至与输入大小一致,使性能独立于卷积核尺寸。
实验结果
研究问题
- RQ1基于FFT的卷积能否显著加速深度卷积神经网络的训练与推理?
- RQ2重用预计算的特征图和卷积核的傅里叶变换,是否能降低反向传播所有操作的计算成本?
- RQ3在不同输入大小、卷积核大小和批量大小下,该FFT方法与最先进GPU优化实现相比性能如何?
- RQ4在直接卷积最昂贵的大卷积核情况下,该方法能否实现显著的速度提升?
- RQ5FFT方法的性能是否与卷积核大小无关?这是否能支持采用更大卷积核的新架构选择?
主要发现
- 与最先进实现相比,基于FFT的方法在最昂贵的操作(accGradParameters)上实现了超过一个数量级的速度提升。
- 对于典型网络配置(7×7卷积核,32×32输入,96个输入特征图和256个输出特征图),FFT方法将单次训练迭代时间从2495 ms(CudaConv)降低至867 ms。
- 在所有测试配置中,该方法均优于自定义Torch7和CudaConv实现,尤其在前向传播和梯度计算中提升最大。
- 对于大卷积核,速度提升尤为显著,因为FFT方法的性能保持恒定,不受卷积核大小影响,原因在于FFT大小固定。
- 该方法对不同输入大小和批量大小均具有鲁棒性,在所有测试设置中均表现出一致的性能提升。
- 该算法的性能与卷积核大小无关,为未来探索更大卷积核提供了无计算惩罚的可能。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。