一种基于近似乘法的神经网络混合近似及误差补偿方法

文档序号:31637915发布日期:2022-09-24 05:40阅读:72来源:国知局
一种基于近似乘法的神经网络混合近似及误差补偿方法

1.本发明涉及人工神经网络与计算技术领域,具体而言涉及一种基于近似乘法的神经网络混合近似及误差补偿方法。


背景技术:

2.深度神经网络作为典型的人工智能算法,被广泛应用于解决分类、检测和识别问题,随着应用场景的复杂和多元化,网络向着更深更大的规模发展,对算力和内存的需求也随之提高。随着对深度学习方法的进一步研究,新开发的深度神经网络越来越复杂,对承载其功能实现的硬件性能要求越来越高。目前一些主流神经网络的参数量已达到数百兆比特级别,运算量达到十亿甚至百亿级别。例如,vgg16共有16层,由1.38亿个参数组成,总计需要15.5g次乘累加计算。然而,神经网络的复杂度仍然在保持高速增长。从硬件角度来看,算力的瓶颈制约着神经网络的发展。
3.先前的工作以网络的冗余度为出发点,利用规则或非规则剪枝技术对神经网络模型进行压缩,再通过掩码覆盖的方式重训练恢复精度,这样以一定精度损失为代价能够将模型压缩到资源约束型设备例如无人机或其他便携式多媒体设备上。随着各种剪枝技术的提出,模型压缩已接近极致,现在的一些工作将重点放在神经网络固有的容错特性上,开始在网络中结合近似计算技术,深度神经网络由于特有的分层式分布结构和训练方式使得其本身能够容忍一定程度的错误,因此在一定范围内的近似通过重训练步骤之后只会造成很小的精度损失,更可观的是一些近似乘法器由于本身的误差特性会带来神经网络分类精度的提高,这意味着只需要微小的网络精度损失或者不需要精度损失,就能显著降低硬件上的功耗、面积和延迟。
4.在神经网络中使用近似计算单元带来硬件加速的同时,也提出了新的挑战,以乘法器的替换为例,在网络中全局使用同一种近似乘法器会引入误差,这种误差会随着网络层数的加深而累积,甚至会导致网络无法收敛。
5.公开号为cn107153522a的发明中公开了一种面向人工神经网络计算的动态精度可配近似乘法器,该动态精度可配近似乘法器在外部控制信号的控制下,根据数据的输入特性可以实现乘法运算的精度动态配置,并给出精确结果的近似结果。该动态精度可配近似乘法器带来的精度损失在可接受的范围内,同时提高了乘法的计算速度,大大降低功耗,满足了人工神经网络的计算需求。公开号为cn113253973a的发明中公开了一种适用于神经网络数据和权重预分类的近似计算装置及方法,神经网络的权重参数预先处理,根据由最低位起连续
‘0’
的个数进行精细分类,输入数据根据同样特征进行简单分类,二者结合作为配置近似方案的重要依据;通过控制全加器加法树累加电路与低位或近似加法器累加电路的近似线位置,配置具有不同近似程度的近似计算阵列。针对神经网络模型的权重参数往往是已知且固定这一特点,对权重参数进行精细预分类处理,并根据输入系统数据的特征精细简单二分类处理,二者结合动态选择具有不同配置的近似乘法运算阵列,使近似方案的选择精确、实时地匹配对应数据和权重的特征,克服了现有近似乘法动态配置方案的盲
目性、滞后性和复杂性。
6.然而前述发明均没有涉及不同应用场景下的混合近似,以实现对网络的更细粒度的划分,更加不涉及该种混合近似情况下的误差补偿策略。


技术实现要素:

