基于均方误差的8位深度神经网络量化

2022-05-23 07:24冯鹏程田生伟龚国良
计算机工程与设计 2022年5期
关键词:均方准则权重

冯鹏程,禹 龙,田生伟,耿 俊,龚国良

(1.新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046;2.新疆大学 网络中心, 新疆 乌鲁木齐 830046; 3.新疆大学 软件学院,新疆 乌鲁木齐 830008; 4.新疆大学 软件工程技术重点实验室,新疆 乌鲁木齐 830008; 5.中国科学院半导体研究所 高速电路与神经网络实验室,北京 100083)

0 引 言

网络压缩能够有效减少深度神经网络中的参数量并加快模型推理速度。目前常见的网络压缩方法有网络剪枝、矩阵分解、网络结构设计与搜索、量化。考虑到边缘设备部署的简易性,工业界常用量化作为实际网络部署的网络压缩方法。在量化方法中,低比特定点量化和整数量化更加契合硬件设计,英伟达的TensorRT中详细阐述了低比特量化的流程,提出了8位作为计算资源消耗与模型性能的平衡点,由该方法得到低比特量化模型精度损失在1%~2%左右,然而该方法对激活函数的量化消耗大量的计算资源。本文提出的量化方法致力于对深度神经网络中的所有参数量化,使用QMSE+USP的方法寻找最合适的量化系数并且恢复网络损失的性能。该过程仅需使用一定批次的无标记数据进行前向推理,不涉及网络重训练,最终得到的量化模型与原始的32位浮点网络模型精度损失在0.5%以内。本文的主要贡献如下:

(1)分析了imagenet网络中权重的分布,并且针对该分布提出了一种基于量化均方误差(QMSE)为指标,选取量化系数的量化方案,具体分析了量化操作中四舍五入与截断操作对网络性能的影响。

(2)针对小型网络量化后的性能损失,提出了一种更新统计参数(USP)的方法,在不进行重训练的情况下,实验结果表明,QMSE+USP的方法能够将模型精度损失控制在0.5%以内。

1 相关研究

现有的深度学习中,模型的训练与测试均采用单精度浮点数完成,它们在图像分类、模式识别、目标检测等各领域取得极大成功的同时,伴随着的是越来越深的卷积累积和大量的参数,由此,探索高效模型的研究从未停止。采用低精度表示[1-4]来压缩神经网络模型得到了广泛的研究,一些研究采用三值甚至二值化[5-9]的方式将模型进行极端量化,将模型中的浮点乘加运算转化为加法运算,极大压缩了模型的大小,并且使得网络推理速度大大的提高,因此带来的性能损失也是不可避免的。Jacob等[10]提出了一种仅采用整数计算进行网络推理的量化方法,在可接受的精度损失情况下,完成了对Resnet50、Inception v3、MobileNet v1的8bit量化。对网络进行定点量化[11-15]比较切合实际硬件部署的需求,在取得高精度的同时,优化了模型的推理速度。Lu Q等[16]找到一个在给定的硬件规范下可以实现的最高精度的量化体系结构。Nagel M等[17]利用激活函数的尺度等方差特性来均衡网络中的权重范围。Krishnamoorthi R[18]对常见的深度神经网络进行了8 bit量化,将指数移动平均应用于激活量化,动态计算激活的界限,这需要遍历整个数据集,计算非常昂贵。Meller E等[19]通过因式分解的方法降低模型量化引起的网络性能退化。为了保证模型性能,相关研究进行量化时没有完全量化模型(如第一层与分类层保持浮点),使其难以应用于深度神经网络的加速器芯片部署;另一方面,相关研究需要通过重训练来降低量化后的精度损失,这给算法的芯片化部署与产品开发带来不利影响。本文提出的量化策略,能够有效解决以上问题。

2 量化推理与确定量化系数

2.1 通用量化策略

考虑到硬件适用性,本文采用的量化方案为均匀对称量化。均匀量化指的把输入信号的取值域等间隔分割的量化,对于实数r,其量化值可表示为

(1)

其中,r是要量化的实数值,s代表量化步长(即量化系数),可表示为s=(b-a)/M,M表示量化级数,M=2k,k为量化位宽,量化时应考虑到符号位,实际量化级数M为M-1。 |·| 表示四舍五入, clip(·) 函数表示将变量值裁剪到 [a,b] 区间之内。Z_adj表示量化后0点的表示。对于均匀量化,可分为均匀非对称量化与均匀对称量化,对均匀非对称量化,a=0,b=max|r|,Z_adj=-127, 对均匀对称量化,a=min(r),b=max(r),Z_adj=0。

2.2 前向推理

2.2.1 卷积层量化推理

为了简化表示,本文将矩阵运算特殊化为单个数的乘加运算,对于卷积层可简单表示为式(2)

y=w×x+b

(2)

对其中的权重、输入、偏置均匀量化后,有

(3)

(4)

(5)

其中,w,x,b分别表示原始的浮点值权重、输入和偏置,s表示量化系数,q表示浮点值量化后的整数,z表示量化后的0点, clip(·) 函数与式(1)一致,权重、输入和偏置分别用下标进行区分。卷积神经网络中权重通常采用均值为0的高斯分布或者均匀分布来进行初始化,网络训练结束后的网络权重基本上在0点两端呈对称分布。MobileNet v1中两层网络权重可视化如图1所示。

图1 部分MobileNet v1权重分布

从图1可以看出,训练完成后网络的参数呈现基本对称的分布,因此,本文对网络采用均匀对称量化,对于均匀对称量化,可将z值置零,对偏置的量化系数,可设置为sb=sw×si。 则卷积可表示为

y=swqw×siqi+swsiqb

(6)

qw,qi,qb均为整型,根据文献[10],任意浮点数可表示为[0.5,1)区间的数M乘以2n, 数M如果也采用上述的均匀对称量化,将系数sw×si利用此操作进行转换,则卷积层的浮点数运算可近似转换为整数间的乘法和移位操作。

2.2.2 批量归一化

对于常用的CNN,卷积之后通常接批次归一化层(BN)与激活。针对卷积层的批次归一化操作,可以将BN融合进上一层的卷积中,具体计算公式如下:

批次归一化

(7)

将(7)代入(2)

(8)

分离变量与常量

(9)

通过式(9),将BN层的参数融合进卷积层的参数(权重与偏置)中,即可在网络推理时省略BN的计算。

2.2.3 激活与重量化

对于卷积的结果采用32位存储中间结果,对中间结果y,使用式(1)中的均匀对称量化,有

(10)

其中,y表示中间结果,sy表示重量化系数,该系数由网络通过一定批次的训练数据集,统计其参数分布计算求得,qy表示重量化后的整型值。式(6)中的量化系数 (sw×si) 与重量化的系数 (sy) 可一起处理为整数乘法和移位操作。之后网络经过激活函数,常见的激活函数RELU与RELU6,激活为线性变换,对于线性对称量化无影响。至此,网络卷积层量化完毕。网络的输出传入下一层时,网络的输入无需进行再次量化,可直接进行卷积操作。

2.3 QMSE确定量化系数

由2.1节可知,网络的量化系数由式(1)可得。而根据图1的MobileNet v1权重分布图可以看出,训练完成得到的网络参数大部分按层统计呈现均值在0附近的情况。MobileNet v1中权重幅值差距悬殊,特别是第二层的3×3卷积。Depthwise卷积层与Pointwise卷积层的权重幅值差距较大。权重幅值的大小将会极大影响网络量化参数的选取。特别地,MobileNet v1中Pointwise卷积层的权重比较符合正态分布。为了确定量化系数,常用的有max准则、百分比准则。max准则可表示为

(11)

其中,s表示max准则产生的量化系数, 2p-1表示量化步长,对于8位量化,取值128, max|·| 取该参数分布中的最大值。max准则中的量化系数由数据分布中的最大值决定,当网络参数存在离群值时,由max准则确定的量化系数将存在较大的误差,进而影响网络的性能。百分比准则是按照规定百分比保留的数据,是一种优化的max准则。在一定程度上缓解了网络参数中离群值对于量化参数选取的影响。对于稳定的网络权重系数,可进行统计得到该值。以上方法对于参数分布比较稳定,参数较多情况,可得到较好的效果。

使用max准则将极易受到网络参数离群值的影响,百分比准则如何确定量化参数选取范围受不同的网络的影响。这两种方法确定量化系数时只用到了网络参数的最大值,没有考虑到网络参数中其它的值在量化中产生的误差,使用以上准则选取量化系数能够较好量化分布均匀的参数,而常用的网络参数大部分服从正态分布。为了充分利用量化产生的误差,选取更加合适的量化系数。本文提出了一种使用量化均方误差(QMSE)来衡量量化误差的方法。均方误差可表示为

