[论文解读] Binarized Convolutional Neural Networks with Separable Filters for Efficient Hardware Acceleration
该论文提出BCNNw/SF,一种采用可分离滤波器的二值化卷积神经网络,通过奇异值分解(SVD)减少模型大小和计算成本。通过将二值化滤波器分解为秩-1近似,实现了17%的内存减少和FPGA上31.3%的推理加速,且精度损失极小,使移动和嵌入式平台能够实现高效的硬件加速。
State-of-the-art convolutional neural networks are enormously costly in both compute and memory, demanding massively parallel GPUs for execution. Such networks strain the computational capabilities and energy available to embedded and mobile processing platforms, restricting their use in many important applications. In this paper, we push the boundaries of hardware-effective CNN design by proposing BCNN with Separable Filters (BCNNw/SF), which applies Singular Value Decomposition (SVD) on BCNN kernels to further reduce computational and storage complexity. To enable its implementation, we provide a closed form of the gradient over SVD to calculate the exact gradient with respect to every binarized weight in backward propagation. We verify BCNNw/SF on the MNIST, CIFAR-10, and SVHN datasets, and implement an accelerator for CIFAR-10 on FPGA hardware. Our BCNNw/SF accelerator realizes memory savings of 17% and execution time reduction of 31.3% compared to BCNN with only minor accuracy sacrifices.
研究动机与目标
- 解决资源受限的嵌入式和物联网系统中二值化卷积神经网络(BCNNs)的高内存和计算成本问题。
- 在不显著降低精度的前提下,减小BCNNs的模型大小和乘加(MAC)操作数量。
- 通过奇异值分解(SVD)的滤波器分解,实现BCNNs的高效硬件加速。
- 提出一种可微训练方法,支持通过SVD过程的反向传播,用于二值化滤波器。
- 实现并评估基于FPGA的BCNNw/SF加速器,以展示实际性能提升。
提出的方法
- 对二值化2D卷积滤波器应用奇异值分解(SVD),将其近似为两个1D向量的外积。
- 使用秩-1 SVD近似,将每个二值化滤波器分解为两个1D二值向量,将唯一滤波器数量从$2^{d^2}$减少到$2^{2d-1}$。
- 实现一个5位查找表,用于编码32个唯一的$3\times3$可分离二值滤波器,将权重存储从每滤波器9位减少到5位。
- 用两个连续的1D卷积(先垂直后水平)替代2D卷积,将每个输出像素的MAC操作数从9次减少到6次。
- 提出两种训练方法:(1) 扩展的直通估计器(eSTE),利用批量归一化吸收SVD引入的噪声;(2) 基于SVD的梯度,使用闭式梯度反向传播通过二值化滤波器。
- 使用Xilinx SDSoC在C++中实现加速器,目标为ZedBoard FPGA,利用片上RAM存储权重和特征图,并采用XOR-based MAC以提高效率。
实验结果
研究问题
- RQ1基于SVD的可分离滤波器是否能在不牺牲精度的前提下,减少二值化CNN的内存占用和计算复杂度?
- RQ2当滤波器被二值化时,如何实现通过SVD分解的梯度反向传播?
- RQ3所提出的方法是否能在BCNN的硬件加速中实现显著的加速和内存节省?
- RQ4在精度和训练稳定性方面,所提出的两种训练方法(eSTE和基于SVD的梯度)有何差异?
- RQ5BCNNw/SF的FPGA加速器在延迟和资源利用率方面,相较于标准BCNN能实现多大程度的性能超越?
主要发现
- 与标准BCNN相比,BCNNw/SF在FPGA上实现了17.0%的块RAM使用量减少,主要得益于使用5位编码压缩滤波器表示。
- 加速器实现显示,CIFAR-10推理的执行时间减少了31.3%(1.46倍加速),归因于更小的权重存储带来的更少内存访问。
- 由于额外的5位到6位滤波器映射解码逻辑,LUT数量略有增加3.2%,但其他资源(FF、DSP)基本保持不变。
- eSTE方法通过利用批量归一化吸收SVD引入的噪声,实现了更快更简单的训练;而基于SVD的梯度方法则提供了更平滑的学习过程,潜在精度更高。
- 该模型在MNIST、CIFAR-10和SVHN上保持了接近最先进水平的精度,仅出现轻微下降,证实了该方法的有效性。
- FPGA实现表明,BCNNw/SF在低功耗嵌入式平台上具备实时推理的可行性,硬件开销极小,且性能显著提升。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。