7.本发明针对现有技术中的不足,提供一种基于近似乘法的神经网络混合近似及误差补偿方法,设计了两种混合近似方案,对网络进行更细粒度的划分,以层或者以权重为单位选择不同的近似乘法器进行替换;同时还针对近似神经网络的精度恢复提出了误差补偿策略。
8.为实现上述目的,本发明采用以下技术方案:
9.一种基于近似乘法的神经网络混合近似及误差补偿方法,所述神经网络混合近似及误差补偿方法包括以下步骤:
10.s1,对导入的神经网络模型的网络结构进行分析,获取其所包含的所有卷积层和全连接层;结合该神经网络网络所加载的硬件加速器的性能参数,调用由若干个近似乘法器组成近似乘法器数据库,作为对应的搜索空间,搜索空间内的近似乘法器数量与卷积核大小相适配;
11.s2,将搜索空间内的所有已知近似乘法器的二进制真值表加入神经网络模型的推理路径,根据神经网络模型对应的应用场景的实际需求,对神经网络模型中的卷积层和全连接层采用的精确乘法进行混合近似:其中,神经网络模型的推理路径是指神经网络参数的前向传输和运算,包括一系列乘累加、归一化和池化;
12.当应用场景以节约更多硬件资源为目标,采用逐层混合近似;具体地,对预训练的神经网络模型按层划分,逐层从近似乘法器数据库中选择对应的近似乘法器,每层使用近似乘法器之前的权重分布d和使用选择的近似乘法器之后的等效权重分布d
*
之间的相关系数ρ大于预设的相关系数阈值,进行逐层混合近似;
13.当应用场景以获得更高网络精度为目标,采用逐权重混合近似;具体地,对预训练的神经网络模型按权重划分,为每个权重从近似乘法器数据库中选择方差关联品质因子最小的近似乘法器,进行逐权重混合近似;
14.s3,将神经网络模型加载至相应的硬件加速器,在神经网络模型运作过程中,采用筛选出的近似乘法器对神经网络模型的卷积层和全连接层中的所有精确乘法进行运算;其中,对混合近似后的神经网络模型进行误差补偿,误差补偿过程包括:
15.以近似乘法器的错误距离均方根最小为约束,在神经网络推理阶段对权值进行微调并更新;错误距离均方根rms_ed的计算公式为:
[0016][0017]
式中,m为一个n-bit近似乘法器,a
p
和bq为近似乘法器的两个输入操作数,p=0,1,2,

,2
n-1,q=0,1,2,

,2
n-1。
[0018]
进一步地,所述神经网络混合近似及误差补偿方法还包括以下步骤:
[0019]
将待评估的二进制真值表加入神经网络模型的推理路径,计算混合近似和误差补
偿后的神经网络的实际精度损失,根据计算得到的实际精度损失对待评估的二进制真值表进行评估。
[0020]
进一步地,步骤s2中,逐层混合近似的过程包括以下子步骤:
[0021]
s21,对预训练的神经网络模型按层划分,得到层集合l={l1,l2,

,li,

,lm};获取预训练的神经网络模型的权重分布d={d1,d2,

,di,

,dm};统计得到近似乘法器数据库m={m1,m2,

,mj,

,mn};
[0022]
s22,选择近似乘法器数据库中的其中一个近似乘法器mj,将其分别布局至神经网络模型中的每一层中,计算得到该近似乘法器mj对应的神经网络模型的等效权重分布重分布
[0023]
s23,重复步骤s22,直至计算得到所有近似乘法器对应的神经网络模型的等效权重分布;
[0024]
s24,选择层li,计算得到使用近似乘法器mj之前的权重分布和使用近似乘法器mj之后的等效权重分布之间的相关系数ρ
ij

[0025]
s25,筛选得到相关系数ρ
ij
大于相关系数阈值α的近似乘法器,作为层li对应的备选近似乘法器;
[0026]
s26,重复步骤s24-s25,直至完成所有层的近似乘法器筛选。
[0027]
进一步地,步骤s2中,逐层混合近似的过程还包括以下子步骤:
[0028]
计算每个备选近似乘法器对应的功耗和面积,从备选近似乘法器中剔除功耗大于功耗阈值或者面积大于面积阈值的近似乘法器。
[0029]
进一步地,步骤s2中,逐层混合近似的过程还包括以下子步骤:
[0030]
选择相关系数ρ
ij
最小的近似乘法器mj作为层li的近似乘法器。
[0031]
进一步地,步骤s2中,逐权重混合近似的过程包括以下步骤:
[0032]
对预训练的神经网络模型按权重划分,得到权重集合w={w1,w2,

,wk,

,wh};统计得到近似乘法器数据库m={m1,m2,

,mj,

,mn};
[0033]
针对每个权重wk,根据下述公式计算得到每个近似乘法器mj的方差关联品质因子:
[0034]
vfom(mj|wk,x)=pdpj×
delayj×
areaj×
vedj[0035]
式中,wk与x是近似乘法器mj的两个输入操作数,pdpj、delayj和areaj是近似乘法器mj的硬件评估指标,分别代表功率延迟积、延迟和面积;vedj是近似乘法器mj的误差评估指标,代表错误距离方差;
[0036]
选择方差关联品质因子最小的的近似乘法器作为权重wk的近似乘法器m
optimal

