CN112686384A - 一种自适应比特位宽的神经网络量化方法及其装置 - Google Patents
一种自适应比特位宽的神经网络量化方法及其装置 Download PDFInfo
- Publication number
- CN112686384A CN112686384A CN202011630360.1A CN202011630360A CN112686384A CN 112686384 A CN112686384 A CN 112686384A CN 202011630360 A CN202011630360 A CN 202011630360A CN 112686384 A CN112686384 A CN 112686384A
- Authority
- CN
- China
- Prior art keywords
- quantization
- bit
- neural network
- weight
- weight parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开一种自适应比特位宽的神经网络量化方法及其装置。该方法的步骤为:通过在多比特二值约束下最小化量化期望均方误差获得在不同量化比特数下的量化策略的查找表;在量化训练过程中使用查找表对不同的权重参数进行量化;在前向过程与反向过程后,利用量化权重参数的梯度计算各权重参数关于损失函数的敏感度,并在一定迭代次数后根据累计敏感度来调整各权重参数的量化比特数。本发明的装置包括多比特量化模块和量化比特数调整模块。本发明的方法和装置不仅能够极大降低神经网络参数所占用的存储空间和计算量,还能降低训练时间,使其能够方便地部署于嵌入式设备、移动设备或其他终端。
Description
技术领域
本发明涉及神经网络压缩领域,具体涉及一种自适应比特位宽的神经网络的量化方法与装置。
背景技术
近年来,深度神经网络在许多领域,如目标识别、图像恢复、语义分割等方面取得了重大的进展。然而,一个神经网络层可能包含上万个参数,在一次迭代过程中产生上百万次计算。由于算力、内存、功耗的限制,神经网络算法难以在便捷式设备上,如智能手机、智能穿戴设备、无人机等,进行部署。
在神经网络算法中,通常被操作数据由32位浮点数构成,主要进行的运算为浮点数乘法和加法,这些运算和浮点数消耗了绝大部分的计算资源和存储资源。因此使用更少的比特来表示这些浮点数据,使用对计算资源需求更少的运算操作来替代浮点数计算,能够大大地降低计算量、存储量和功耗。
多比特二值网络(Multi-bitBinaryNetwork)是一类将网络参数进行二值化的特殊网络,其中被量化的每一个参数由多个二值({0,1}或者{-1,1})表示的比特构成。通过将神经网络的参数进行多比特二值化,原来的浮点数操作可以被替换二值操作(与、或、非、异或等)。然而,之前将神经网络进行多比特二值化的量化训练方法通常非常耗时,且量化所带来的准确度损失仍然有进一步的优化空间。
发明内容
本发明主要针对现有卷积神经网络内存和计算资源消耗量大,功耗高的问题,提出一种自适应比特位宽的多比特神经网络量化方法及其装置。
本发明的方法采用的技术方案如下:
一种自适应比特位宽的神经网络量化方法,包括以下步骤:
(1)最小化量化期望均方误差,得到在不同量化比特数情况下的量化策略,并建立量化等级关于量化比特数的查找表;
(2)初始化神经网络的权重参数及量化比特数;
(3)通过步骤(1)的查找表和量化比特数对所述神经网络的权重参数进行多比特量化;
(4)利用量化后的权重参数进行前向和反向传播;
(5)计算量化敏感度并进行累计,得到累计敏感度;
(6)使用所述累计敏感度调整权重参数的量化比特数,并重复步骤(3)~(6)直到量化训练完成;
(7)在完成量化训练后对多比特二值网络进行部署。
进一步地,所述步骤(1)中,利用暴力搜索算法对量化策略求解,具体步骤为:在高斯分布和拉普拉斯分布的假设下,在不同的量化比特下,遍历比例因子的可能解,由此计算得到量化等级和量化区间,使用量化等级、量化区间和假设分布的概率密度函数进行积分得到量化期望均方误差,找到对应于最小量化期望均方误差的量化等级,最终建立在不同分布和不同量化比特数情况的查找表。
进一步地,所述步骤(2)中,所有量化比特数被统一初始化为定值。
进一步地,所述步骤(3)中,根据权重参数的量化比特数,通过查找所述查找表,找到对应于该量化比特数下的量化等级,然后将权重参数进行标准化,再根据量化等级进行量化投影,最后进行去标准化。
进一步地,所述步骤(4)中,使用量化后的权重参数进行前向传播,并通过反向传播获得权重参数的梯度,使用梯度对原权重参数进行更新。
进一步地,所述步骤(5)中,将原权重参数与量化后的权重参数相减,然后与权重参数的梯度进行点积运算,最后取绝对值再除以参数数量来表示权重参数关于损失函数的量化敏感度。
进一步地,所述步骤(6)中,首先将累计敏感度进行升序排序,然后按照某一百分比r找到累计敏感度最小的权重参数,如果这部分权重参数量化比特数大于0,则将其减1,当权重参数的量化比特数降为0,则将该部分权重参数永久从神经网络中移除。
进一步地,所述步骤(7)中,根据量化等级与比例因子、二值权重之间的一一对应关系,将量化权重参数分解为二值权重和比例因子,用于对多比特二值网络进行部署。
本发明一种自适应比特位宽的神经网络量化装置,包括:多比特量化模块,基于高斯分布和拉普拉斯分布假设建立量化等级关于量化比特数的查找表,并在量化训练过程中对权重参数进行多比特量化;量化比特数调整模块,用于获得量化权重参数关于损失函数的敏感度并进行累计,在量化训练过程中根据累计敏感度对权重参数的量化比特数进行调整。
本发明的方法通过将神经网络的权重参数分解为多比特二值权重,原来的32比特浮点权重参数被替换为M(M<<32)比特二值数,所占存储空间降低为原来的可以大大地减小神经网络的存储和内存占用。在与激活参数进行计算的过程中,可将浮点数运算替换为位运算,大大地减小对计算资源地消耗,因此更有利于在便捷式设备、嵌入式设备上进行部署。通过预先建立查找表的方式,避免了在每一次量化训练迭代过程中进行优化求解,极大地减小了量化训练的计算复杂度,因而显著地降低了量化训练的时间,使其能够方便地部署于嵌入式设备、移动设备或其他终端。综上,与基于浮点数据和浮点数运算的神经网络相比,本发明能够大大的减小推理的时间、内存消耗和功耗;与先前的多比特神经网络量化方法相比,本发明能够有效的降低量化训练时间。
附图说明
图1是本发明实施例中的方法流程图;
图2是本发明装置的框架示意图;
图3是本发明中以3比特为例的比例因子、二值权重与量化等级的关系图。
具体实施方式
下面将结合附图与实施例对本发明进行详细说明。
实施例1
本实施例提供一种自适应比特位宽的神经网络量化方法,具体步骤如图1所示。在本实施例中,将神经网络的权重参数以组为基本单位进行划分,一般地,取层或通道为一组,所述层是指一整层卷积网络或者全连接网络所代表的权重参数,该张量的形状一般为Co×Ci×K×K(卷积层)或Fo×Fi(全连接层);所述通道是指Co或者Fo维度的权重数据,即将Ci×K×K(卷积层)或Fi(全连接层)维度的数据视为一个整体。位于同一组的权重参数被量化为相同的量化比特数,不同组的权重参数可能被量化为不同的量化比特数。
在本实施例中,将任意一组被量化参数建模为标准拉普拉斯分布或标准高斯分布。标准高斯分布是指其概率密度函数满足标准拉普拉斯分布是指其概率密度函数满足其中e为自然指数。浮点数据将被量化为多比特二值数据,因此量化后参数将服从多比特二值约束。多比特二值约束,是指对于任意被量化参数X,可以将其表示为多个二值权重与比例因子的累乘:其中M表示所使用的比特数,αj表示比例因子,Bj表示二值权重,表示X的量化后参数。
比例因子α(a=[α1,α2,...,αM])可以用来确定一组包含2M个量化等级的集合:
使用qi(a)表示Q(α)中从小到大排列的第i个量化等级。将位于量化区间[si(a),si+1(a)]的数值量化为qi(a),为了最小化量化误差,将X量化为最近的量化等级,因此定义量化边缘:
步骤1,通过最小化量化期望均方误差,一次性得到在不同量化比特数情况下的量化策略(即量化等级),并建立查找表。最小化量化期望均方误差,可以表示为如下数学公式:
式中,Ψ(·)为公式(3)中被积函数的原函数,对于标准高斯分布,
其中erf(·)表示高斯误差函数(Gauss Error Function)。对于标准拉普拉斯分布,
由于公式(4)中qi(a)和si(a)关于a不连续,无法直接获得闭式解,因此采用暴力搜索算法对量化策略求解,量化策略是指在不同量化比特数下的a及其对应的一组量化等级。该暴力搜索算法的主要操作为:对于不同的量化比特数M(从1到7),遍历a的可能的取值,并带入公式(4)中进行计算,找到最小量化均方期望误差所对应的量化策略,最后建立量化等级Q(a)关于量化比特数M的查找表。在本实施例中,任意aj(j=1,2,...,M)的搜索空间为从0.1到10,分辨率为0.01。即从0.1到10每隔0.01取一次aj,取样得到的a首先被用于公式(1)计算量化等级Q(a)并获得qi(a),然后通过公式(2)计算si(a),最后通过公式(4)计算最小化目标。由此遍历a的搜索空间直到找到对应于最小优化目标的量化等级Q(a)。在本实施例中,基于标准高斯分布在不同量化比特数下最小化目标函数建立的查找表被定义为高斯查找表,基于标准拉普拉斯分布在不同比特数下最小化目标函数建立的查找便被定义为拉普拉斯查找表。
步骤2,初始化神经网络的权重参数及量化比特数。既可以对神经网络的权重参数进行随机初始化,也可以使用在浮点数精度下已训练好的模型进行初始化。本实施例以组为基本单位将神经网络中任意规模的权重参数为整体进行量化(即位于同一组的权重参数被量化为相同的量化比特数,不同组的权重参数可能被量化为不同的量化比特数)。量化训练前,所有层(或通道)的量化比特数被统一初始化为定值,一般地,该定值取4到8之间的整数。
步骤3,对神经网络的权重参数进行多比特量化。训练数据首先被输入至神经网络,在前向传播过程中,若权重参数被建模为标准高斯分布,将以前述的组为单位,计算各组权重参数的均值与标准差,具体计算方式为,
式中,wk表示该组权重参数W的第k个数值,N表示该组权重参数的个数。若权重参数被建模为标准拉普拉斯分布,将以前述的组为单位,计算各组权重参数的均值与尺度参数,具体计算方式为,
式中,wk表示该组权重参数W的第k个数值,|·|表示取绝对值。根据该组权重参数的量化比特数M,通过查找高斯查找表,找到对应于该量化比特数下的量化等级Q(a),然后将权重参数进行标准化,再根据量化等级进行量化投影,最后进行去标准化。这里标准化是指,在高斯分布情况下,将各组的权重参数减去其均值然后除以其标准差;在拉普拉斯分布下,将各组的权重参数减去其均值然后除以其尺度参数。这里去标准化是指,在高斯分布情况下,将各组的权重参数乘以标准差然后加上均值;在拉普拉斯分布情况下,将基本单位的权重参数乘以尺度参数然后加上均值。在高斯分布情况下,所述过程可以用如下数学公式进行表示,
式中,ΠQ(a)(·)表示将括号内的参数投影到量化等级Q(a)中距离最近的数值qi(a)上,该公式被定义为多比特高斯量化公式。在拉普拉斯分布情况下,所述过程可以用如下数学公式进行表示,
式中,ΠQ(a)(·)表示将括号内的数据投影到量化等级Q(a)中距离最近的数值qi(a)上,该公式被定义为多比特拉普拉斯量化公式。
步骤5,计算量化敏感度并进行累计。以前述的组为单位,将权重参数W与量化权重参数相减,然后与梯度g进行点积运算,最后取绝对值然后除以参数数量N来表示该组参数关于损失函数的敏感度。所述点积运算是指将参与运算的两部分逐元素相乘然后取和。上述过程可以用数学公式表示如下,
其中表述点积运算,g表示量化权重参数的梯度,Δl′用以表征该组权重参数在量化前后对于损失函数的影响大小(即敏感度)。随着量化训练的迭代,将该敏感度随着训练迭代次数进行累计以消除不稳定的输入数据的影响。在本实施例中,所述的累计次数为完整的遍历一次训练数据集的迭代次数。
步骤6,调整各组权重参数的量化比特数。首先将各组量化权重参数的累计敏感度进行升序排序,然后按照某一百分比r找到累计敏感度最小的权重参数(以组为单位),如果这部分权重参数量化比特数大于0,则将其减1,然后将累计敏感度清零,用于下一次地调整。在本实施例中,将该百分比固定为12%。特别地,当某组权重参数的量化比特数降为0,该部分参数将永久从神经网络中被移除,从而产生一个更加精简的网络结构。当达到目标平均比特数或者量化训练结束时该调整方法结束。步骤7,将量化权重参数分解为二值权重与比例因子以便在嵌入式设备、便捷式设备进行部署。在量化训练完成后,各组量化权重参数与其对应的量化比特数、量化等级将被固定。量化等级、比例因子与二值权重之间的关系如公式(1)所示,图3给出了在3比特情形下三者之间的关系图,可知在比例因子确定的情况下,二值权重与量化等级一一对应。而量化权重参数为权重参数在量化等级上的投影,因此相应的二值权重可以通过该对应关系反向查找获得。当所有权重参数被分解为二值权重和比例因子后,神经网络中的大部分运算可被替换为位运算,因而推理过程获得加速。
实施例2
本实施例提供一种自适应比特位宽的神经网络量化装置。如图2所示,包括多比特量化模块和量化比特数调整模块。
多比特量化模块,在多比特量化约束下,通过在标准高斯分布或标准拉普拉斯分布情况下使用暴力搜索算法分别优化量化期望均方误差,建立量化策略(即量化等级)关于不同量化比特数的高斯查找表和拉普拉斯查找表。在高斯分布情况下,在量化训练过程中使用高斯查找表与多比特高斯量化公式对各组权重参数进行多比特量化,该量化过程具体为首先基于该组权重参数的量化比特数查找高斯查找表,找到对应的量化等级,然后将各组权重参数减去其均值,除以其标准差,将其投影至距离其最近的量化等级上,再乘以标准差,最后加上均值,如公式(9)所示;在拉普拉斯分布情形下,使用拉普拉斯查找表与多比特拉普拉斯量化公式对各组权重参数进行多比特量化,该量化过程具体为首先基于该组权重参数的量化比特数查找拉普拉斯查找表,找到对应的量化等级,然后将各组权重参数减去其均值,除以尺度参数,将其投影至距离其最近的量化等级上,然后乘以尺度参数,最后加上均值,如公式(10)所示。
量化比特数调整模块,在每次迭代的反向传播后,将权重参数、量化权重参数与相应的梯度进行公式(11)的运算以获得量化权重参数关于损失函数的敏感度,该敏感度随着迭代次数进行累计或者累计敏感度,在一定的迭代次数后,对累计敏感度进行升序排序,然后按照一定的百分比将排序靠前的各组权重参数的量化比特数进行调整。所述调整是指如果选中的权重参数的量化比特数大于0,则将其减1。调整后的量化比特数将用于后续的量化训练或者部署阶段。
Claims (9)
1.一种自适应比特位宽的神经网络量化方法,其特征在于,包括以下步骤:
(1)最小化量化期望均方误差,得到在不同量化比特数情况下的量化策略,并建立量化等级关于量化比特数的查找表;
(2)初始化神经网络的权重参数及量化比特数;
(3)通过步骤(1)的查找表和量化比特数对所述神经网络的权重参数进行多比特量化;
(4)利用量化后的权重参数进行前向和反向传播;
(5)计算量化敏感度并进行累计,得到累计敏感度;
(6)使用所述累计敏感度调整权重参数的量化比特数,并重复步骤(3)~(6)直到量化训练完成;
(7)在完成量化训练后对多比特二值网络进行部署。
2.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(1)中,利用暴力搜索算法对量化策略求解,具体步骤为:在高斯分布和拉普拉斯分布的假设下,在不同的量化比特下,遍历比例因子的可能解,由此计算得到量化等级和量化区间,使用量化等级、量化区间和假设分布的概率密度函数进行积分得到量化期望均方误差,找到对应于最小量化期望均方误差的量化等级,最终建立在不同分布和不同量化比特数情况的查找表。
3.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(2)中,所有量化比特数被统一初始化为定值。
4.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(3)中,根据权重参数的量化比特数,通过查找所述查找表,找到对应于该量化比特数下的量化等级,然后将权重参数进行标准化,再根据量化等级进行量化投影,最后进行去标准化。
5.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(4)中,使用量化后的权重参数进行前向传播,并通过反向传播获得权重参数的梯度,使用梯度对原权重参数进行更新。
6.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(5)中,将原权重参数与量化后的权重参数相减,然后与权重参数的梯度进行点积运算,最后取绝对值再除以参数数量来表示权重参数关于损失函数的量化敏感度。
7.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(6)中,首先将累计敏感度进行升序排序,然后按照某一百分比r找到累计敏感度最小的权重参数,如果这部分权重参数量化比特数大于0,则将其减1,当权重参数的量化比特数降为0,则将该部分权重参数永久从神经网络中移除。
8.根据权利要求1所述的一种自适应比特位宽的神经网络量化方法,其特征在于,所述步骤(7)中,根据量化等级与比例因子、二值权重之间的一一对应关系,将量化权重参数分解为二值权重和比例因子,用于对多比特二值网络进行部署。
9.一种自适应比特位宽的神经网络量化装置,其特征在于,包括:
多比特量化模块,基于高斯分布和拉普拉斯分布假设建立量化等级关于量化比特数的查找表,并在量化训练过程中对权重参数进行多比特量化;
量化比特数调整模块,用于获得量化权重参数关于损失函数的敏感度并进行累计,在量化训练过程中根据累计敏感度对权重参数的量化比特数进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630360.1A CN112686384A (zh) | 2020-12-31 | 2020-12-31 | 一种自适应比特位宽的神经网络量化方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630360.1A CN112686384A (zh) | 2020-12-31 | 2020-12-31 | 一种自适应比特位宽的神经网络量化方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112686384A true CN112686384A (zh) | 2021-04-20 |
Family
ID=75455909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011630360.1A Pending CN112686384A (zh) | 2020-12-31 | 2020-12-31 | 一种自适应比特位宽的神经网络量化方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686384A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11562231B2 (en) * | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
WO2024012171A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
-
2020
- 2020-12-31 CN CN202011630360.1A patent/CN112686384A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11562231B2 (en) * | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
WO2024012171A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 二值量化方法、神经网络的训练方法、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222821B (zh) | 基于权重分布的卷积神经网络低位宽量化方法 | |
US11775833B2 (en) | Accelerated TR-L-BFGS algorithm for neural network | |
CN108345939B (zh) | 基于定点运算的神经网络 | |
US11270187B2 (en) | Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization | |
Miyashita et al. | Convolutional neural networks using logarithmic data representation | |
CN109214509B (zh) | 一种用于深度神经网络高速实时量化结构和运算实现方法 | |
CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
CN109214502B (zh) | 神经网络权重离散化方法和系统 | |
CN109978135B (zh) | 基于量化的神经网络压缩方法及系统 | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN113159276A (zh) | 模型优化部署方法、系统、设备及存储介质 | |
US11899742B2 (en) | Quantization method based on hardware of in-memory computing | |
Lacey et al. | Stochastic layer-wise precision in deep neural networks | |
CN114970853A (zh) | 一种跨范围量化的卷积神经网络压缩方法 | |
Shin et al. | Prediction confidence based low complexity gradient computation for accelerating DNN training | |
CN114444686A (zh) | 一种卷积神经网络的模型参数量化方法、装置及相关装置 | |
CN114943335A (zh) | 一种三值神经网络逐层优化方法 | |
CN113902109A (zh) | 一种神经网络规则化位串行计算的压缩方法及装置 | |
Qi et al. | Learning low resource consumption cnn through pruning and quantization | |
CN112232477A (zh) | 图像数据处理方法、装置、设备及介质 | |
CN113177634B (zh) | 基于神经网络输入输出量化的图像分析系统、方法和设备 | |
CN114611665A (zh) | 基于权重振荡影响度的多精度分层量化方法及装置 | |
CN114139678A (zh) | 卷积神经网络量化方法、装置、电子设备和存储介质 | |
Kulkarni et al. | A survey on filter pruning techniques for optimization of deep neural networks | |
CN114519423A (zh) | 用于压缩神经网络的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |