一种三值神经网络逐层优化方法技术

技术编号:34688256 阅读:6 留言:0更新日期:2022-08-27 16:21
本发明专利技术涉及一种三值神经网络逐层优化方法,属于深度学习训练算法技术领域,本方法使用训练集进行逐层量化,每层量化基于前一层的量化结果进行,从第一层开始逐层量化训练深度神经网络模型的权重,每次训练仅量化所述神经网络模型中一层的权重,采用了量化器与权重同时训练的神经网络训练方法,直至最后一层量化训练完成,完成神经网络的量化,保存量化后的网络模型,量化精度更高,运算存储成本更低,大大扩大深度神经网络的应用范围。大扩大深度神经网络的应用范围。大扩大深度神经网络的应用范围。

【技术实现步骤摘要】
一种三值神经网络逐层优化方法


[0001]本专利技术涉及一种三值神经网络逐层优化方法,属于深度学习训练算法


技术介绍

[0002]近年来,深度神经网络在计算机视觉、语义识别等领域得到了广泛的应用。然而,其所拥有的优良性能是以超多数量的参数和巨大的计算成本为代价的。因此,将优良性能的深度神经网络部署至计算机软件、移动设备等仅能提供有限资源(计算能力、存储能力等)的设备时将面临诸多挑战,这也引发了对于深度学习模型压缩的研究。在图像分类、目标检测、自然语言处理等图像相关的深度学习任务应用至移动设备时,执行这类任务通常使用AlexNet等大型深度学习网络才能达到良好的效果,而应用至移动设备时需要对神经网络进行量化再应用。
[0003]目前,深度学习模型压缩主要包括通道裁剪、权重量化、权重稀疏等。其中,权重量化主要采用将模型的参数用比浮点型更低比特的整数型来替代,从而达到存储和计算层面的加速效果。权重三值化则是权重量化的一种特殊情形,其将浮点型权重量化为由

1,0,1构成的三元情形,大大降低了模型的大小,而采用该量化方法的量化神经网络称为三值神经网络。
[0004]现有的三值量化技术的缺陷在于:给定量化器对量化权重进行训练,造成无法避免的精度损失;对深度神经网络的所有层进行量化并同时训练,造成训练计算成本巨大。
[0005]因此,目前亟需一种同时对三值量化器和神经网络优化的逐层优化方法,以解决上述技术问题。

技术实现思路

[0006]针对现有技术的不足,本专利技术提供一种三值神经网络逐层优化方法。
[0007]本专利技术的技术方案如下:
[0008]一种三值神经网络逐层优化方法,包括:
[0009]步骤1、获取已训练的深度神经网络模型作为待量化的神经网络模型;或加载神经网络模型,对所述神经网络模型采用传统神经网络训练方法进行预训练,获得预训练的深度神经网络模型;
[0010]步骤2、从第一层开始逐层量化训练深度神经网络模型的权重,每次训练仅量化所述神经网络模型中一层的权重,直至最后一层量化训练完成,完成神经网络的量化,保存量化后的网络模型。
[0011]优选的,步骤2中,假设前j层权重已量化完成,现对第j+1层权重进行量化训练,具体步骤包括:
[0012]前向传播,计算输出和真实标签的损失函数;
[0013]反向计算损失关于第j+1层至最后一层权重的梯度并更新权重;
[0014]由截断高斯分布确定神经网络第j+1层的最优放缩因子和最优三值量化器,网络
模型的第j+1层量化完成。
[0015]进一步优选的,步骤2中,对第j+1层权重进行量化训练的步骤包括如下:
[0016]步骤21,获取前j层已量化完成的L层深度神经网络模型,第j层的输出为要对第j+1层进行量化。
[0017]步骤22,首先是权重更新阶段,前向传播计算最终输出与真实标签的损失以及损失关于j+1层至L层的梯度,更新第j+1层至L层的权重,从j+1层至L层都同时更新一次;
[0018]前向传播计算损失:
[0019][0020]其中为第j层的输出;为第L层的输出,即预测标签;Y
true
为真实标签;CrossEntrop(
·
)为交叉熵损失函数。
[0021]更新第j+1层至L层的权重:
[0022][0023]其中,W
i
为第i层的权重,W
inew
为第i层的更新后的权重,i=j+1,

,L,为损失关于第i层权重的梯度,η为学习率。
[0024]步骤23,接下来进入量化器训练阶段,首先确定网络模型更新后的第j+1层权重的初始化放缩因子和初始化三值量化器即量化阈值;
[0025]在具体实施中,可选的,初始化量化阈值可任取以下选择:δ
l
=0.05max(|W
l
|),δ
l
=0.1max(|W
l
|),δ
l
=0.15max(|W
l
|),W
l
为第l层的权重;放缩因子通过公式(3)根据量化阈值来确定。
[0026]步骤24,由放缩因子和三值量化器量化第j+1层权重,再次前向传播计算输出与真实标签的损失以及损失关于j+1层量化阈值的梯度,更新j+1层量化阈值,得到新的放缩因子和新的三值量化器。
[0027]在具体实施中,优选的,放缩因子的确定方式为:
[0028][0029]其中,μ
j+1
为第j+1层权重矩阵所有元素的均值;σ
j+1
为第j+1层权重矩阵所有元素的标准差;δ
j+1
为第j+1层量化阈值,第一次进行量化器寻优时使用步骤23中的初始化量化阈值;为标准正态分布的密度函数;Φ(
·
)为标准正态分布的分布函数;
[0030]在具体实施中,优选的,量化器的确定方式为:
[0031][0032]其中,w
j+1,i
为第j+1层权重矩阵的元素;μ
j+1
为第j+1层权重矩阵所有元素的均值;δ
j+1
为第j+1层量化阈值,第一次进行量化器寻优时使用步骤23中的初始化量化阈值;
[0033]再次前向传播计算输出与真实标签的损失:
[0034][0035]其中,为第j层的输出;W
new
为第j+1层至第L层的权重,W
j+1
=S(μ
j+1

j+1

j+1
)*Ter(w
j+1,i

j+1

j+1
)的为上述量化操作后的量化权重,W
j+2
,

,W
L
为步骤22中更新后的权重;为第L层的输出,即预测标签;Y
true
为真实标签;CrossEntrop(
·
)为交叉熵损失函数;
[0036]更新j+1层量化阈值:
[0037][0038]其中,δ
j+1
为第j+1层的量化阈值,i=j+1,

,L,为损失关于第j+1层的量化阈值的梯度,η为学习率。
[0039]将j+1层新的量化阈值带入,得到新的放缩因子:
[0040][0041]新的三值量化器量化器:
[0042][0043]其中,其中,w
j+1,i
为第j+1层权重矩阵的元素;μ
j+1
为第j+1层权重矩阵所有元素的均值;σ
j+1
为第j+1层权重矩阵所有元素的标准差;为新的第j+1层量化阈值;为标准正态分布的密度函数;Φ(
·
)为标准正态分布的分布函数。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三值神经网络逐层优化方法,其特征在于,包括步骤如下:步骤1、获取已训练的深度神经网络模型作为待量化的神经网络模型;或加载神经网络模型,对所述神经网络模型采用传统神经网络训练方法进行预训练,获得预训练的深度神经网络模型;步骤2、从第一层开始逐层量化训练深度神经网络模型的权重,每次训练仅量化所述神经网络模型中一层的权重,直至最后一层量化训练完成,完成神经网络的量化,保存量化后的网络模型。2.根据权利要求1所述的三值神经网络逐层优化方法,其特征在于,步骤2中,假设前j层权重已量化完成,现对第j+1层权重进行量化训练,对第j+1层权重的量化训练具体步骤包括:前向传播,计算输出和真实标签的损失函数;反向计算损失关于第j+1层至最后一层权重的梯度并更新权重;由截断高斯分布确定神经网络第j+1层的最优放缩因子和最优三值量化器,网络模型的第j+1层量化完成。3.根据权利要求2所述的三值神经网络逐层优化方法,其特征在于,步骤2中,对第j+1层权重进行量化训练的步骤包括如下:步骤21,获取前j层已量化完成的L层深度神经网络模型,第j层的输出为要对第j+1层进行量化;步骤22,首先是权重更新阶段,前向传播计算最终输出与真实标签的损失以及损失关于j+1层至L层的梯度,更新第j+1层至L层的权重,从j+1层至L层都同时更新一次;前向传播计算损失:其中为第j层的输出;为第L层的输出,即预测标签;Y
true
为真实标签;CrossEntrop(
·
)为交叉熵损失函数;更新第j+1层至L层的权重:其中,W
i
为第i层的权重,W
inew
为第i层的更新后的权重,i=j+1,

,L,为损失关于第i层权重的梯度,η为学习率;步骤23,接下来进入量化器训练阶段,首先确定网络模型更新后的第i+1层权重的初始化放缩因子和初始化三值量化器即量化阈值;步骤24,由放缩因子和三值量化器量化第j+1层权重,再次前向传播计算输出与真实标签的损失以及损失关于j+1层量化阈值的梯度,更新j+1层量化阈值,得到新的放缩因子和新的三值量化器;步骤25,采用新的放缩因子和新的三值量化器量化第j+1层权重,前向传播计算损失,再次进行步骤24前向传播计算损失,若损失不再下降,则收敛;若损失下降,则重复步骤24:前向传播计算损失:
步骤26,此时的放缩因子和三值量化器为第j+1层权重的最优放缩因子和三值量化器,网络模型的第j+1层量化完成。4.根据权利要求3所述的三值神经网络逐层优化方法,其特征在于,步骤24中,放缩因子的确定方式为:其中,μ
j+1
为第j+1层权重矩阵所有元素的均值;σ

【专利技术属性】
技术研发人员:尹晓敏刘福涛王付奎王馨悦鲁威志李晓磊曹维达姜秋波万月忠李振玲徐彪李云龙杨超尘陈芳
申请(专利权)人:国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1