一种宽度学习系统量化方法

文档序号:26555894发布日期:2021-09-08 00:52阅读:156来源:国知局
一种宽度学习系统量化方法

1.本发明涉及一种神经网络量化方法,尤其涉及一种宽度学习系统量化方法,属于模型压缩技术领域。


背景技术:

2.目前,深度神经网络在发现高维数据中的复杂结构方面十分强大,但是所有参数都需要经过反向传播调整,这需要大量的时间;另外,当输入数据发生了改变,整个网络也需要重新训练,这又会消耗很多时间。而宽度学习系统及其变体的高效判别学习算法的提出很好的解决了这个问题。
3.宽度学习系统具有两个核心:一是能够提取特征的特征映射层和增加网络非线性能力的增强层,二者同时连接到输出层;二是bls可以在输入数据改变或者其他必要的时候通过增量学习的方法来更新整个系统,因此,bls非常适合重塑和需要快速学习的应用。具体来说,宽度学习系统可表述为:输入数据通过映射和稀疏自编码器的调整生成特征节点,然后特征节点经过非线性激活函数连接形成增强节点,最后特征节点和增强节点共同形成的隐层节点连接到输出层。其中,隐层节点的所有权重和偏差都是随机生成的,只需要训练隐层和输出层之间的权重,这给模型的训练带来了极大的方便;此外,如果样本增加或者减少或者其他需要模型重新训练的情况,可以通过添加隐层节点并且只进行输出权重的训练来进行模型的快速重构,这种方式下无需从头开始训练整个网络,使得模型可以快速高效的完成训练。
4.宽度学习系统凭借其快速高效的预测能力而被广泛应用于模式识别、计算机视觉、自动控制和工业过程建模等方面。但是由于智能任务数据交互量大,宽度学习系统所需的节点和参数越来越多,这将导致模型所需要的计算量更大,占用更多的存储空间同时消耗更多的能量,这些问题限制了宽度学习系统在嵌入式等边缘应用上的部署。


技术实现要素:

5.针对上述现有技术的问题,本发明提出了一种宽度学习系统量化方法,目的在于能够更有效的利用计算机资源从而实现宽度学习系统在嵌入式终端的部署。
6.为达到上述目的,本发明提出了一种宽度学习系统量化方法,
7.包括以下步骤:
8.步骤1:数据集的处理和划分:
9.使用开源数据集进行模型的训练,首先将获得的数据集按照2:1的比例划分成训练集和测试集,训练集输入为x=(x1,x2...x
m
)
t
∈r
m
×
n
,输出为y=(y1,y2...y
m
)
t
∈r
m
×
b
,测试集输入为xx=(xx1,xx2...xx
tt
)
t
∈r
tt
×
n
,输出为yy=(yy1,yy2...yy
tt
)
t
∈r
tt
×
b

10.其中m表示训练集输入样本的数量,n表示输入样本的特征,b表示输出样本的特征,tt表示测试集输入样本的数量,t表示矩阵的转置,r表示实数域集合;
11.步骤2:权重的选择标准:
12.模型在训练过程中,权重的数值大小是动态变化的,量化的权重也是动态选择的,考虑嵌入式平台移位运算的特性,利用2的指数幂来进行权重的量化;
13.步骤3:建立lbls(lightweight broad learning system)模型:
14.首先设置好特征节点和增强节点的数量范围,然后利用网格搜索得到随机权量化之后的最佳的bls模型,网格搜索和随机权的量化是同步进行的;然后在得到的模型上对输出权重进行划分,先量化权重数值大的部分,然后通过梯度下降来训练未量化的部分以减少模型损失,整个训练过程权重分组量化和更新交替迭代进行,直到网络损失收敛得到最终的lbls模型为止;
15.步骤4:评价建立的模型的性能
16.通过模型的预测能力、测试集上模型的推理时间、权重占用的内存来评价lbls模型的性能,模型预测能力越强、推理时间越快、权重占用内存空间越小表示我们的方法更具有实用性,建立的模型性能越好同时更符合轻量化的目标。
17.进一步,所述步骤2中,权重的选择表示为集合
18.p={
±2i
},0≤i≤b
ꢀꢀ
(11)
19.其中b是权重量化时可选择的最大比特,然后权重将在集合p中取值;
20.通过公式(2)来确定i的大小,从而选择出权重的最佳比特位宽:
[0021][0022]
其中w
i
为量化前的浮点型权重,w
i_quant
为量化后的权重,err为量化前后权重的误差。
[0023]
进一步,所述步骤3具体包括以下步骤:
[0024]
步骤3.1:随机权进行量化:
[0025]
步骤3.1.1:首先,输入数据通过公式(3)形成特征节点矩阵z
r
=[z1,z2...z
r
]
[0026]
z
z
=φ(xw
z

z
)s.t.w
z

z
∈p z=1.2...r
ꢀꢀ
(13)
[0027]
其中z
z
是特征节点,φ(*)映射函数,x是训练集的输入数据,w
z
是特征层内量化之后的权重,β
z
是特征层内量化之后的偏置,r是特征节点的组数,p是公式(1)表示的集合,x是输入数据;
[0028]
步骤3.1.2:其次,特征节点经过公式(4)形成增强节点矩阵h
t
=[h1,h2...h
t
]
[0029]
h
h
=ξ(zw
h

h
)s.t.w
h

h
∈p h=1.2...t
ꢀꢀ
(14)
[0030]
其中h
h
是增强节点,ξ(*)是激活函数,w
h
是增强层内量化之后的权重,βh
h
是增强层内量化之后的偏置,t增强节点的组数,z是特征节点矩阵;
[0031]
步骤3.1.3:隐层节点的形成:
[0032]
通过将特征节点和增强节点组合成隐层,通过公式(5)得到隐层矩阵a;
[0033]
a=[z
r
|h
t
]
ꢀꢀ
(15)
[0034]
步骤3.1.4:得到浮点型输出权重:
[0035]
通过将隐层节点连接到输出层,模型的结构就已经确定了,通过优化公式(6)得到未经过量化的输出权重:
[0036][0037]
然后通过求伪逆或者梯度下降的方式来得到输出权重w;
[0038]
直接求伪逆的方式得到输出权重w,此时输出权重还未进行量化:
[0039]
w=(a
t
a+λi)
‑1a
t
y
ꢀꢀ
(17)
[0040]
以上就是一个随机权经过量化后的模型的建立过程,量化的随机权的选择都是在训练过程中动态选择的;
[0041]
步骤3.2:确定随机权经过量化后的最佳模型:
[0042]
首先,设置隐层节点数量的范围,然后采用网格搜索的方式选择出随机权经过量化的最佳模型,对隐层节点的不同组合,在搜索最佳模型的过程中随机权的数值是不断变化的,通过设置最大的权重位宽,使得在搜索过程中量化的随机权朝着网络损失最小的方向变化,通过这种方式,避免随机权重因为量化而造成的精度损失,从而选择出最佳的随机权量化后的模型,同时为下一步输出权重的量化做准备;
[0043]
步骤3.3:输出权重的量化:
[0044]
步骤3.3.1:根据公式(7)求出的输出权重进行动态划分,默认数值大的权重可以发挥更好的预测作用,划分的方式依据数据集和节点的不同有不同的标准,具体如公式(8)所示;
[0045]
w
q
=λw
ꢀꢀ
(18)
[0046]
其中w
q
为将要量化的权重,λ为划分的比例,一般有0.2,0.4,0.6,0.8等,w为经过公式(7)得到的浮点型的输出权重;
[0047]
步骤3.3.2:确定所有权重经过量化后的lbls模型
[0048]
权重划分之后,针对数值较大的权重进行量化,之后通过梯度下降的方式对剩余的权重再训练,重复这项操作直到量化所有输出权重;
[0049]
通过优化公式(9)来重新训练剩余的浮点型输出权重以减少模型的损失:
[0050][0051]
其中e(w
qout
)是模型的损失,r(w
qout
)是正则化项,采用的是l2范数正则化项,λ是正则化项的系数;在进行反向传播时更新浮点型权重,如公式(10)所示
[0052][0053]
其中w
qoutk+1
是迭代更新之后的权重,w
k
是浮点型权重,ε是梯度下降的学习率,k是迭代的次数;
[0054]
根据权重的划分比例,依次对权重进行量化,对剩余权重进行重新训练来减少模型的损失,最终完成对所有权重的量化,得到一个轻量化的宽度学习系统模型。
[0055]
进一步,所述步骤4中,预测能力采用均方根误差rmse来表示,rmse越小表示模型预测准确性越好;其中s表示样本个数,y
t
为测试集的输出数据,x
t
为测试集的输入数据,w为训练时求解的输出权重,x
t
w为模型的预测值。
[0056]
本发明的有益效果是:本发明在保持甚至提升模型性能的同时可以得到一个轻量级宽度学习系统,使其更易部署在移动端等边缘应用上。
[0057]
本发明针对嵌入式硬件平台的特性对模型参数的字长进行优化,可最小化用于存储权重的内存大小和存储器访问需求,可以大大降低用于硬件实现的宽度学习系统的复杂
性;其次,通过结合神经网络架构搜索和分组量化的技术来减少参数量化导致的误差而进一步提升宽度学习系统模型的执行性能。
附图说明
[0058]
图1为本发明提出的lbls模型的训练流程;
[0059]
图2为普通bls模型的浮点型输出权值分布图;
[0060]
图3为本发明提出的lbls模型的整型输出权值的分布图。
具体实施方式
[0061]
下面将结合说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有开展创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]
本发明针对嵌入式硬件平台的特性对模型参数的字长进行优化,参数的字长就是权重所占用的位宽。如图1

3所示,本实施例中采用回归数据集(housing)来说明本发明的可行性,数据集中包含了一些加州地产的特征,以此来预测加州的房价。
[0063]
在具体实施中,先将数据集按照2:1的比例划分为数据集和测试集;然后设置初始的特征节点和增强节点的范围,并且设置量化时权重的最大比特,给出量化权重的选择范围;接下来利用搜索的方式从众多候选模型中选出最佳的随机权量化的模型;最后交替对输出权重分组量化和浮点型权重再训练直至权重全部量化并且模型收敛,实验结果表明本发明提出的方法在不损失模型性能的同时可以对模型中所有权重量化,最终获得一个轻量级的宽度学习系统模型。
[0064]
步骤1:将数据集按照2:1的比例划分为训练集和测试集:
[0065]
本发明使用开源数据集进行模型的训练,首先将获得的数据集按照一定比例划分成训练集和测试集,训练集输入为x=(x1,x2...x
m
)
t
∈r
m
×
n
,输出为y=(y1,y2...y
m
)
t
∈r
m
×
b
,测试集输入为xx=(xx1,xx2...xx
tt
)
t
∈r
tt
×
n
,输出为yy=(yy1,yy2...yy
tt
)
t
∈r
tt
×
b
。其中m表示训练集输入样本的数量,n表示输入样本的特征,b表示输出样本的特征,tt表示测试集输入样本的数量,t表示矩阵的转置,r表示实数域集合。
[0066]
步骤2:权重的选择标准:
[0067]
模型在训练过程中,权重的数值大小是动态变化的,本发明考虑了这种特性,量化的权重也是动态选择的,同时,本发明考虑了嵌入式平台移位运算的特性,利用2的指数幂来进行权重的量化,具体来说,权重的选择可以表示为集合
[0068]
p={
±2i
},0≤i≤b
ꢀꢀ
(21)
[0069]
其中b是权重量化时可选择的最大比特,然后权重将在集合p中取值。接下来本发明通过公式(2)来确定i的大小,从而选择出权重的最佳比特位宽。
[0070][0071]
其中w
i
为量化前的浮点型权重,w
i_quant
为量化后的权重,err为量化前后权重的误
差。
[0072]
步骤3:建立lbls(lightweight broad learning system)模型:
[0073]
首先设置好特征节点和增强节点的数量范围,然后利用网格搜索得到随机权量化之后的最佳的bls模型,网格搜索和随机权的量化是同步进行的;然后在得到的模型上对输出权重进行划分,先量化权重数值大的部分,然后通过梯度下降来训练未量化的部分以减少模型损失,整个训练过程权重分组量化和更新交替迭代进行,直到网络损失收敛得到最终的lbls模型为止。具体如以下步骤:
[0074]
步骤3.1:随机权进行量化:
[0075]
在进行模型搜索之前,本发明先介绍随机权重量化后的模型构建过程,然后在众多的可候选模型中选择出最佳的模型。
[0076]
步骤3.1.1:首先,输入数据通过公式(3)形成特征节点矩阵z
r
=[z1,z2...z
r
]
[0077]
z
z
=φ(xw
z

z
)s.t.w
z

z
∈p z=1.2...r
ꢀꢀ
(23)
[0078]
其中z
z
是特征节点,φ(*)映射函数,x是训练集的输入数据,w
z
是特征层内量化之后的权重,β
z
是特征层内量化之后的偏置,r是特征节点的组数,p是公式(1)表示的集合,x是输入数据。
[0079]
步骤3.1.2:其次,特征节点经过公式(4)形成增强节点矩阵h
t
=[h1,h2...h
t
]
[0080]
h
h
=ξ(zw
h

h
)s.t.w
h

h
∈p h=1.2...t
ꢀꢀ
(24)
[0081]
其中h
h
是增强节点,ξ(*)是激活函数,w
h
是增强层内量化之后的权重,β
h
是增强层内量化之后的偏置,t增强节点的组数,z是特征节点矩阵。
[0082]
步骤3.1.3:隐层节点的形成:
[0083]
通过将特征节点和增强节点组合成隐层,可通过公式(5)得到隐层矩阵a;
[0084]
a=[z
r
|h
t
]
ꢀꢀ
(25)
[0085]
步骤3.1.4:得到浮点型输出权重:
[0086]
通过将隐层节点连接到输出层,模型的结构就已经确定了,通过优化公式(6)可以得到未经过量化的输出权重。
[0087][0088]
然后可以采用求伪逆或者梯度下降的方式来得到输出权重w,为了快速计算,本发明采用直接求伪逆的方式得到输出权重,此时注意输出权重还未进行量化。
[0089]
w=(a
t
a+λi)
‑1a
t
y
ꢀꢀ
(27)
[0090]
以上就是一个随机权经过量化后的模型的建立过程,可以看出,量化的随机权的选择都是在训练过程中动态选择的。
[0091]
步骤3.2:确定随机权经过量化后的最佳模型:
[0092]
首先,设置隐层节点数量的范围,然后采用网格搜索的方式选择出随机权经过量化的最佳模型,对隐层节点的不同组合,在搜索最佳模型的过程中随机权的数值是不断变化的,本发明通过设置最大的权重位宽,使得在搜索过程中量化的随机权朝着网络损失最小的方向变化,通过这种方式,本发明可以避免随机权重因为量化而造成的精度损失,从而选择出最佳的随机权量化后的模型,同时为下一步输出权重的量化做准备。
[0093]
步骤3.3:输出权重的量化:
[0094]
步骤3.3.1:根据公式(7)求出的输出权重进行动态划分,这里我们默认数值大的权重可以发挥更好的预测作用,划分的方式依据数据集和节点的不同有不同的标准,具体如公式(8)所示;
[0095]
w
q
=λw
ꢀꢀ
(28)
[0096]
其中w
q
为将要量化的权重,λ为划分的比例,一般有0.2,0.4,0.6,0.8等,w为经过公式(7)得到的浮点型的输出权重。
[0097]
步骤3.3.2:确定所有权重经过量化后的lbls模型
[0098]
权重划分之后,本发明针对数值较大的权重进行量化,之后通过梯度下降的方式对剩余的权重再训练,重复这项操作直到量化所有输出权重。本发明通过优化公式(9)来重新训练剩余的浮点型输出权重以减少模型的损失。
[0099][0100]
其中e(w
qout
)是模型的损失,r(w
qout
)是正则化项,本发明实验用的是l2范数正则化项,λ是正则化项的系数。在进行反向传播时更新浮点型权重,如公式(10)所示
[0101][0102]
其中w
qoutk+1
是迭代更新之后的权重,w
k
是浮点型权重,ε是梯度下降的学习率,k是迭代的次数。根据权重的划分比例,依次对权重进行量化,对剩余权重进行重新训练来减少模型的损失,最终完成对所有权重的量化,得到一个轻量化的宽度学习系统模型。
[0103]
步骤4:评价建立的模型的性能
[0104]
本发明通过模型的预测能力、测试集上模型的推理时间、权重占用的内存来评价lbls模型的性能,其中预测能力我们采用均方根误差rmse来表示,rmse越小表示模型预测准确性越好。其中s表示样本个数,y
t
为测试集的输出数据,x
t
为测试集的输入数据,w为训练时求解的输出权重,x
t
w为模型的预测值。
[0105]
表1给出了本发明提出的lbls模型和bls模型在测试集上的各项对比,表中各项数据都可体现出本发明的有效性。首先,bls和lbls对加州房价的预测误差几乎一致,甚至只量化随机权重的时候lbls模型预测能力更强;其次,lbls模型节点个数较少,当然推理时间也更快,而且通过对模型的参数字长进行优化之后,权重占用的内存更少并且对存储器的访问需求也更低,这是因为参数的位宽变小,存储器一次可以访问更多的参数。
[0106]
表1
[0107][0108]
以上所述仅为本发明的示例性实施例,并不用以限制本发明,凡在本发明的精神
和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1