一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种卷积神经网络的量化压缩方法与流程

2022-03-02 03:58:00 来源:中国专利 TAG:


1.本发明涉及一种基于自适应梯度和权重投影的神经网络模型量化压缩方法,属于神经 网络加速领域。


背景技术:

2.在机器学习方面,深度神经网络(dnn)比传统的算法有了很大的改进。dnn模型在 图像分类、检测和分割等领域得到了广泛的应用。然而,随着这些模型变得越来越精确, 它们的数据和计算资源需求也增加了。嵌入式系统是以计算机技术为基础,软硬件可裁剪, 适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统,在通信、 雷达、汽车、物联网、无人机、医疗器械等领域有着大规模的应用。神经网络在嵌入式平 台上的应用可以覆盖我们生活的方方面面。例如,许多工厂采用神经网络进行故障检测; 谷歌和特斯拉等公司正在培训他们的网络以取代司机;研究人员甚至设计了医疗诊断网络。
3.综上所述,神经网络的边缘部署已经成为工业生产和日常生活的需求,但现有的边缘 平台很难做到像云端服务器一样实现大型网络的高速训练和计算,所以就要求在这些模型 的部署平台上设计专门的加速器。这种部署可以概括为云和边缘两种。云部署需要将数据 从传感器传输到数据中心。模型的训练和推理在数据中心执行。边缘计算在数据产生地点 附近执行网络推理,模型可以在数据中心进行预训练。marchisio等人将这些部署划分为 dnn的四个用例场景:(1)数据中心离线dnn培训,(2)数据中心推理,(3)边缘设备在线 学习,(4)边缘设备推理。
4.相比于边缘设备部署,云端部署有如下缺点:首先,需要上传大量的数据,这会导致 能量和延迟开销;第二,在许多情况下,如在偏远地区的观察任务中,以稳定和快速的方 式连接物联网节点和云是不切实际的;第三,云和边缘之间的数据交换可能会导致隐私和 安全问题。而如果将dnn部署到边缘平台,则会面临以下问题。首先大部分边缘设备无 法为dnn提供巨大的内存和计算资源,即使是计算量需求最小的网络也需要0.219 gflops的算力。想要在计算量受限的边缘平台如fpga、mcu等上实现网络的实时推 理,需要进行加速器流水设计来平衡带宽、存储以及计算单元的使用,提高吞吐量和硬件 利用率。其次,因为边缘平台是无法将一次推理的所有计算都在一个cycle中执行完成的, 所以在加速器设计中加入流水设计来实现计算的批处理。但是和云端平台不同,边缘平台 往往不会有大容量的内部存储器,所以我们需要使用外部存储器来进行计算过程中的权重、 特征图存储等。此时,数据读写和带宽是无法被忽略的问题。片外存储器读写意味着更多 的功耗,而其较小的带宽进一步限制了计算实时性。
5.为了解决这些问题,各种模型压缩技术被提出用于实现高精度的轻量化网络,包括网 络量化、知识蒸馏、剪枝等。量化是最有效的方法之一,因为它可以减少内存消耗和推理 时间,同时不引入导致复杂地址分配的稀疏性问题。其限制了神经网络的权重和激活值的 位宽,从根本上降低了模型的大小。同时更低的位宽意味着更低的计算消耗。在进行加速 器流水设计时,低比特数据对存储器带宽的要求更低,单位时间内传输的数据量更大,
有 效提高了吞吐量以及单位时间内的硬件利用率。而且相比于神经网络的剪枝方法,量化不 会像剪枝一样修改模型分支,导致加速器设计中的地址索引的复杂化。此外,非结构化剪 枝会将稀疏性问题引入神经网络,其本质无法给网络推理加速。量化则显著的提高了模型 吞吐量。
6.通常,有两种线性量化方法:均匀量化和非均匀量化。它们的关键区别在于是否使用 了不等的量化间隔。均匀量化采用均匀间隔的点,并根据点的值将权重投影到这些点上。 很明显,使用均匀量化间隔的投影对网络的硬件实现更加友好。然而,单层dnn的权重 服从钟形长尾分布。由于均匀量化对所有分布区间具有相同的分辨率,所以量化后的模型 精度会有较明显的衰退。非均匀量化在权值分布的峰值区域附近赋予了更高的分辨率,因 此会引入更多的量化点来区分密集分布的权值。该方法在计算开销较高的情况下,表现出 了比均匀量化方法更好的性能。在没有特定编码策略的情况下,非均匀量化网络的计算量 与全精度模型的计算量相差不大。
7.可以看出,现有的量化方法要么以牺牲精度为代价提高网络压缩比,或者以采用编码 方法来简化量化点的表示,实现精度和速度的折衷。本文提出一种基于自适应梯度和权重 投影的量化优化方法,能够在提高压缩比的同时有效保留精度,适合于边缘计算场景。


技术实现要素:

8.针对如何能够在提高压缩比的同时有效保留精度的问题,本发明提供一种卷积神经网 络的量化压缩方法。
9.本发明的一种卷积神经网络的量化压缩方法,所述方法包括:
10.s1、获取卷积神经网络的原始权重张量、输入特征张量以及量化点;
11.s2、将原始权重张量输入至dp结构,dp结构对原始权重张量进行修改,输出修改 后的原始权重张量;
12.dp结构包括dp层,dp层为每个原始权重张量初始化一个完全相同的四维张量,作 为对应每个原始权值张量的影响因子,原始权重张量与影响因子进行四维卷积运算,得到 与原始权重大小相同的新的权重张量,作为修改后的原始权重张量;
13.s3、利用量化点及量化函数对修改后的原始权重张量及除第一层外的原始输入特征 张量进行定点量化;利用定点量化后的权重张量和输入特征张量替换原始权值张量和输入 特征张量,得到量化后的卷积神经网络;
14.s4、将训练数据输入至量化后的卷积神经网络,计算loss,利用反向传播和梯度下降 更新dp结构的参数和原始权重张量,转入s2,进行下一轮,直至训练完成。
15.作为优选,所述dp结构包括多个dp层和relu函数,多个dp层堆叠,每两个dp 层之间插入relu函数引入非线性特性。
16.作为优选,在所述s2中的dp结构还包括bn层,dp层得到的新的权重张量后,将 新的权重张量输入至bn层,bn层将新的权重张量调整为均值为0方差为1的分布,再 利用bn参数对分布进行动态调整,bn层的输出结果作为修改后的原始权重张量。
17.本发明的有益效果,本发明利用dp结构来量化卷积神经网络中的权值。dp结构由 一个权重层和几个投影层组成。对dp结构的结果进行量化,获得量化后的权重,应用于 卷
积神经网络中。在训练过程中,不直接使用来自原始网络的梯度来更新权值,而是将其 分解为子梯度,实现dp结构中投影层和权重层的基于梯度下降。dp结构的输出反映了 网络推理中权值的更新。即在经过dp结构后,浅层权重层投影到高维张量和复合梯度上, 更新过程更加灵活,在训练中表现出更好的调整能力。由于训练平面也被投射到更深的维 度中,所以本发明探索了更深的训练空间。本发明在训练过程中引入了更多的随机性,从 而提高了模型的性能。本发明能够在提高压缩比的同时有效保留精度,适合于边缘计算场 景。
附图说明
18.图1为dp层深度投影的前向计算的示意图;
19.图2为图1的简化计算示意图;
20.图3为dp层中w的梯度示意图;
21.图4为dp层中β的梯度示意图;
22.图5为现有通用权重架构;
23.图6为dp层的架构;
24.图7为dp层 bn层的架构。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他 实施例,都属于本发明保护的范围。
26.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组 合。
27.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
28.本实施方式以典型的均匀量化为例,其量化过程如下:
[0029][0030][0031]ri
=tanh(w)
ꢀꢀꢀ
(1-3)
[0032]
w’表示量化后的权重,round()表示自动取整函数,k表示量化bit数,ro表示过渡 参数,此时权重被修改到[0,1]之间。
[0033]
其梯度计算过程如下:
[0034][0035]
可以确定,预处理过程的梯度只与相应的权值相关,导致权值的下降模式固定,梯度 消失、过拟合等问题会影响量化模型的泛化。考虑到量化函数只能对[0,1]中的值起作
因为梯度是的复杂组合。在训练过程中,在每次迭代中对于不同层的不同权 值的系数是不同的,显示出对每个权值的自适应调整能力。而且这种多样性不是人为设计 的,而是根据网络优化的倾向进行自我优化。
[0073]
本实施方式在量化网络中引入自适应梯度,网络梯度下降过程更弹性更有利于网络优 化。将权重的优化过程投影到更高维度的张量,拓展了网络的训练空间,使得梯度的下降 更加随机、平滑。
[0074]
本实施方式中,dp结构包括多个dp层和relu函数,多个dp层堆叠,每两个dp 层之间插入relu函数引入非线性特性。
[0075]
本实施方式的dp结构采用多个dp层集成。dp越深,可进一步增强随机性和梯度 扩散。此外,投影层越多,计算量越大,训练速度越慢。需要谨慎地考虑投影层的集成。 尽管如此,dp层集成也有其优点。简单dp层只能实现w的线性投影。“更深的训练空间
”ꢀ
只是原始空间的线性扩展。其中不能添加非线性特征,因为无论特征是在bn块之前还是 之后引入,都会影响修改后模型的性能。验证性实验证明了这一结论。然而,这个问题可 以很容易地在集成模块中处理。在简单的dp层之后使用relu函数。就像激活函数在普 通模型中的工作方式一样,传播路径中的relu函数可以从非线性角度分解梯度。
[0076]
本实施方式的dp结构还包括bn层,dp层得到的新的权重张量后,将新的权重张 量输入至bn层,bn层将新的权重张量调整为均值为0方差为1的分布,再利用bn参 数对分布进行动态调整,bn层的输出结果作为修改后的原始权重张量。
[0077]
虽然优化后的反向传播路径可以缓解梯度消失/爆炸和过拟合等问题,但这些问题在 骨干网络中仍然存在,特别是在深层。批处理归一化(bn)被提出来解决这个问题。在本 实施方式中,每个投影层将使原始权重层在其初始深度的基础上更深,从而增强这些障碍。 因此,也引入bn层来优化工作。
[0078]
bn层在添加包括γ和β在内的缩放参数之前,将值的分布变为均值为零、方差为1 的分布。我们采用bn的完全式。即首先将投影层输出的分布改变为在零附近离散。使用 γ和β来动态修改数据范围,然后对上面重塑的分布进行微调。注意γ和β在每个三维权 重张量中是共享的。这些操作提高了dp结构的训练效率,使每个权值矩阵找到合适的数 据范围成为可能。综上所述,bn层相当于其他量化方法中的裁剪函数。
[0079]
此外,包括bn层在内的投影层在我们的骨干网络中无法转换成相应隐藏层,因此该 方法不会显式增加网络深度。将卷积运算转换为矩阵乘法运算,使添加投影层后的计算可 以转换为w
·
dp
·
act。根据矩阵乘法的交换律,它不能写成w
·
act
·
dp,从而证明了 上述结论。
[0080]
本实施方式利用bn层改善深度投影的效果。bn层能从区间的角度调整整个权重层 的分布还不改变其内部的相对分布关系,有利于抑制过拟合以及梯度弥散,使训练过程更 加平滑。
[0081]
本实施方式通过重新组合量化函数,可以将dp结构分支迁移到不同的量化方法中, 并进一步应用于不同的量化网络。dp分支不会影响网络的架构。唯一需要更新的是常规 的conv2d操作符。由于我们的方法适用于卷积中的权值,因此将conv2d函数初始化的 权值替换为并用量化函数进行量化,而dp参数的梯度在运算符中计算。dp的影响 因子
的更新可以在网络更新后完成。事实上,在权值被置换后,模型中的参数已经不多了。
[0082]
本实施方式在均匀量化和非均匀量化算法上都证明了本实施方式方法的有效性。不管 如何设置量化点,都可以使用本实施方法实现网络精度优化。
[0083]
本实施方式在不改变网络前向推理的情况下,增加训练网络开销来优化量化后网络的 精度。因为不需要改变网络的推理过程,所以本实施方式的方法适应性很好,可以用于各 种网络以及各种任务。虽然增加了训练网络部分的开销,但是可以用深度学习框架中的快 速算子来改善训练的时间消耗。
[0084]
本实施方式在cifar-10数据集上训练了resnet-20。所有可迭代参数的初始学习率 为0.01,衰减因子为0.5,训练限制在800个epoch,mini-batch为128,重量衰减设置为 5
×
10-4
。在训练中没有采用数据增强技术。
[0085]
表1展示了cifar-10数据集上三个位宽的不同量化策略的结果。表中,w4/a4表示 将隐藏层的权值和激活值量化为4位的量化级别。第一层和最后一层的位宽由框架名称后 面的数字表示。例如32-32表示该方法采用全精度的首尾层。
[0086]
表1不同量化位宽的resnet20在cifar-10上的精度比较
[0087]
方法w2/a2w3/a3w4/a4dorefa-net(32-32)88.289.990.5pact(32-32)89.791.191.7lq-net(mixed)90.291.6—bsq(mixed)90.1992.1692.32apot(8-8)91.092.292.3dp_1(8-8)88.6691.4992.24dp_2(8-8)88.4691.1892.24dp_3(8-8)85.588.790.82
[0088]
对于resnet20,尽管dp_1和dp_2仍然基于均匀量化,但在4比特的情况下,它显 示出与bsq、apot等非统一框架相当的精度。当采用3位量化级别时,dp_1比dp_2 和pact、dorefa-net等均匀量化方法表现出更好的性能,即使在第一层和最后一层 保持较低的精度。当涉及到2位时,本发明所有的框架都显示明显的退化。本发明认为这 种现象是由于重要层的位宽较低和均匀量化层的局限性造成的。2位均匀量化的不动点在 特征提取和分类方面具有局限性。而dp_3的结果证明过度叠加dp层并不有利于最终的 结果。根据dp块的三种配置结果,本发明发现dp块并不是完全的优化器,只带来正面 收益。在投影过程中,正面影响和负面影响都被引入。在dp_3中,本发明方法的收益被 它的负面影响所超过,带来了精度退化,所以在集成多个dp模块之前需要进行验证性实 验。
[0089]
本发明还在resnet56上训练本发明的方法,如表2所示。结果证明了本发明的方法 在更深的网络中依旧表现出了较好的泛化性,给均匀量化带来了精度提升。注意,所有 apot的方法均使用了渐进量化并使用训练好的全精度的模型来初始化,而本发明的方法 均是从头开始训练,并没有使用渐进量化等技巧。
[0090]
表2不同量化位宽的resnet56在cifar-10上的精度比较
[0091]
方法w3/a3w4/a4apot(8-8)93.994.0
dp_1(8-8)93.1893.96
[0092]
实验二:在cifar-100数据集上进行测试
[0093]
本发明在cifar-100数据集上对resnet20的dp改进的性能进行了评估。与 cifar-10实验相比,训练设置没有改变。即初始学习率仍然为0.01,衰减因子为0.5。最 大训练长度为800个epoch,mini-batch为128。重量衰减设置为5
×
10-4
。在本发明的训 练中没有采用数据增强技术。
[0094]
表3不同量化位宽的resnet20在cifar-100上的精度比较
[0095][0096]
表3阐述了dp_1和dp_2的性能变化。引入2位量化后,精度仍存在显著下降。然 而,尽管cifar-100和cifar-10的结构大致相同,但当类别增加而相关训练图片减少时, 其准确性存在差距。换句话说,在cifar-100中,dp_1的性能超过了dp_2。本发明认 为这与训练图像有关。如前所述,cifar-100为单个目标提供了500个样本,而cifar-10 为一个目标提供了5000个样本。比较dp__2和dp_1的架构,更深层次的dp模块使得 模型难以拟合分类函数。对两个数据集的最佳分类精度的比较可以发现精度差距是存在 的,也就是说dp_2和dp_1的精度差距不是一个恒定的趋势,特别是在其他数据集中。
[0097]
将bn层加入到dp层中,以缓解模型深度引起的消失梯度问题。由于dp结构作为 原始层的预处理函数,在反向传播中,深度连同梯度问题从骨干网的梯度传递到dp分支。 本发明测试了这些bn层在dp_1和dp_2中的影响。具体来说,本发明在cifar-10和 cifar-100上训练了这两种类型的模型在dp架构中有和没有bn层。
[0098]
表4阐述了有无bn的性能变化。
[0099]
由于dp_1的性能优于dp_2,本部分重点对该结构进行了不同位宽的实验,在dp_2 上只进行了4位测试。结果显示在表6。模型在cifar-10上测试,去除bn层时,精度 会有相当大的下降。如前一节分析,cifar-10提供了足够的训练样本,在一定程度上导 致了过拟合问题。bn层可以通过在训练中充当正则化函数来缓解这个问题。此外,梯度 弥散也会影响没有bn约束的模型的结果。dp_1结果cifar-100仍可观察到轻微改善。 本发明推测,这种提升更多地与梯度有关,因为过拟合很少发生在这个数据集中。
[0100]
表4 bn的影响
[0101][0102]
dp_2的结果显示了更大的差异。无论是在cifar-10还是cifar-100上测试,bn 层的缺失都会导致相当大的精度下降。对此的解释是,层越深,梯度消失的可能性越大。
[0103]
综上所述,在本发明的实验中,dp_1及其扩展对量化后的骨干网络产生了积极的影 响。在确定dp模块的最终架构之前,需要进行验证性实验,考虑数据集、模型结构等相 关因素的影响。尽管如此,dp_1仍是一个简单而有效的量化网络优化方法。
[0104]
虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例 仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多 修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范 围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要 求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他 所述实施例中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献