[0037]
进一步地,步骤s3中,对混合近似后的神经网络模型进行误差补偿的过程包括以下步骤:
[0038]
在固定n-bit乘法器的情况下,对每个神经网络模型的权值w,以均匀分布遍历另一个与之相乘的乘数,并将产生的错误距离方差逐次累加得到方差和e;再对w进行[0,2
n-1]范围内的更新,每更新一次权值,对e进行逐次比较,直到找到使e最小的w
*
,作为更新后的权值。
[0039]
本发明的有益效果是:
[0040]
与现有用噪声模拟近似乘法器的算法相比,本发明可以用最接近真实情况的方法
测量近似乘法器的应用为神经网络带来的精度损失,能够更精确地指导网络友好型乘法器的设计。与现有近似乘法器在网络中的应用方式相比,混合近似不仅能取得更小的精度损失,还能节约更多的硬件能耗。大量的重训练步骤是恢复精度的必要手段,选择合适的学习率、学习策略以及迭代轮次,即使在gpu上重训练也是非常耗时的,因此,与现有的重训练算法相比,本发明更节约算力和时间成本。
附图说明
[0041]
图1是本发明实施例的近似乘法器在神经网络中的应用整体技术路线。
[0042]
图2是本发明实施例的逐层混合近似神经网络的流程示意图。
[0043]
图3是本发明实施例的逐权重混合近似神经网络的流程示意图。
[0044]
图4是基于rms_ed的误差补偿算法原理图。
[0045]
图5是基于混合近似乘法器的处理单元阵列示意图。
具体实施方式
[0046]
现在结合附图对本发明作进一步详细的说明。
[0047]
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0048]
本发明实施例提出了一种基于近似乘法的神经网络混合近似及误差补偿方法,该神经网络混合近似及误差补偿方法包括以下步骤:
[0049]
s1,对导入的神经网络模型的网络结构进行分析,获取其所包含的所有卷积层和全连接层;结合该神经网络网络所加载的硬件加速器的性能参数,调用由若干个近似乘法器组成近似乘法器数据库,作为对应的搜索空间,搜索空间内的近似乘法器数量与卷积核大小相适配。
[0050]
s2,将搜索空间内的所有已知近似乘法器的二进制真值表加入神经网络模型的推理路径,根据神经网络模型对应的应用场景的实际需求,对神经网络模型中的卷积层和全连接层采用的精确乘法进行混合近似:其中,神经网络模型的推理路径是指神经网络参数的前向传输和运算,包括一系列乘累加、归一化和池化等,本发明只对其中的乘法做近似。
[0051]
当应用场景以节约更多硬件资源为目标,采用逐层混合近似;具体地,对预训练的神经网络模型按层划分,逐层从近似乘法器数据库中选择对应的近似乘法器,每层使用近似乘法器之前的权重分布d和使用选择的近似乘法器之后的等效权重分布d
*
之间的相关系数ρ大于预设的相关系数阈值,进行逐层混合近似。
[0052]
当应用场景以获得更高网络精度为目标,采用逐权重混合近似;具体地,对预训练的神经网络模型按权重划分,为每个权重从近似乘法器数据库中选择方差关联品质因子最小的近似乘法器,进行逐权重混合近似。
[0053]
s3,将神经网络模型加载至相应的硬件加速器,在神经网络模型运作过程中,采用筛选出的近似乘法器对神经网络模型的卷积层和全连接层中的所有精确乘法进行运算;其中,对混合近似后的神经网络模型进行误差补偿,误差补偿过程包括:
[0054]
以近似乘法器的错误距离均方根最小为约束,在神经网络推理阶段对权值进行微
调并更新;错误距离均方根rms_ed的计算公式为:
[0055][0056]
式中,m为一个n-bit近似乘法器,a
p
和bq为近似乘法器的两个输入操作数,p=0,1,2,

,2
n-1,q=0,1,2,

,2
n-1。
[0057]
如图1所示,本实施例的神经网络混合近似及误差补偿方法,先对神经网络模型的网络结构进行分析,深度神经网络通常包含卷积层、池化层和全连接层,神经网络的卷积层和全连接层又可以细化为一系列乘累加操作,本实施例主要针对这两种层中的乘法进行近似,技术重点在于如何选择近似乘法器对其中的乘法进行运算。
[0058]
本实施例的神经网络模型可以采用多层感知器(mlp,multi-layer perceptron)和卷积神经网络(cnn,convolutional neural network)等。在本实施例中,对神经网络模型的应用场景不做具体限定,但会对硬件资源或者网络精度有所约束。例如,同样的以识别图像中小目标为功能的神经网络模型,当其运行在pc机上时,硬件资源充足,此时可能会对网络精度提出更要的需求,倾向于选择能够提高网络精度的近似乘法器进行乘法运算;当其运行在无人机上时,硬件资源不足,此时会更倾向于选择一些能够节约更多硬件资源的近似乘法器进行乘法运算。又例如,同时运行在一台pc机上的两个不同的神经网络模型,一为动作识别,一为小目标识别,两者对网络精度的要求也有可能不同,假设以动作识别为目的的神经网络模型对网络精度的要求较低,则可以采用逐层混合近似的方法节约更多的硬件资源给小目标识别的神经网络,使后者采用逐权重混合近似的方法来提高小目标识别精度,从而实现对硬件资源的合理分配。
[0059]
在本实施例中,现有的近似乘法器,如对数乘法器、布斯乘法器以及自动综合生成的evoapproxlib乘法器库等均可以被调用。然而,由于硬件加速器的规模有限,在确认神经网络模型的网络结构的同时,我们还需要同步确认其所加载到硬件加速器的规模参数或者性能参数。硬件加速器的规模参数或者性能参数包括逻辑单元数量、计算单元数量以及片上存储空间等等。本实施例根据乘法器硬件性能粗略选择出若干个与神经网络模型和硬件资源相适配的近似乘法器数据库;例如,当根据硬件功耗和面积筛选近似乘法器库数据库时,面积越小的近似乘法器可以在硬件加速器上部署的数量就越多;而功耗越小的近似乘法器越省电,相对应的,单个近似乘法器的运算精度可能会受到限制等等。优选的,搜索空间中的近似乘法器的数量能够和卷积核大小相适配,混合近似效果更佳,如图5所示,3
×
3大小的卷积核卷积时每次有九个乘积相累加,混合率最高的情况是卷积核中的9个权重分别使用不同的近似乘法器,因此我们可以将搜索空间中的近似乘法器设置为2-9个。
[0060]
示例性地,本实施例只需要在深度学习框架中调用近似乘法器的二进制真值表,而不需要在硬件上将近似电路完整的复现出来,因此具有可扩展性,可以实现任意近似乘法器的调用。另外还可以自定义二进制真值表加入推理路径,通过网络的精度损失反过来指导近似乘法器的设计。具体的,将待评估的二进制真值表加入神经网络模型的推理路径,计算混合近似和误差补偿后的神经网络的实际精度损失,根据计算得到的实际精度损失对待评估的二进制真值表进行评。
[0061]
神经网络模型的推理路径指的是神经网络中参数的前向传递和运算(乘累加和池
化采样),不包括反向传播(求导和梯度下降);在本实施例中,二进制真值表加入的是前向传播中的乘法运算中。
[0062]
使用图1提出的调用方法,在一个网络中多次调用不同的近似乘法器。基于网络特殊的分层式分布结构特点,本实施例提出逐层混合近似方法和逐权重混合近似方法。
[0063]
图2是对神经网络的逐层混合近似方法框图。步骤s2中,逐层混合近似的过程包括以下子步骤:
[0064]
s21,对预训练的神经网络模型按层划分,得到层集合l={l1,l2,

,li,

,lm};获取预训练的神经网络模型的权重分布d={d1,d2,

,di,

,dm};统计得到近似乘法器数据库m={m1,m2,

,mj,

,mn}。
[0065]
s22,选择近似乘法器数据库中的其中一个近似乘法器mj,将其分别布局至神经网络模型中的每一层中,计算得到该近似乘法器mj对应的神经网络模型的等效权重分布对应的神经网络模型的等效权重分布
[0066]
s23,重复步骤s22,直至计算得到所有近似乘法器对应的神经网络模型的等效权重分布。
[0067]
s24,选择层li,计算得到使用近似乘法器mj之前的权重分布和使用近似乘法器mj之后的等效权重分布之间的相关系数ρ
ij

