CN111768002B - 一种基于弹性有效位的深度神经网络量化方法 - Google Patents
一种基于弹性有效位的深度神经网络量化方法 Download PDFInfo
- Publication number
- CN111768002B CN111768002B CN202010661226.1A CN202010661226A CN111768002B CN 111768002 B CN111768002 B CN 111768002B CN 202010661226 A CN202010661226 A CN 202010661226A CN 111768002 B CN111768002 B CN 111768002B
- Authority
- CN
- China
- Prior art keywords
- quantization
- elastic
- significance
- neural network
- deep neural
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种基于弹性有效位的深度神经网络量化方法,将定点数或者浮点数量化为具有弹性有效位数的量化值,丢弃多余的尾数部分,并采用可行求解的方式来定量评价量化值与原始数据的分布差异。本发明具有弹性有效位的量化值,通过不同的有效位,量化值的分布可以覆盖从长尾到均匀的一系列钟形分布,适应DNNs的权值/激活分布,从而保证低的精度损失;乘法计算在硬件上可以由多次的移位加法实现,提升量化模型的整体效率;分布差异函数定量地估计不同量化方案带来的量化损失,可以在不同的条件下选择最优的量化方案,实现更低的量化损失,提升量化模型的精度。
Description
技术领域
本发明属于深度神经网络压缩技术领域,特别涉及一种基于弹性有效位的深度神经网络量化方法。
背景技术
深度神经网络(Deep Neural Networks,DNNs)量化是一种有效的压缩DNNs的方法,可以显著提高DNNs的计算效率,使网络能够部署在资源有限的边缘计算平台上。实现DNNs量化的最常用方法之一是将高精度浮点值投影为低精度量化值。例如,具有32位浮点的DNNs可以通过将权值替换为仅一比特来实现32x模型大小压缩,甚至可以在硬件上将复杂的乘法运算简化为简单的位运算。因此,在比特值较少的情况下,DNN量化可以显著降低计算规模或内存占用,从而提高计算效率。
然而,量化同时也会导致精度的大幅度下降,这主要是因为使用低精度替换会破坏DNNs中权重/激活的原始数据分布。例如,二值化将服从任意分布的原始值转换为Bernoulli分布,导致了精度严重下降。因此,为了获得更高的精度,如何适当地利用最少比特来尽可能地提高量化前后的两个分布之间的近似仍然是一个挑战。一些低比特的量化工夫比如二进制/三进制可以实现很高的计算效率,但模型精度太低。因此,近年来的研究者更加关注多比特量化,它大致可以分为两类:线性量化和非线性量化。
线性量化:线性量化将数据量化为连续的定点值。Dorefa-Net首先寻找一个缩放因子,将数据缩放到目标范围内,然后应用舍入操作来实现投影过程。TSQ分别给出了激活和权重的两步量化。它首先设置低于阈值的激活为0,然后通过线性量化对其他激活进行量化,然后通过基于卷积核得量化将权重量化为三值。QIL引入了一种可训练的线性量化过程,对量化参数(区间宽度)进行了重参数化,并通过优化任务损失对其进行训练。PACT认为激活量化困难的原因在于缺乏任何可训练的参数。它重参数化了用于激活量化的剪裁参数以限制值的范围,然后在该范围内使用线性量化。BCGD使用具有一个缩放因子的简单阶跃函数来实现所有权重和激活的线性量化。DSQ提出了一种可导的软线性量化过程来解决量化的不可导问题,该过程利用tanh函数逐步迭代逼近阶跃函数。最新的μL2Q引入了用于权值变换的缩放因子和移位因子,然后将变换后的数据截断并舍入为离散值。VecQ只在目标范围内使用缩放因子缩放权重,然后将其截断并舍入为固定点值。
非线性量化:非线性量化将浮点数投影成具有非均匀间隔的低精度值。TTQ试图将三值和量化权重导致的精度下降纠正为非中心对称的三个值。为了实现这一目标,其引入了两个可训练的缩放因子。为了利用来自二值量化的比特操作,同时防止严重的精度下降,LQ-Nets和ABC-Net将权重和激活量化为多个二值量化结果的和,以实现精度和效率之间的新的权衡。对数量化试图将浮点数映射成基于不同底数的指数形式的值,如1底数为1.2或2.1。研究发现,二次幂(PoT)的计算效率较高,但是性能较差。INQ试图解决量化网络的快速收敛问题,其提出了将权值逐步量化到PoT中的方法。ENN将交替方向乘子法(ADMM)引入到量化中,以解决不可导量化的梯度传播问题。它也将权值量化为PoT。
最近的APoT通过在PoT中添加复杂的量化值来修正精度,但是其实际上生成了多峰分布的量化值,导致了一定的精度下降。而其复杂的量化间隔引入了复杂的投影操作作为新的性能瓶颈,导致极低的计算效率。APoT将浮点数量化为一些PoT的和的形式。例如,如果有b个给定的量化比特,APoT将首先将根据b生成n组,每组包含个PoT。除去保留的1位作为符号位,n必须保证能被(b-1)整除。然后,抽取每组内值的随机组合来生成最终的2b-1个量化值(0值重复出现)。图1展示了APoT在b=5的情况下,不同分组的量化值。n=1时APoT等价于PoT量化,而n=4时是线性量化。在n=2是,ApoT的量化值是的多峰分布的。这些分布都不适应于钟形分布,但是在大多数情况下,DNN权值/激活值都是钟形分布的,这表明APoT不能适应绝大多数的DNN量化,将带来较大的精度下降。图2展示的APoT用于量化投影的复杂的阶跃函数,该阶跃函数难以用简单的缩放和舍入函数实现,因此其时间复杂度和空间复杂度都达到了O(n),这将极大的降低量化模型的计算效率。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于弹性有效位的深度神经网络量化方法,通过不同的有效位,量化值的分布可以覆盖从长尾到均匀的一系列钟形分布,适应DNNs的权值/激活分布,从而保证低的精度损失,提升量化模型的整体效率。
本发明采用的技术方案是:一种基于弹性有效位的深度神经网络量化方法,将定点数或者浮点数量化为具有弹性有效位数的量化值,丢弃多余的尾数部分。
弹性有效位为保留自最高有效位开始,有限个有效位。有效位的位数是根据定点数或者浮点数本身而确定的。
对于给定数据v,自其最高有效位的位置,指定k+1个有效位,表示如下:
其中(n-k)到n的部分是保留的有效部分,而0(-∞)到(n-k-1)部分为需要舍入的尾数部分;定点数或者浮点数的量化:
P(v)=R(v>>n-k)<<n-k
其中>>与<<为移位运算,而R()为舍入操作。
弹性有效位的乘法计算基于有效位数的多级移位累加实现。
有效位数决定移位加法的级数。
在于对量化值与原始数据的分布差异,采用可行求解的方式来定量评价:
量化权值为W,其采样自随机变量t~p(t),所有的量化值得集合为Q,定义分布差异函数如下:
其中(q-ql,q+qu]表示可以投影到q值的连续数据的范围,该范围以q为中心,q1和qu表示其浮动范围。
分布差异用来评估不同弹性有效位数下的最优量化。
工作原理:弹性有效位实现不同分布的量化值提升模型精度:影响精度的关键点实际上是在给定比特中有多少可以真正用于控制量化值的分布的比特,以接近原始分布。在本发明中,称这些比特为有效比特,有效比特的数量,即最高有效比特和最低有效比特之间的比特的数量,将影响量化值的分布。得益于弹性的有效比特数设计,本量化方法的量化值可以覆盖从长尾的到均匀分布的所有可能的钟形数据分布形式,以适应钟形分布的DNNs权值/激活,从而有效的保证量化的精度。此外,本发明还设计了分布差异函数来估计量化误差,从而寻找最合适的量化方案,即最合适的有效比特数位数。
高效量化值集合保证量化模型的计算效率:通过设置有限有效位的量化值,在同等量化比特数下,本发明的量化值具有比连续定点数更少的有效比特,因此其乘法可以用更少级数的移位加法来实现,从而提升量化模型乘法的计算效率。
快速投影函数:相比于复杂的阶跃函数作为函数,本发明使用简单的移位和舍入操作实现快速的从浮点值到量化值的投影操作,其在算法上只需要O(1)的时间复杂度和空间复杂度,而在硬件实现上,移位和摄入操作只需要占用一个CPU时钟周期,大大地提升了投影效率。
与现有技术相比,本发明所具有的有益效果是:
1.本发明具有弹性有效位的量化值,通过不同的有效位,量化值的分布可以覆盖从长尾到均匀的一系列钟形分布,适应DNNs的权值/激活分布,从而保证低的精度损失;实验表明,在ImageNet上将ResNet18量化为2比特,基于EpoT量化的精度达到了68.13%,相比于APoT的67.1%提升了1.03%;
2.本发明的弹性有效位的乘法计算在硬件上可以由多次的移位加法实现,而移位加法的级数取决于有效位数,由于本发明的量化方法基于控制有效位数,因此,量化值可以实现更高效的乘法计算,从而提升量化模型的整体效率;
3.本发明由于移位运算和舍入运算都可以在一个CPU的时钟周期内完成,因此本发明的投影算法可以实现高效的投影操作;
4.本发明提出的分布差异函数定量地估计不同量化方案带来的量化损失,可以在不同的条件下选择最优的量化方案,实现更低的量化损失,提升量化模型的精度。
附图说明
图1为现有技术中APoT的量化值构成了多峰分布;
图2为现有技术中APoT导致的复杂的阶跃函数;
图3为本发明一种实施例的移位和舍入操作的示意图;
图4为本发明一种实施例的多级移位累加操作实现乘法的示意图;
图5为本发明另一种实施例的移位和舍入操作的示意图;
图6为本发明另一种实施例的多级移位累加操作实现乘法的示意图;
图7为本发明实施例的分布差异求解示意图;
图8为本发明实施例的量化ResNet18的量化过程。
具体实施方式
为使本领域技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作详细说明。
实施例一
本发明的实施例提供了一种基于弹性有效位的深度神经网络量化方法,将定点数或者浮点数量化为具有弹性有效位数的量化值,丢弃多余的尾数部分。弹性有效位为保留自最高有效位开始,有限个有效位。
对于给定数据v,自其最高有效位的位置,指定k+1个有效位,表示如下:
其中(n-k)到n的部分是保留的有效部分,而0(-∞)到(n-k-1)部分为需要舍入的尾数部分;定点数或者浮点数的量化:
P(v)=R(v>>n-k)<<n-k
其中>>与<<为移位运算,而R()为舍入操作。
如图3所示,本实施例中对91进行量化,弹性有效位设定为保留4个有效位,进行了两次移位运算和一次舍入操作,91量化为88。
对于91乘以91的乘法运算,经过移位和舍入操作后,变为88乘以88,再进行多级移位累加,如图4所示,为四个数的移位累加,极大的提高了计算效率。本实施例还可以通过去除有效位中0值的计算,进一步提升计算效率。
实施例二
本发明的实施例提供了一种基于弹性有效位的深度神经网络量化方法,将定点数或者浮点数量化为具有弹性有效位数的量化值,丢弃多余的尾数部分。弹性有效位为保留自最高有效位开始,有限个有效位。
对于给定数据v,自其最高有效位的位置,指定k+1个有效位,表示如下:
其中(n-k)到n的部分是保留的有效部分,而0(-∞)到(n-k-1)部分为需要舍入的尾数部分;定点数或者浮点数的量化:
P(v)=R(v>>n-k)<<n-k
其中>>与<<为移位运算,而R()为舍入操作。
如图5所示,本实施例中对92进行量化,弹性有效位设定为保留4个有效位,进行了两次移位运算和一次舍入操作,92量化为96。
对于92乘以92的乘法运算,经过移位和舍入操作后,变为96乘以96,再进行多级移位累加,如图6所示,为二个数的移位累加,极大的提高了计算效率。
实施例三
在于对量化值与原始数据的分布差异,采用可行求解的方式来定量评价:
量化权值为W,其采样自随机变量t~p(t),所有的量化值得集合为Q,定义分布差异函数如下:
s.t.S=(q-ql,q+qu]
其中(q-ql,q+qu]表示可以投影到q值的连续数据的范围,该范围以q为中心,q1和qu表示其浮动范围。其求解示意图如图7所示。分布差异可以用来评估不同弹性有效位数下的最优量化。
输入:存在采样自标准正态分布N(0,1)的DNN权值wf,需要将其量化到4比特的低精度值;
输出:最优的有效位数,量化后权值wq。
A.对于4比特量化的量化值,其可能的最多的有效位数位是1,2,3,分别被表示为Qi,i∈{1,2,3}的量化值集合。
D.利用分布差异,计算基于量化集合计算得到的量化权值与原始权值的分布差异Ji。
实施例四
以ResNetl8为例,本实施例量化ResNet18的除了第一层和最后一层以外的所有卷积层和全连接层,量化过程如图8所示。在前向过程中,对于每一个待量化的层,首先通过高效的弹性有效位(Elasticity Significant Bits,ESB)的投影过程,将本层的权值和来自上层的激活值量化为有限个有效位的量化值。然后将量化后的值输入乘法累加器,通过有限个有效位的乘法计算转化为基于有效位的移位加法,来提升神经网络的计算效率。最后通过累加操作得到本层的输出结果。在反向传播过程中,本实施例利用直接估计方法(Straight-Through-Estimation,STE)实现量化过程的梯度传递,简单来说,是将网络损失对量化后权值或激活的梯度,直接估计为量化前全精度权值或激活的梯度,以实现网络的更新。最后实验表明,在ImageNet上将ResNet18的权值和激活量化为2比特,量化的精度达到了68.13%。
以上通过实施例对本发明进行了详细说明,但所述内容仅为本发明的示例性实施例,不能被认为用于限定本发明的实施范围。本发明的保护范围由权利要求书限定。凡利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,在本发明的实质和保护范围内,设计出类似的技术方案而达到上述技术效果的,或者对申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖保护范围之内。
Claims (6)
2.如权利要求1所述的基于弹性有效位的深度神经网络量化方法,其特征在于:弹性有效位为保留自最高有效位开始,有限个有效位。
4.如权利要求3所述的基于弹性有效位的深度神经网络量化方法,其特征在于:弹性有效位的乘法计算基于有效位数的多级移位累加实现。
5.如权利要求4所述的基于弹性有效位的深度神经网络量化方法,其特征在于:有效位数决定移位加法的级数。
6.如权利要求3所述的基于弹性有效位的深度神经网络量化方法,其特征在于:分布差异用来评估不同弹性有效位数下的最优量化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661226.1A CN111768002B (zh) | 2020-07-10 | 2020-07-10 | 一种基于弹性有效位的深度神经网络量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661226.1A CN111768002B (zh) | 2020-07-10 | 2020-07-10 | 一种基于弹性有效位的深度神经网络量化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111768002A CN111768002A (zh) | 2020-10-13 |
CN111768002B true CN111768002B (zh) | 2021-06-22 |
Family
ID=72726684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010661226.1A Active CN111768002B (zh) | 2020-07-10 | 2020-07-10 | 一种基于弹性有效位的深度神经网络量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111768002B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678244B2 (en) | 2017-03-23 | 2020-06-09 | Tesla, Inc. | Data synthesis for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
SG11202103493QA (en) | 2018-10-11 | 2021-05-28 | Tesla Inc | Systems and methods for training machine models with augmented data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9224089B2 (en) * | 2012-08-07 | 2015-12-29 | Qualcomm Incorporated | Method and apparatus for adaptive bit-allocation in neural systems |
CN108616927B (zh) * | 2018-04-04 | 2021-08-27 | 北京锐安科技有限公司 | 一种数据发送和接收方法及装置 |
CN109711542B (zh) * | 2018-12-29 | 2020-08-18 | 西安交通大学 | 一种支持动态精度的dnn加速器及其实现方法 |
CN110222821B (zh) * | 2019-05-30 | 2022-03-25 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN110363281A (zh) * | 2019-06-06 | 2019-10-22 | 上海交通大学 | 一种卷积神经网络量化方法、装置、计算机和存储介质 |
-
2020
- 2020-07-10 CN CN202010661226.1A patent/CN111768002B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111768002A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768002B (zh) | 一种基于弹性有效位的深度神经网络量化方法 | |
CN109472353B (zh) | 一种卷积神经网络量化电路及量化方法 | |
US11403528B2 (en) | Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance | |
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
KR20190051755A (ko) | 저 정밀도 뉴럴 네트워크 학습을 위한 방법 및 장치 | |
KR20180043172A (ko) | 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 | |
Zhao et al. | Focused quantization for sparse CNNs | |
CN109859281B (zh) | 一种稀疏神经网络的压缩编码方法 | |
CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
CN111310890B (zh) | 深度学习模型的优化方法、装置及终端设备 | |
CN110309904B (zh) | 一种神经网络压缩方法 | |
CN111178516A (zh) | 一种基于分段查找表的softmax函数计算方法及硬件*** | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN114341882A (zh) | 用于训练深度神经网络的无损指数和有损尾数权重压缩 | |
CN110545162B (zh) | 基于码元可靠优势度节点子集划分准则的多元ldpc译码方法及装置 | |
CN110955405A (zh) | 一种输入数据的处理及指数值获取方法、装置及电子设备 | |
CN113902109A (zh) | 一种神经网络规则化位串行计算的压缩方法及装置 | |
CN110619392A (zh) | 一种面向嵌入式移动设备的深度神经网络压缩方法 | |
CN116934487A (zh) | 一种金融清算数据优化存储方法及*** | |
Kalali et al. | A power-efficient parameter quantization technique for CNN accelerators | |
CN116562347A (zh) | 实现softmax函数计算的硬件***及方法 | |
CN107015783B (zh) | 一种浮点角度压缩实现方法及装置 | |
JP7016559B1 (ja) | 正規化浮動小数点数に対する誤差不偏近似乗算器及びその実現方法 | |
CN113779861B (zh) | 光伏功率的预测方法及终端设备 | |
JP2012060210A (ja) | 適応量子化方法,適応量子化装置および適応量子化プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |