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

一种联合比特量化和比特权重搜索的模型压缩方法

2022-11-19 08:27:40 来源:中国专利 TAG:


1.本发明涉及深度学习和其中的轻量化压缩方向领域,尤其涉及一种联合比特量化和比特权重搜索的模型压缩方法。


背景技术:

2.深度学习经过了迅猛的发展,已在众多的现实场景中得到广泛应用,如机器人技术、自动驾驶和人脸识别技术等等。而在现实场景中,计算设备往往是资源受限的平台(如存储、计算速度等),所以研究深度学习中的网络结构压缩方案是十分必要的,深度神经网络研究和部署的关键便在于能在目标硬件资源上实现最佳性能。
3.对于深度学习的模型压缩有基于不同思路的压缩方法,如网络剪枝,减少不重要的枝节部分;参数量化,通过使用更少的比特数来存放参数,进而使参数的总存储量下降,达到压缩的效果;网络结构重新设计,如利用深度可分离卷积来降低运算的次数,进而达到压缩模型的效果。在上述的压缩方法中,参数量化对模型压缩程度最大,且将参数量化为比特数后,更能适应于针对比特运算的嵌入式系统,进而使模型与硬件相适应程度更高,模型准确度提升,故本发明采用参数量化的方法进行模型压缩。
4.网络中不同层的冗余程度不一样,对不同层选择设置不同量化比特的混合精度量化方法将使网络压缩后的性能更好。但不同层的量化比特组合情况众多,难以通过人工选择来确定,量化比特自动搜索是更有效的解决方法,考虑到现有搜索算法代价较高且搜索对象集中为网络结构,所以选择代价较小的搜索算法darts进行修改为量化比特自动搜索算法。量化模型的性能与量化函数密切相关,因此在搜索量化比特时需要考虑量化函数。当前的参数量化算法大多使用固定量化函数进行模型量化,而不同的参数分布情况和不同的比特设置所适用的量化函数并不相同。如searching for low-bitweights in quantized neural networks中的slb算法。上述的两种方法,量化比特自动搜索算法和可学习的量化函数,都可以在一定程度对模型进行压缩,但是单独使用下的压缩程度和所得模型的准确度都将有较大的限制,无法达到较好的结果。单纯的级联上述的两种方法,即先使用比特搜索来得到架构,再使用权重搜索优化权重,这种方法思路简单但会有问题且无法得到最优结果。


技术实现要素:

5.本发明目的在于提供一种联合比特量化和比特权重搜索的模型压缩方法以及其系统,以解决上述技术问题。本发明利用权重值搜索来获得可学习的量化函数,将权重值搜索与量化比特搜索进行联合,使两者相匹配,以获得更好的量化模型的性能。
6.本发明至少通过如下技术方案之一实现。
7.一种联合比特量化和比特权重搜索的模型压缩方法,包括以下步骤:
8.s1、加载图像数据并对图像数据进行预处理;
9.s2、建立卷积神经网络模型,设定卷积神经网络模型中对应的比特搜索空间和权
重搜索空间;
10.s3、对卷积神经网络模型进行联合搜索训练;
11.s4、选取比特搜索结果中的最大概率位宽,以构建轻量化网络,并保存联合搜索时最后以最大概率位宽得到的权重参数作为轻量化网络的权重参数,再进行权重搜索优化轻量化网络模型,输出压缩了的优化轻量化网络模型。
12.进一步地,所述预处理包括对图像数据进行填充、裁剪、图像增强。
13.进一步地,将加载图像数据切割为训练集、验证集和测试集。
14.进一步地,使用梯度搜索策略进行卷积神经网络模型的搜索训使练,在训练集和验证集交替搜索卷积神经网络模型的比特限制和比特权重值,比特和权重选择能成为整体最佳。
15.进一步地,在联合搜索中,对于搜索中得到的比特和权重的各个选择,使用类softmax进行归一化,达到对比特和权重选择的连续松弛化,进而可在训练中使用梯度下降进行优化搜索,同时设置温度指数衰减,使搜索得到的比特和权重选择概率矩阵近似one-hot编码,使比特和权重选择能收敛到单一选择中。
16.进一步地,对卷积神经网络模型的其中一层,设总共有n种可选择的比特数,则搜索第m个比特的选择概率由下式进行计算:
[0017][0018]
其中,ps表示比特选择概率,进而表示搜索第m个比特的选择概率,n为可选择的比特数的种数,为第m个比特数归一化前的选择权重,τ0是设定的衰减温度,为第j个比特数归一化前的选择权重。
[0019]
进一步地,对卷积神经网络模型的其中一层,设总共有n种可选择的比特数,设第m个比特数对应有vm个可供选择的量化权重值,则搜索中第m个比特数的第i个量化权重值的选择概率由下式进行计算:
[0020][0021]
其中,p表示量化权重值的选择概率,进而添加了上下标的表示搜索中第m个比特数的第i个量化权重值的选择概率;vm表示第m个比特数对应可供选择的量化权重值的个数;是可学习的参数,为第m个比特数第j个量化权重值归一化前的选择权重,τ1为预先设定的衰减温度,为第m个比特数第i个量化权重值归一化前的选择权重.
[0022]
进一步地,卷积神经网络模型训练时的输出函数为:
[0023]
y=σ(w*x b)
ꢀꢀꢀ
(3)
[0024]
其中,y表示模型训练时的输出,σ(
·
)为激活函数,x为卷积层的输入,b为卷积层的偏置向量,w为训练时的卷积权重,其元素为:
[0025][0026]
其中,表示搜索第m个比特的选择概率;n为可选择的比特数的种数;为第m个量化比特下的连续权重元素,其对应有vm个可供选择的量化权重值,由下式进行计算:
[0027][0028]
v={v1,v2,

,v2q}
ꢀꢀꢀ
(6)
[0029]
其中,为搜索中第m个比特数的第i个量化权重值的选择概率,v为比特权重搜索量化值集合,对于q比特的比特权重搜索量化值集合v有2q个离散权重值,故其中的vi为第i个归一化的比特权重量化值,v
2q
为第2q个离散权重值。
[0030]
进一步地,卷积神经网络模型推理时的输出函数为:
[0031]
y=σ(wq*x b)
ꢀꢀꢀ
(7)
[0032]
其中,y表示模型训练时的输出,σ(
·
)为激活函数,x为卷积层的输入,b为卷积层的偏置向量,wq为训练时的卷积权重,其元素为:
[0033][0034]
其中,为第m个量化比特下的离散比特权重,其对应有vm个可供选择的量化权重值,其计算式如下:
[0035][0036][0037]
其中,im表示得到搜索中第m个比特数的量化权重值的选择概率最大值的位置所对应的onehot向量,即长度为vm的向量,其中对应选择权重最大值位置的元素为1,其余为0;表示onehot向量im的第j个位置的取值;vj表示比特权重搜索量化值集合v中第j个归一化的比特权重量化值;为搜索中第m个比特数的第i个量化权重值的选择概率。
[0038]
j表示搜索中比特数选择概率最大值的位置所对应的onehot向量,其计算式为
[0039][0040]
由于总共有n种可供选择的比特数,j是长度为n的向量,其中对应选择权重最大值位置的元素为1,其余为0,j
(m)
表示onehot向量j的第m个位置的取值,表示搜索第i个比特的选择概率。
[0041]
进一步地,搜索训练时在对应损失函数中增加计算资源的损失项以及存储资源的
损失项,用以同时优化到计算成本和存储成本,得到的损失函数为:
[0042]
l=lc β
compute
·
l
compute
γ
memory
·
l
memory
ꢀꢀꢀ
(12)
[0043]
其中lc为卷积神经网络模型的交叉熵损失,l
compute
为卷积神经网络模型所用到的比特操作数,β
compute
为对应总计算成本的可调权重,l
memory
为卷积神经网络模型所涉及的总存储量,γ
memory
为对应总存储量的可调权重。
[0044]
与现有的技术相比,本发明的有益效果为:
[0045]
本发明根据提供的硬件资源约束以及模型精确度期望,利用神经网络架构搜索比特量化数和比特权重数,进而得到一个适合在所提供硬件约束下的高效轻量化卷进神经网络模型;利用类softmax思想,将选择权重归一松弛化,并设置合适的温度,使搜索得到的比特和推理权重选择概率矩阵近似one-hot编码,令选择概率集中化,训练时采用全精度权重,减少量化带来的误差;利用梯度下降思想,令离散化的选择空间能够高效进行搜索,更快的达到最理想的模型参数,进而节省大量的计算资源和搜索时间。
附图说明
[0046]
图1为本发明所述模型压缩方法流程示意图;
[0047]
图2为本发明所述模型压缩方法进行联合搜索过程的示意图;
[0048]
图3为本发明所述模型压缩方法进行网络推理过程的示意图。
具体实施方式
[0049]
为了使本技术领域的人员更好地理解本发明方案,以下将结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]
利用比特架构搜索,可以得到一个满足硬件约束的卷积神经网络架构;而使用离散权重搜索,可以最大化地优化一个比特卷积神经网络模型。本发明的目标是得到最优的轻量化网络模型,单纯的级联上述的两种方法,即使用比特搜索来得到比特网络架构,再使用权重搜索对其进行优化权重,这种思路简单但会有问题且无法得到最优结果。所以本发明采用二者联合搜索的方式,同时进行比特搜索和权重搜索,既可以满足现有的硬件资源,同时也能达到理想的精确度和压缩率,兼备了两种方法的优点。
[0051]
实施例1
[0052]
本实施例的联合比特量化和比特权重搜索的模型压缩方法,具体步骤如下:
[0053]
s1、加载原始图像,将原始的图像数据集切割为训练集、验证集和测试集,并对数据集进行填充、裁剪、图像增强等一系列预处理。其中训练集和验证集用于步骤s3中对卷积神经网络模型搜索和优化。
[0054]
s2、针对所处的硬件环境以及所需要的模型精确度以及复杂度,建立卷积神经网络模型,此卷积神经网络模型的建立可以依照工程的经验来建立,也可以参考现有的轻量化网络。卷积神经网络模型建立后,需要设定卷积神经网络模型中对应的比特搜索空间和权重搜索空间,其中比特搜索空间为具体的卷积层的比特数,权重搜索空间为具体比特限制下的离散比特权重。比特搜索旨在搜索卷积层的权重位宽,而权重搜索旨在搜索固定权
重比特下的权重值。
[0055]
s3、通过搭建darts_slb_conv(联合比特量化和比特权重搜索的卷积层)使用梯度搜索策略进行神经网络的搜索训练,在训练集和验证集交替搜索模型的比特限制和比特权重值。除此之外,步骤s3联合搜索比特和权重的选择空间。
[0056]
具体地:
[0057]
在联合搜索中,对于搜索中得到的比特和权重的各个选择,使用类softmax进行归一化,将其连续松弛化,进而可在训练中使用梯度下降进行优化搜索。同时也设置温度指数衰减,使搜索得到的比特和权重选择概率矩阵近似one-hot编码,使其能收敛到单一选择中。
[0058]
具体的,每一组的选择向量概率合为1,并设置温度τ指数衰减,从一个较大的数衰减到小量,如从10指数衰减至0.01会有较好的效果,使搜索得到的比特和权重选择概率矩阵近似one-hot编码。令转化张量为比特搜索的核心参量为表示权重搜索的核心参量n为量化比特的选择数量。
[0059]
对卷积神经网络模型的其中一层,设总共有n种可选择的比特数,则搜索第m个比特的选择概率由下式进行计算:
[0060][0061]
其中,ps表示比特选择概率,进而表示搜索第m个比特的选择概率,n为可选择的比特数的种数,是可学习的参数,为第m个比特数归一化前的选择权重,τ0是预先设定的衰减温度。
[0062]
进一步地,对卷积神经网络模型的其中一层,设总共有n种可选择的比特数,设第m个比特数对应有vm个可供选择的量化权重值,则搜索中第m个比特数的第i个量化权重值的选择概率由下式进行计算:
[0063][0064]
其中,p表示量化权重值的选择概率,进而添加了上下标的表示搜索中第m个比特数的第i个量化权重值的选择概率;vm表示第m个比特数对应可供选择的量化权重值的个数;是可学习的参数,为第m个比特数第j个量化权重值归一化前的选择权重,τ1为预先设定的衰减温度。
[0065]
比特量化搜索的目的是搜索得到一个在搜索空间中最优的离散比特量化网络。令该层输入为x,卷积权重为wb,偏置向量为b,则卷积层的第i个量化比特下的卷积操作表示为wb*x b;比特量化选择数量为n;对于各个比特量化选择的概率,进行上述的概率归一化计算,得到第m个比特权重选择的概率故其输出y如下:
[0066]
y=σ(wb*x b)
ꢀꢀꢀ
(15)
[0067]
其中,σ(
·
)为激活函数;wb为卷积权重,其中的元素计算式为:
[0068][0069]
其中,表示搜索第m个比特的选择概率;n为可选择的比特数的种数;为第m个量化比特的权重,其对应有vm个可供选择的量化权重值。
[0070]
比特权重搜索的目的是优化固定比特位宽下的离散权重值,提高网络精确度。v={v1,v2,

,v
2q
}为比特权重搜索量化值集合,对于q比特的v有2q个离散权重值,v集合中的第x个元素v
x
∈[0,1]为归一化后的比特权重量化值。设第m个比特数对应有vm个可供选择的量化权重值,则第m个量化比特下的连续权重元素计算如下:
[0071][0072]
比特和权重联合搜索优化网络的输出函数在网络训练时和网络推理时会有所不同。网络训练与推理时,二者的量化比特搜索方式相同,都为使用权重归一化进行松弛;而在量化权重中,训练使用松弛的连续权重进行,而推理则是使用离散的比特量化权重进行。
[0073]
联合式(16)和式(17),即联合比特量化搜索和比特权重搜索中的网络训练,输出如下:
[0074]
y=σ(w*x b)
ꢀꢀꢀ
(18)
[0075]
其中,y表示模型训练时的输出,σ(
·
)为激活函数,x为卷积层的输入,b为卷积层的偏置向量,w为训练时的卷积权重,其元素为:
[0076][0077]
进一步,推到出网络推理的输出函数,其式如下:
[0078]
y=σ(wq*x b)
ꢀꢀꢀ
(20)
[0079]
其中y表示模型训练时的输出,σ(
·
)为激活函数,x为卷积层的输入,b为卷积层的偏置向量,wq为训练时的卷积权重,其元素为:
[0080][0081]
其中,为第m个量化比特下的离散比特权重,其对应有vm个可供选择的量化权重值,其计算式如下:
[0082][0083]
[0084]
其中,im表示搜索中第m个比特数的量化权重值的选择概率最大值的位置所对应的onehot向量,即长度为vm的向量,其中对应选择权重最大值位置的元素为1,其余为0;表示onehot向量im的第j个位置的取值;vj表示比特权重搜索量化值集合v中第j个归一化的比特权重量化值;为搜索中第m个比特数的第i个量化权重值的选择概率。
[0085]
j表示搜索中比特数选择概率最大值的位置所对应的onehot向量,其计算式为
[0086][0087]
由于总共有n种可供选择的比特数,j是长度为n的向量,其中对应选择权重最大值位置的元素为1,其余为0,j
(m)
表示onehot向量j的第m个位置的取值,表示搜索第i个比特的选择概率。
[0088]
确定损失函数,由于不同的硬件平台的资源受限情况会有所不同,对此需要搜索的网络结构和参数也会有所不同。故为了在搜索时能达到对应的硬件约束,在需要在损失函数中加入计算成本的相关损失以及存储成本的相关损失。根据网络中的浮点数的运算数量和定点比特的运算数量来描述单个网络的计算成本,再计算整个选择空间下的全部网络计算成本总和为l
compute
,并使用β
compute
来作为计算成本的可调权重;同时我们也引入了存储成本的相关损失,根据网络的固定参数的存储量以及网络在运行时计算引入的对数据的缓存来描述网络的存储成本l
memory
,并同样使用γ
memory
来作为可调权重。故新增后的损失函数为:
[0089]
l=lc β
compute
·
l
compute
γ
memory
·
l
memory
ꢀꢀꢀ
(25)
[0090]
其中lc为模型的交叉熵损失。
[0091]
s4、联合搜索结束后,选取比特搜索结果中的最大概率比特位宽,以此构建新的轻量化网络,并保存联合搜索时最后以此得到的比特权重参数作为新网络的权重参数,再进行比特权重搜索来进一步优化轻量化网络模型,最后输出压缩了的优化轻量化网络模型。
[0092]
本发明所述一种联合比特量化和比特权重搜索的模型压缩方法,利用如上所述具体步骤和方法进行轻量化网络的构建以及优化。
[0093]
实施例2
[0094]
本实例中,损失函数采用
[0095]
l=lc β
compute
·
l
compute
[0096]
其中,lc为模型的交叉熵损失,l
compute
为整个选择空间下的全部网络计算成本总和,β
compute
是作为计算成本的可调权重。
[0097]
实施例3
[0098]
本实例中,损失函数采用:
[0099]
l=lc γ
memory
·
l
memory
[0100]
其中,lc为模型的交叉熵损失,l
memory
是根据网络的固定参数的存储量以及网络在运行时计算引入的对数据的缓存来描述网络的存储成本,γ
memory
用来作为存储成本的可调权重。
[0101]
对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范
围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献