Fast Training of Convolutional Networks through FFTs
Michael Mathieu Courant Institute of Mathematical Sciences New York University、Mikael Henaff Courant Institute of Mathematical Sciences New York University、Yann LeCun Courant Institute of Mathematical Sciences New York University
Abstract
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.
中文速览
卷积神经网络训练和推理速度慢的根本原因在于,每对特征图与卷积核之间都要单独做一次昂贵的空间域卷积。这项工作提出了一种基于快速傅里叶变换(FFT)的加速算法:先把每张特征图和每个卷积核各自变换到频域,再用逐点乘法完成所有配对卷积,同一份频域表示可以反复复用,从而把五项相乘的计算量降为四项相加,大幅减少总操作数。在配置典型现代卷积网络参数的GPU实验中,该方法在前向传播、反向传播和梯度计算三个环节上全面超越CudaConv等当时最优实现,整体速度提升可超过一个数量级。这一结果意味着,在ImageNet量级的大规模训练和网页图片推理等场景中,原本需要数周的计算可以被大幅压缩,对工业级深度学习应用具有直接的实用价值。
原文 arXiv:1312.5851;中英对照 + 大白话阅读 https://aha.fim.ai/paper/1312.5851v5