mse=mean((r-Q)2)

(12)

其中,r表示浮点数,Q为通过式(1)量化得到的整数。 mean(·) 为求均值操作。通过对一定范围内的scale(量化系数)进行搜索,得到一个使原数据分布与量化后数据分布均方误差最小的量化系数。根据式(1)可知,量化操作包含了舍入误差和截断误差,而这两种误差在给定量化位宽(8 bit)的情况下,其量化误差有着完全不同的情况。由此,本文分别分析了量化操作中四舍五入、截断以及两者结合的均方误差关系,如图2~图4所示。

图2 舍入操作产生的均方误差

图3 截断操作产生的均方误

图4 量化系数与量化均方误差的关系

由图2可知,量化系数实际代表了量化的最小精度,当量化系数变大,量化的位宽越大,舍入误差随之增大。从图3可以看出,截断操作带来的误差主要是量化系数过小,导致参数超出8 bit能表示的范围,从而产生较大的截断误差,该操作在量化系数较小时,对均方误差的影响是决定性的。从图4可以看出,引入两种操作后,最终的均方误差图与截断操作产生的误差图相似。因此,根据网络权重和特征图的数据分布可以计算相应的量化值,通过最小化量化值与原数据的均方误差,得到最佳的量化系数。

为了更加具体分析模型性能与量化操作中舍入操作与截断操作的关系,本文引入了一个超参数,来衡量舍入操作与截断操作产生的量化误差对模型性能的影响,即QMSE,公式如下

QMSE=errround+α*errclip

(13)

通过超参数α来控制四舍五入和截断操作产生的误差对量化误差的影响程度,从而更加精确选取量化系数。

图2~图4的实验数据分布为随机初始化的正态分布,且限定范围为[-1,1],量化位宽固定为8 bit,数据幅值与分布情况的改变,也将会影响量化系数的选定,本文的策略主要针对网络权重参数进行量化,由于网络的特征图分布一般比较均匀,使用max系列准则量化效果更佳,在实验部分会验证采用QMSE量化权重,max准则量化特征图具有更好的效果。

2.4 USP恢复网络性能

在网络中添加BN层能有效加快网络收敛,通常在每个卷积层之后,激活函数之前,计算该层特征图的均值和方差,并且进行归一化,同时设置了两个可学习变量λ、β, 保证网络的非线性。训练结束后,批次归一化层中的可学习变量与统计参数(均值和方差)固定,推理时使用确定的参数进行前向传播。文献[17]中提出权重的量化误差可能在相关的输出端引入偏置误差,这会改变下一层的输入分布,导致不可预测的影响。

对于量化后的网络特征图,仍然使用浮点网络中训练时得到的均值和方差进行批次归一化是不合理的。针对这一问题,本文提出更新批次归一化层中的统计参数(均值和方差),即USP方法,通过重新计算量化后网络中批次归一化层中的均值和方差,校正网络各层特征图的分布。与重训练不同的是,该过程仅需要将一定批次(200左右)的无标记数据通过网络的前向计算,不涉及反向传播,无需进行损失函数计算。

针对MobileNet v1此类小网络,由于网络参数量小,使得网络各层的参数分布不均匀,其逐通道卷积每个通道上仅有9个数字,数据分布已经丢失了对称性,对该类网络采用均匀对称量化,量化过程中必将导致网络参数分布改变,网络的性能也将明显下降,由此,本文使用更新统计参数的方法。具体操作如图5所示,使用一组训练集中的数据,将其送入网络前向推理,并且使用指数滑动平均的方法对BN层的均值与方差进行更新。在进行参数更新的时候,需要保证送入的数据集具有多样性,能够尽可能包含大部分类型的种类,这对特征图的量化后性能十分重要。

图5 USP方法流程

3 实验分析

在本节,本文将使用常用的ILSVRC图像分类数据集对一些常用的网络如VGG系列、Resnet系列和轻量级网络MobileNet v1进行量化,并进行相应的评估。其中,ILSVRC图像分类数据集包括120万训练图片和5万验证图片。若无特殊说明,本文对所有网络进行8 bit量化,包括网络的第一层和最后一层以及进行网络推理所需要的所有参数。所有实验结果表示ILSVRC图像分类数据集top1准确率,单位为百分比。

