SFC算法:低精度下的精确快速卷积新突破

SFC: Achieve Accurate Fast Convolution under Low-precision Arithmetic

摘要

本文介绍了一种名为SFC(Symbolic Fourier Convolution)的新型快速卷积算法,该算法通过扩展离散傅里叶变换(DFT)并结合符号计算,实现了在低精度算术下进行精确的快速卷积。SFC算法通过避免对无理数的直接计算和减少对精度的要求,提高了量化卷积的效率。此外,通过引入修正项,将傅里叶方法的无效循环卷积输出转换为有效输出,进一步提高了卷积效率。实验结果表明,SFC算法在保持精度的同时,能够显著提高量化模型的计算效率,超越了单独的量化方法和现有的快速卷积量化工作。

原理

SFC算法的核心在于利用符号计算来实现离散傅里叶变换(DFT),其中仅涉及加法操作,避免了无理数的计算和低精度表示下的舍入误差。通过选择特定的DFT点数,可以最小化或避免无理值的引入。此外,SFC算法通过引入修正项,充分利用了傅里叶方法生成的循环卷积输出,将其转换为有效的线性卷积输出,从而提高了计算效率。这种改进使得SFC算法在低精度算术下能够提供高数值精度,同时减少了乘法操作的数量。

流程

SFC算法的工作流程包括三个主要阶段:输入和滤波器的变换、逐元素乘法以及输出变换。具体来说,输入数据和卷积核首先通过符号傅里叶变换(SFT)进行变换,然后在变换域中进行逐元素乘法,最后通过逆变换生成输出。SFC算法通过引入修正项,将无效的循环卷积输出转换为有效的线性卷积输出。例如,对于N=6和R=3的情况,通过引入修正项,可以在增加一个乘加操作的情况下,获得一个额外的正确结果,从而更有效地利用傅里叶卷积输出。

应用

SFC算法在图像分类等任务中展现出显著的计算效率提升和模型精度保持能力。该算法不仅适用于现有的深度学习模型,还可以扩展到具有大核尺寸的卷积神经网络中。通过迭代卷积方法,SFC算法能够高效处理大尺寸卷积核,进一步扩大了其应用范围。此外,SFC算法的符号计算特性使其在硬件加速器设计中具有潜在优势,特别是在FPGA等可编程逻辑器件上的实现。