[0068]
s25,筛选得到相关系数ρ
ij
大于相关系数阈值α的近似乘法器,作为层li对应的备选近似乘法器。
[0069]
s26,重复步骤s24-s25,直至完成所有层的近似乘法器筛选。
[0070]
神经网络进行预训练得到网络每层的权重分布d={d1,d2,

,di,

,dm},各层权重基本满足高斯分布,不同的近似乘法器应用进神经网络之后得到每层的等效近似权重分布基本满足加噪高斯分布,对新旧权重之间的相关系数进行比较,对每层选择相关系数大于所设阈值的近似乘法器。出于节约硬件资源的考虑,进一步对乘法器的功耗和面积节约设置阈值p%和a%,为每层都筛选出适合的乘法器集合,最终生成一系列混合近似神经网络,或者取消阈值设置,直接为每层选择最优的相关系数或最低的硬件能耗的近似乘法器。
[0071]
图3是对神经网络的逐权重混合近似方法框图,
[0072]
步骤s2中,逐权重混合近似的过程包括以下步骤:
[0073]
对预训练的神经网络模型按权重划分,得到权重集合w={w1,w2,

,wk,

,wh};统计得到近似乘法器数据库m={m1,m2,

,mj,

,mn}。
[0074]
针对每个权重wk,根据下述公式计算得到每个近似乘法器mj的方差关联品质因子:
[0075]
vfom(mj|wk,x)=pdpj×
delayj×
areaj×
vedj[0076]
式中,wk与x是近似乘法器mj的两个输入操作数,pdpj、delayj和areaj是三个常用的近似乘法器mj的硬件评估指标,分别代表功率延迟积、延迟和面积;vedj是近似乘法器mj的误差评估指标,代表错误距离方差。
[0077]
选择方差关联品质因子最小的近似乘法器作为权重wk的近似乘法器m
optimal

[0078]
为了进一步降低精度损失,将网络进行更细粒度的划分,通过不断地迭代比较,预训练的神经网络模型在固定权重的条件下可以选择错误距离方差关联的品质因子最小的
近似乘法器,其中品质因子的计算与硬件指标pdp、delay和area以及误差指标ved均有关,因此不用再为功耗和面积单独设置阈值。
[0079]
混合近似后的神经网络相较于全网络使用单一近似手段的神经网络来说,精度损失有所改善,但与精确网络相比依然有一定距离,图4展示了一种恢复网络精度的算法,对混合近似后的神经网络使用基于错误距离均方根的误差补偿方法恢复精度。该算法在固定乘法器的情况下,对每个权值w,以均匀分布遍历另一个与之相乘的乘数,并将产生的错误距离方差逐次累加得到e。再对w进行[0,2
n-1]范围内的更新,每更新一次权值,对e进行逐次比较,直到找到使e最小的w
*
。有必要指出的是该方法的实现基于寻找最小的近似误差而不是最小的精度损失,因此不需要一直在线获取网络的精度,可以实现离线运行,加在网络推理之前对权重数据进行微调和更新。相比不断地在线重训练,该方法可以节约大量的算力和时间成本。
[0080]
为了验证本发明提出的混合近似方案取得的硬件收益,图5展示了一种基于混合近似乘法器的处理单元阵列。左侧是一个m
×
n的处理单元(processing element,pe)阵列,右侧是一个pe的处理过程,包括乘累加操作和非线性激活,其中乘累加模块中的乘法使用混合近似乘法器。
[0081]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1