3.1 量化准则实验结果

为了验证本文提出的均方误差准则确定量化系数的有效性,使用max准则与其进行对比实验,并且分别进行逐通道和逐层量化,Fp32表示原始浮点网络的精度。得到的对比实验结果见表1。

表1 max准则与QMSE准则确定量化系数结果对比

实验结果表明,使用max准则与QMSE准则对于Resnet系列的网络进行8 bit量化都能取得很好的效果,使用QMSE确定量化系数更加有效。

为了分析四舍五入与截断操作对模型性能的影响,本文使用Resnet34、Rsenet50和Vgg11进行了实验,该实验限定了逐层量化,使用QMSE准则确定权重量化系数,max准则确定特征图量化系数。实验结果见表2。

表2 四舍五入与截断对模型性能实验结果对比

由表2可知,在α值大于1时,模型性能更好,由此可知,截断操作对模型量化系数的选取重要性更明显。

由表3可知,对网络进行逐通道与逐层量化的结果表明,网络进行逐通道量化会得到较好的结果,原因是网络进行逐通道量化时能够更加契合网络参数的原始分布,相比逐层量化,逐通道量化将会带来额外的参数计算与存储,采用逐层量化性能相比逐层量化差距在0.5%以内,可从硬件资源和模型性能上考虑采用相应的量化方式。

表3 逐通道与逐层量化结果对比

为了验证采用QMSE方法量化权重、max准则量化特征图的有效性,本文对Resnet34网络进行对比实验,实验结果见表4。

表4 混合量化策略有效性结果对比

从表4可以看出,max量化特征图、QMSE量化权重的量化策略取得的效果最好。

3.2 更新统计参数实验结果

对小型网络如MobileNet v1进行量化时,网络性能明显下降,本文针对它验证更新统计参数的有效性,具体方法是对权重和特征图量化后,从训练集中随机挑选一定批次(200 batch左右)的图片,并将其送入网络进行前向推理,更新批次归一化层的统计参数,从而达到校准网络参数分布的目的。表5实验结果表明,对量化后的网络更新统计参数能够有效对网络训练得到的特征进行修复,使网络在进行8 bit整型量化后,能够恢复至FP32条件下同样标准的精度。对MobileNet v1此类小型网络进行逐通道量化时,模型性能低于逐层量化,原因是MobileNet v1中单个通道的参数极少,网络权重参数对称性分布被打破,采用对称量化势必不能取得较好的效果。

3.3 与其它方法的比较

在本节中,将本文提出的QMSE+USP方法与其它研究中的方法进行比较,大部分参考文献中使用的模型有MobileNet v1和Resnet50。使用文献[18]中的方法对MobileNet v1进行逐层量化会导致模型失去分类能力。

表5 更新统计参数结果对比

由表6可知,使用QMSE+USP对MobileNet v1、Resnet50模型量化之后,模型性能优于其它的算法。

表6 与其它研究方法结果对比

4 结束语

本文提出了一种QMSE量化准则来确定量化系数的方法,分析了量化操作中四舍五入与截断操作对网络性能的影响,通过设置合适超参数对量化网络性能进行微调,并且针对小型网络量化性能下降严重的问题,进一步提出了USP,校准网络参数分布,从而减小量化所带来的性能损失。使用QMSE+USP能够将常用的深度神经网络进行8 bit整型量化且达到与Fp32条件下同样标准的性能,且该方法不需要对网络进行重训练。笔者模拟了常用的深度神经网络量化推理的性能,并将网络在推理过程中的浮点数计算全部转换成了整数之间的运算和移位操作,大幅度加快了网络的推理速度,同时节省接近4倍的硬件资源,并且模型的性能下降在0.5%内。

猜你喜欢
均方准则权重
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
IAASB针对较不复杂实体审计新准则文本公开征求意见
构造Daubechies小波的一些注记
权重常思“浮名轻”
Beidou, le système de navigation par satellite compatible et interopérable
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹
内部审计增加组织价值——基于《中国内部审计准则》的修订分析
一类随机微分方程的均方渐近概自守温和解
基于最小均方算法的破片测速信号处理方法