APoT ADDITIVE POWERS-OF-TWO QUANTIZATION: AN EFFICIENT NON-UNIFORM DISCRETIZATION FOR NEURAL NETWORK

论文链接

摘要

我们提出了可加性2的N次幂(APoT)量化,这是一种有效的非均匀量化方案,用于神经网络中权重和激活的钟形和长尾分布。将所有量化水平约束为2的幂之和,具有较高的计算效率,与权值分布匹配良好。应用一个简单的裁剪函数重新参数化,生成一个定义更好的梯度来学习裁剪阈值。此外,还提出了将权值归一化的方法,以细化权值的分布,使训练更加稳定和一致。实验结果表明,我们提出的方法优于最先进的方法,甚至与全精度模型竞争,证明了我们提出的APoT量化的有效性。例如,我们在ImageNet上的4位量化ResNet-50在没有附加功能的情况下达到了76.6%的前1精度;同时,与统一量化的模型相比,我们的模型降低了22%的计算成本。

1.引言

如何设计量化水平,同时考虑计算效率和权重的分布?大多数现有的量化方法(Caietal.,gan.,2017;Gong等人,2019)使用统一量化,尽管非统一量化通常可以实现更好的量化性能。原因是针对统一量化级别的投影对硬件更加友好(Zhouetal.,2016)。然而,实证研究(Hanetal.,2015)表明,DNN层中的权重遵循钟形和长尾分布,而不是均匀分布(如右图所示)。换句话说,相当比例的权重集中在平均值(峰值面积)周围;还有一些权重具有相对较高的幅度,超出了量化范围(称为异常值)。这种分布也存在于激活过程中(Miyashitaetal.,2016)。第二个矛盾是:考虑到权重的钟形分布,我们可以很好地为均值分配更高的分辨率(即更小的量化区间);然而,这种非均匀的量化水平会引入较高的计算开销。2的次幂量化水平(Miyashita等人,2016;Zhou等人,2017),因为其通过硬件上的移位操作实现的廉价乘法,以及在平均值附近的超高分辨率。然而,当位宽增加时,普通的两次幂的量化方法只增加了均值附近的分辨率,而完全忽略了其他区域。因此,它在均值附近的一个小范围内分配了异常的量化水平。为此,我们提出了可加性二的次幂(APoT)量化来解决这两个矛盾,我们的贡献可以列出如下:

1.我们介绍了对dnn的权值和激活的APoT量化方案。APoT是一种非均匀量化方案,其量化水平是几个PoT项的和,能够很好地适应权值的钟形分布。在一般硬件和特定硬件上,与APoT量化相比,APoT量化具有近似2×的乘法速度。
2.我们提出了一个重参数化裁剪函数(RCF),它可以计算一个更精确的剪切阈值梯度,从而促进剪切阈值的优化。我们还引入了神经网络量化的权值归一化。正向传递中的归一化权值在剪切和投影方面更加稳定和一致。
3.实验结果表明,该方法的性能优于最先进的方法,甚至具有全精度实现的竞争力,具有更高的计算效率。具体来说,我们在ImageNet上的4位量化ResNet-50实现了76.6%的Top-1和93.1%的Top-5精度。与均匀量化相比,该方法可以降低22%的计算成本,证明了该算法的硬件友好性。

2.方法

2.2. 2的次幂加法

