当前位置:   article > 正文

模型量化论文阅读#1----综述:A Survey of Quantization Methods for Efficient Neural Network Inference

a survey of quantization methods for efficient neural network inference

1. 量化的基本概念

A. 问题设置和符号表

假设网络有L层,其每层的参数表示为: { W 1 , W 2 , … , W L } \left\{W_{1}, W_{2}, \ldots, W_{L}\right\} { W1,W2,,WL},用 θ \theta θ表示所有参数的集合,以监督学习问题为例,其目标函数为:
L ( θ ) = 1 N ∑ i = 1 N l ( x i , y i ; θ ) ( 1 ) \mathcal{L}(\theta)=\frac{1}{N} \sum_{i=1}^{N} l\left(x_{i}, y_{i} ; \theta\right) (1) L(θ)=N1i=1Nl(xi,yi;θ)1
假设 θ \theta θ是训练好的浮点精度的参数,那么,量化要实现的是:将参数 θ \theta θ以及中间激活值的精度降低到低精度,同时对模型的泛化能力/精度影响最小。

量化最重要的一步是量化函数的定义,即将权重值和激活值映射为有限数值的函数。
根据量化函数的不同,可以将量化分为:对称量化、非对称量化;均匀量化、非均匀量化。

B. 均匀量化与非均匀量化

量化函数为:
Q ( r ) = Int ⁡ ( r / S ) − Z ( 2 ) Q(r)=\operatorname{Int}(r / S)-Z (2) Q(r)=Int(r/S)Z2
Q是量化算子,r是实值输入(激活或权重),S是实值缩放因子 (论文中常见的说法是steps),Z是整数零点。 此外,Int函数通过四舍五入操作(例如四舍五入和截断)将一个实值映射为一个整数值。实质上,这个函数是一个从实值r到一些整数值的映射。这种量化方法也被称为均匀量化,因为产生的量化值(论文中常见的说法是 levels)是均匀间隔的。
经过量化函数之后,还有一个步骤称为 去量化 (dequantization),从量化值Q®中恢复实值r:
r ~ = S ( Q ( r ) + Z ) ( 3 ) \tilde{r}=S(Q(r)+Z) (3) r

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/376421?site
推荐阅读
相关标签
  

闽ICP备14008679号