Skip to main content
QUICK REVIEW

[论文解读] Low-Precision Batch-Normalized Activations

Benjamin Graham|arXiv (Cornell University)|Feb 27, 2017
Model Reduction and Neural Networks参考文献 21被引用 11
一句话总结

本论文提出对深度神经网络中的批量归一化激活值进行量化,以降低内存和计算成本,采用低精度定点算术(2–8位)在批量归一化之后、仿射变换之前进行处理。该方法在结合混合精度策略时,能实现显著的内存和FLOP减少,且精度损失极小,尤其适用于ResNets和DenseNets等现代架构。

ABSTRACT

Artificial neural networks can be trained with relatively low-precision floating-point and fixed-point arithmetic, using between one and 16 bits. Previous works have focused on relatively wide-but-shallow, feed-forward networks. We introduce a quantization scheme that is compatible with training very deep neural networks. Quantizing the network activations in the middle of each batch-normalization module can greatly reduce the amount of memory and computational power needed, with little loss in accuracy.

研究动机与目标

  • 应对训练极深神经网络带来的日益增长的内存和计算需求,尤其是在3D和大规模模型中。
  • 通过在网络中的关键位置——批量归一化之后、仿射变换之前——对激活值进行量化,减少训练和推理阶段的内存占用和计算成本。
  • 在不牺牲模型精度的前提下,实现在深度网络中高效使用低精度算术(2–8位)。
  • 探索混合精度策略的可行性,即在深层使用更少的位数,而在浅层使用更多的位数,以平衡精度与效率。
  • 证明对批量归一化激活值进行量化与现代架构(如ResNets和DenseNets)兼容,即使在存在残差连接和高深度结构的情况下也适用。

提出的方法

  • 将批量归一化层的输出(即归一化后的激活值)量化为低精度定点格式(2–8位),在仿射变换之前立即执行。
  • 在每个批量归一化模块的中点对激活值进行量化,此时激活值已完成归一化,准备进入激活函数。
  • 采用一种将浮点数值映射到离散取值点的量化方案,例如8位量化时使用{±2^{k/2}},以保持动态范围并减少量化误差。
  • 在反向传播过程中保留全精度梯度,仅对仿射层之前的激活值进行量化,从而最小化误差放大。
  • 通过将Affine-ReLU-Convolution操作融合为单一内核来实现该方法,以减少内存读取次数,并支持高效的低精度计算。
  • 优化内存布局(如height × width × batch × features),以提升读取量化激活值时的缓存效率。

实验结果

研究问题

  • RQ1对批量归一化激活值进行低精度量化,是否能显著降低深度网络的内存和计算需求,同时保持精度损失极小?
  • RQ2与量化权重或梯度相比,对批量归一化后的激活值进行量化,在模型精度和效率方面有何影响?
  • RQ3在ResNets和DenseNets等深度网络中,对批量归一化激活值进行量化的最优位宽(如2–8位)是什么?
  • RQ4采用混合精度策略(深层使用较少位数,浅层使用更多位数)是否能改善精度与效率之间的权衡?
  • RQ5所提出的方法是否与残差连接和高深度架构(如DenseNets)兼容,尤其是在激活值内存占用极高的情况下?

主要发现

  • 将DenseNet(N=12)的批量归一化激活值量化为8位定点表示时,CIFAR-10测试误差仅从5.45%增加到5.64%,增幅为0.19%。
  • 对于更深的DenseNets(N=32),当梯度被量化为8位时,测试误差的增加也微乎其微,仅从4.29%上升至4.44%。
  • 该方法可使大多数乘法运算被整数加法替代,显著降低计算成本。
  • 在训练和推理阶段,内存使用量均大幅减少,尤其在3D视频网络和大语言模型等内存受限场景中优势明显。
  • 网络的前几层对量化更为敏感,表明采用混合精度策略(如早期层使用5位,深层使用3–4位)可进一步提升精度。
  • 该方法与现代深度架构(如ResNets和DenseNets)兼容,通过操作融合和内存访问模式优化,可实现高效部署。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。