为了解决非均匀分辨率和硬件效率之间的矛盾,二次幂(PoT)量化(Miyashita等人,2016;Zhou等人,2017)通过将量化水平约束为二次幂或零,即,
在这里插入图片描述
显然,作为一种非均匀量化器,PoT由于其指数特性,对权值更大的值范围具有更高的分辨率。此外,一个2x和另一个操作数r之间的乘法可以通过位移来实现,而不是庞大的数字乘数,即,在这里插入图片描述
然而,我们发现PoT量化并没有从更多的比特中获益。假设α为1,如式(3)所示,当我们将位宽从b增加到b+1时,间隔将被分割成2b−1−1子间隔,而所有其他间隔保持不变。换句话说,通过增加位宽,只有[−2−2(b−1)+1,2−2(b−1)+1的分辨率才会增加。我们将这种现象称为PoT量化的刚性分辨率。以Qp(1,5)为例,两个最小的阳性水平分别是2−15和2−14,其粒度过细。相比之下,两个最大的水平是2−1和20,它们的间隔大到足以在[2−1,20]之间产生高投影误差,例如,0.75。刚性分辨率如图2(b).所示当我们从3位改变到4位时,所有新的量化级别都集中在0附近,因此不能有效地提高模型的表达性。
在这里插入图片描述
为了解决刚性分辨率问题,我们提出了2次幂累加的(APoT)量化。不失一般性,在本节中,为了简单起见,我们只考虑无符号数2。在APoT量化中,每个级都是n个PoT项的和,如下图所示,在这里插入图片描述
其中γ是一个尺度系数,以确保Qa中的最大级别是 α。k被称为基位宽,即每个加项的位宽,n是加项的个数。当位宽b和基位宽k时,n可以用n=b/k计算。总共有2kn的=2b等级。APoT量化中的可加性项的数量可以随着位宽b的增加而增加,这为非均匀能级提供了更高的分辨率。
我们以b=4和k=2为例来说明APoT如何解决刚性分辨率问题。对于这个例子,我们有p0∈{0,20,2−2,2−4},p1∈{0,2−1,2−3,2−5},γ=2α/3,和Qa(α,kn)={γ×(p0+p1)},用于p0和p1的所有(2b=16)组合。首先,我们可以看到Qa(1,4)中最小的正量化水平是2−4/3。与原始的PoT水平相比,APoT为中心区域谨慎地分配量化水平。其次,APoT在20到2−1之间产生3个新的量化水平,以适当地提高分辨率。在图2中,第二行比较了使用4位作为范围[0,1]的3种量化方法。APoT量化具有合理的量化水平分布,在峰值区域(接近0),比普通的PoT量化(接近1)有更高的分辨率。

与其他量化方案的关系

一方面,均匀量化中使用的定点数表示是APoT的一种特情况。当方程(5)中的k=1时,量化水平是b PoT项的和或0。在定点表示中,每个位表示附加项的一个特定选择。另一方面,当k=b时,只有一个PoT项,Qa(α,b)变成Qp(α,b),即PoT量化。我们可以得出结论,当k减小时,APoT水平被分解为更多的PoT项,并且水平的分布变得更加均匀。我们的实验使用了k=2,这是在均匀情况(k=1)和单纯的PoT情况(k=b)之间的中间选择。

计算

定点数的乘法可以通过移动乘数(即激活乘数)和加部分乘积来实现。然后在公式(5)中表示乘数(权重)中相加的PoT项的数量,并控制计算速度。由于n=b/k,减少b或增加k都可以加速乘法。与均匀量化(k=1)相比,我们的方法(k=2)在乘法方面大约快2×。对于全精度α,它是一层中所有权值的系数,在乘加运算完成后只能乘一次。图3显示了硬件加速器,权重缓冲区将k位作为PoT项,并移位添加激活。

泛化到2n+1位

当k=2时,APoT量化只能利用2n位宽度进行量化。为了处理2n个+1位量化,我们选择添加n个+1个PoT项,其中之一仅包含2个级别。该公式是由

2.3重新参数化的剪切功能

除了投影运算外,剪切运算[W,α]对量化也很重要。α是一个决定量化层中权值范围的阈值。调整剪切阈值α是一个关键的挑战,因为权重的长尾分布。特别是,如果α太大(例如,W的最大绝对值),Q(α,b)会有一个很宽的范围,那么由于中心区域的权重分辨率不足而导致较大的误差;如果α太小,更多的异常值将被粗略地剪掉。考虑到权重的分布可能是复杂的,并且不同的层和训练步骤也不同,因此对所有层的静态剪切阈值α都不是最优的。
为了在训练过程中通过SGD联合优化剪切阈值α和权值,Choi等人(2018b)应用直通式估计器(Ste)(Bengio等人,2013)对投影操作进行反向传播。根据Ste,其中α范围外的权重不能对梯度有贡献,从而导致不准确的梯度近似。为了为剪切阈值提供一个细化的梯度,我们设计了一个重参数化的剪切函数(RCF)为在这里插入图片描述
RCF没有直接将它们剪切到[−α,α],而是输出一个恒定的剪切范围,并在投影后重新缩放权值,这在数学上相当于正向时的方程(1)。在反向传播中,采用Ste进行投影操作,计算α的梯度
在这里插入图片描述
梯度的详细推导见附录a。与正常的剪切函数相比,RCF为优化提供了更精确的梯度信号,因为权重(|W|≤α)和(|W|>α)内的范围都可以导致剪切阈值的梯度。特别是,异常值负责剪切,而[−α,α]中的权值负责投影。因此,α的更新同时考虑了剪切和投影,并试图在它们之间找到平衡。在实验中,我们观察到,当减少位宽以保证足够的分辨率时,剪切阈值将普遍减小,这进一步验证了梯度在RCF中的有效性。

2.4重量归一化

在实践中,我们发现学习权重的α是相当困难的,因为权重的分布非常陡峭,并且在训练过程中变化。因此,联合训练剪切阈值和权值参数难以收敛。受批处理归一化(BN)(IOffe&Szegedy,2015)在激活量化中的关键作用(Caietal.,2017)的启发,我们提出了权值归一化(WN)来细化具有零均值和单位方差的权值分布,在这里插入图片描述
其中 ε ε ε是数值稳定性的一个小数字(通常为10−5),I表示一层中权重的数量。请注意,权值的量化是在这个归一化之后立即应用的。
归一化对于为剪切和投影函数提供相对一致和稳定的输入分布非常重要,以便在训练期间对不同层和迭代上的α进行更平滑的优化。此外,使权值均值为零也可以有利于量化水平的对称设计。
在这里,我们在CIFAR10上进行了一个ResNet-20的案例研究,以说明权重的归一化如何帮助量化。对于ResNet-18中的某一层(在某个训练步骤中),我们首先确定权值,让α从0转到最大|W|,绘制裁剪比的曲线(即裁剪权值的比例)。如图4a所示,经过量化后,剪切率的变化更加平稳。因此,α的优化将明显更滑。此外,归一化也使权重的分布在训练迭代中更加一致。我们固定了α的值,并在图4b中可视化了训练迭代中的剪切比率。归一化后,相同的α会产生几乎相同的剪切率,这提高了α优化目标的一致性。更多的实验分析证明了权重归一化的有效性可以在附录B中找到。
在这里插入图片描述

2.5训练和部署

在这里插入图片描述

3.相关工作

非均匀量化

提出了几种处理权值非均匀分布的方法。LQ-Nets(Zhangetal.,2018)基于量化误差最小化(QEM)算法学习量化水平。蒸馏法(Polinoetal.,2018)直接优化量化水平,以最小化反映其教师网络行为的任务损失。这些方法使用有限的浮点数来量化权值(和激活),与线性量化相比,它带来了额外的计算开销。对数量化器(Zhouetal.,2017;宫城田等人,2016)利用2次幂值,通过移位操作加速计算;然而,它们存在刚性分辨率问题。

联合培训

许多工作已经探索了同时优化量化参数(如α)和权重参数。Zhu等人(2016)分别学习正尺度系数和负标度系数。LQ-Nets联合训练这些参数,以最小化量化误差。QIL(Jung等人,2019年)引入了一个可学习的转换器来改变量化间隔,并根据任务损失来优化它们。PACT(Choietal.,2018b)参数化了激活过程中的剪切阈值,并通过梯度下降对其进行优化。然而,在PACT中,α的梯度并不准确,它只包括了异常值的贡献,而忽略了其他权重的贡献。

权重规一化

以往关于权重归一化的工作主要集中在解决批处理规范的局限性上(Ioffe&Szegedy,2015)。萨利曼斯和Kingma(2016);Hoffer等人(2018)将方向与幅度解耦,以加速训练程序。权重标准化(Qiaoetal.,2019)将正向传递期间的权重标准化为零均值和单位方差。然而,研究神经网络量化的权值归一化的文献有限。(Zhuetal.,2016)使用特征尺度,通过除以最大绝对值来对权重进行归一化。基于权值归一化的量化(Cai&Li,2019)也使用了这种特征的缩放,并推导出梯度来消除权值张量中的异常值。

4实验

4.1 IMAGENET结果

在这里插入图片描述

4.2 CIFAR10结果

在这里插入图片描述

4.3消融研究

在这里插入图片描述
该算法由三种技术组成:拟合钟形分布的算法量化水平,RCF学习裁剪阈值,RCF避免训练过程中权重分布的扰动。在本节中,我们将对这三种技术进行消融术研究。我们使用Lloyd算法(Caietal.,2017)比较了APoT量化器、原始PoT量化器、均匀量化器和非均匀量化器来量化权重。我们要么应用RCF来学习最优裁剪范围,要么不剪辑任何权重(即α=max|W|)。权重标准化也被采用或丢弃,以证明这些技术的有效性。
表3总结了使用不同技术的ResNet-18的结果。使用Lloyd的量化器获得了最高的精度,但不规则的非均匀量化权值不能利用定点算法来加速推理时间。APoT量化关注权重的分布,与Lloyd相比,5位精度相同,3位量化精度仅降低0.2%,在任务性能和硬件性能之间有更好的权衡。我们还观察到,普通的PoT量化具有刚性分辨率,并且在5位模型中精度最低。
剪切范围在量化中也很重要,表3中的比较表明,适当的剪切范围有助于提高网络的鲁棒性。特别是当网络被量化到3位时,由于量化间隔的增加,精度会显著下降。应用RCF来学习最佳的剪切范围,最多可提高1.6%的准确率。正如我们前面提到的,权值的归一化对于学习剪切范围很重要,如果应用没有WN的RCF,网络就会发散。关于训练期间体重标准化的更多细节,我们请参考附录B。

5. 总结

在本文中,我们引入了二加幂(APoT)量化算法来量化神经网络的权值和激活,该算法通常呈钟形长尾分布。APoT的每一个量化水平都是一组两项幂的和,与统一量化相比,乘法速度大约提高了2倍。量化水平与现有的量化方案相比,量化水平的分布与权重和激活水平的分布更匹配。此外,我们提出对裁剪函数进行重新参数化,并对权值进行归一化,以得到更稳定、定义更好的梯度,以优化裁剪阈值。与统一量化或PoT量化相比,我们在ImageNet和CIFAR10数据集上达到了最先进的精度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值