本发明属于人工智能神经网络,尤其涉及一种基于神经网络的动态近似电路计算部署方法及系统。
背景技术:
1、近几年,深度神经网络已成最热门的研究方向。神经网络应用于模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功。经过多年的研究和发展,模式识别已经成为当前先进的技术,被广泛应用于语音识别、指纹识别、遥感图像识别、人脸识别、文字识别、手写字体识别、工业故障检测等方面。
2、同时,近似计算目前已经被广泛应用在神经网络中,神经网络由于其自身及相关图像识别和语音识别等应用的容错性,可以允许神经网络中的计算如乘法和加法操作在产生一定范围内的误差,并不显著影响神经网络的识别精度,而且能显著降低功耗和电路面积。
3、近似电路需要保持神经网路的精度,并获得硬件指数上的优势,也就需要在神经网络精度和硬件成本之间存在权衡。这个过程的方案并没有适合所有应用场景的最佳设计。因此,为任何特定的应用选择合适的近似电路是一个复杂多边的问题。
技术实现思路
1、发明目的:本发明的目的在于提供一种基于神经网络的动态近似电路计算部署方法及系统。为了解决神经网络中部署近似电路时的硬件性能和应用精度之间的平衡,通过分析神经网络在不同近似电路计算下正向推理正确率评估近似电路的精度和仿真功耗,决定是否需要采用当前近似配置。通过这样的循环迭代过程可以尽可在保持神经网络推理精度的情况下,提升近似计算带来的硬件功耗和面积收益。构建为特定应用找到最合适的近似电路部署方案,即在保留可接受的输出精度同时尽可能降低硬件成本。
2、技术方案:本发明通过神经网络的逐层误差引入得到每一层的容错系数,然后通过量化恢复得到精度损失小的权重参数。近似基础配置模块根据恢复后的权重参数,估计近似电路的误差参数,并通过迭代比较,综合考量误差和硬件参数符合要求的基础近似电路。多目标分析模块根据输入的权重参数和容错系数,计算网络在当前近似配置下的总误差,满足约束后,进行网络的近似感知训练,网络在训练中恢复近似计算造成的误差。精度恢复的下降值也就成为当前配置下的真实精度。在约束范围内的网络配置通过指定硬件配置上的正向推理模拟,同时输出当前计算的功耗和面积仿真值,面积约束内的配置组成次优解集合。在迭代结束后输出最优的功耗配置,也就获得了当前精度面积功耗下的最优配置。
3、本发明的一种基于神经网络的动态近似电路计算部署方法,在神经网络中构建系统量化模块、近似基础配置模块和多目标分析模块,通过执行以下步骤,在控制硬件功耗的前提下,获得面积收益最大的动态近似电路;
4、步骤1、通过系统量化模块将神经网络模型的计算精度由浮点数化到定点数,在神经网络模型中输入浮点型权重参数,输出定点型权重参数,并统计定点型权重参数分布;
5、步骤2、基于定点型权重参数分布,通过近似基础配置模块对近似电路进行基础配置;
6、步骤3、对基础配置后的近似电路评价其误差指标,通过误差指标筛选出初步近似电路配置;
7、步骤4、将初步近似电路配置输入多目标分析模块进行分析,输出近似电路的最佳配置。
8、进一步的,步骤1具体为:系统量化模块进行神经网络模型的8bit位宽量化,量化感知训练如下:
9、 (1)
10、其中, round表示四舍五入, q是经过量化之后的定点数, r是量化前的浮点数, s是量化后的定点数所能表示的最小刻度, z是浮点数值中原来零点所对应的量化后的值;
11、在量化感知训练的同时将训练后的定点型权重参数进行统计,输出定点型权重参数分布。
12、进一步的,步骤2具体为:在得到量化模型之后,进行近似电路的基础配置,在近似计算电路库中挑选可重构近似乘法器,可重构乘法器包括低阶子乘法器和子乘法器求和电路,其中,乘数为神经网络中的激活,被乘数为权重,通过拆分乘数的方式实现可重构的乘法,对于乘数分为3个部分,从低位到高位分别为0-7位,两个乘数分别表示为a[7:0]和b[7:0],乘数a第7位为符号位,4-6位为高3位,0-3位为低4位;乘数b第7位为符号位,4-6位为高3位,0-3位为低4位;通过分拆方式,实现8bit的乘法共需要四个低阶子乘法器,分别用来计算,,和,对两个乘数的符号位进行异或操作产生乘法结果的符号位;
13、对子乘法器进行不同的组合操作,实现4×4,8×4和8×8这三种乘法:
14、实现4×4的乘法,则把和作为输入,需计算;
15、实现8×4的乘法,需计算和;
16、实现8x8的乘法,则需使用,,和;
17、实现8x4的乘法时的计算公式如式(2):
18、 (2)
19、实现8x8的乘法时的计算公式如式(3):
20、(3)
21、在挑选适配的4bit近似乘法器后就可通过上式完成近似电路真值表的输出。
22、进一步的,步骤3具体为:通过错误率、误差距离、相对误差距离、平均相对误差距离对近似电路误差进行评估,评估误差在阈值范围内的近似电路也就组成了初步的近似电路配置,输出到多目标分析模块,进行最优化处理;
23、错误率er:错误率的取值越大,表明该近似电路产生错误结果的概率越大,其函数表达式如式(4):
24、 (4)
25、其中,其中 n表示近似电路的全部输入情况的数目,p表示近似电路的计算结果,表示精确的结果;
26、误差距离ed:误差距离反映出近似计算结果与精确计算结果的差值,这个差值越大,说明本次计算的误差越大,也就是近似计算电路的精度越差,对于第( i)个样本,误差距离的计算公式如式(5):
27、 (5)
28、其中,表示近似计算结果,表示精确计算结果;
29、相对误差距离red:相对误差距离是由近似计算得出的绝对值偏差与精确计算得到的真值之比乘以100%得到的数据,以百分数的形式表示,用来反映测试结论与实际值之间的差异,对于第( i)个样本,相对误差距离的计算公式如式(6):
30、 (6)
31、平均相对误差距离 mred:平均相对误差距离是在大样本的情况下,对测试范围内所有样本的相对误差距离的平均值,反映出近似计算电路的精度,对于 n个样本的集合,平均相对误差距离的计算公式如(7):
32、 (7)
33、进一步的,步骤4具体为:多目标分析模块首先需要获得容错系数,子模块在进行卷积神经网络训练同时遍历所有卷积层和全连接层,逐次替换成量化层并进行推理,每一次测量推理精度都仅有一层卷积层被引入量化误差,遍历完所有层将精度损失归一化处理后也就获得了各层的容错能力系数;
34、基于各层的容错能力系数,多目标分析模块对网络在当前配置下的误差、功耗和面积进行评估,将神经网络各层容错能力作为近似计算引入的参考,对于具有更小的容错系数的层使用更激进的量化策略,将mac计算数量加入以修正评估标准,修正后的评估公式为:
35、 (8)
36、其中,表示第 i层的容错能力系数,表示第 i层的mac计算量;
37、将近似计算的误差加入到评估公式中,使用式(7)平均相对误差距离 mred来反映神经网络中近似电路的误差,误差评估公式如式(9):
38、 (9)
39、表示第 i层全部数据和权重的计算结果和真值的平均相对误差距离。同时表示出系统功耗和访存的评估,如式(10)和(11):
40、 (10)
41、 (11)
42、其中,其中表示第i层的参数量,表示第i层的权重位宽, p表示第 i层使用的乘法器的计算功耗;
43、多目标分析模块通过线性规划问题表达并求解获得最终的配置,如式(12):
44、 (12)
45、其中, q表示近似电路的计算位宽配置, a表示使用的近似电路配置, δ表示当前近似电路的计算位宽的配置集合, ξ表示近似乘法器的配置集合, error表示cnn系统的误差约束, size表示约束的cnn模型尺寸,对于每个cnn网络,选择量化位宽配置和近似乘法器配置等效于整数优化空间变量,模型尺寸和估计误差被作为ilp中的约束;
46、求解线性规划问题获得配置之后,进一步通过映射配置到神经网络中,进行正向推理来获得实际的精度下降,在此过程中,训练采用近似感知的重训练,精度下降在合适约束内,则输出到硬件进行真实功耗和面积测量,如果不符合就返回到线性规划求解改变约束error和size的值,则重新计算,硬件进行真实功耗和面积测量后如果不符合要求再次返回,如果成功就输出当前配置。
47、本发明还公开一种基于神经网络的动态近似电路计算部署系统,包括系统量化模块、近似基础配置模块和多目标分析模块;
48、所述系统量化模块其输入端接收神经网络模型和浮点型的权重参数,对权重进行量化和恢复,对网络模型插入量化层和统计参数,输出int型定点的权重数据和分类统计,模型的计算量和各层的容错能力;
49、所述近似基础配置模块其输入端接收权重的分类统计,根据近似乘法器库和片上可重构架构初步部署近似电路,输出端输出初步近似电路配置;
50、所述多目标分析模块其输入端是神经网络的参数统计和层参数,权重的量化恢复数据和网络的容错能力分布,以及基础近似配置,模块内部首先根据容错能力模拟测试得到每一层的容错系数,然后容错系数和层近似配置综合统计得到对应的网络误差值,网络误差值和硬件反馈参数共同迭代比较得到实际精度,并映射到硬件设备上,如果满足约束要求就输出最佳配置,如果不满足再返回硬件参数继续迭代。
51、进一步的,所述系统量化模块包括:
52、int量化器子模块,其输入是浮点型权重数据,根据对称量化,计算得到伸缩系数并输出量化后权重和伸缩系数;
53、量化通道模块子模块,其输入端接收神经网络模型和量化后数据,插入位宽可调节的量化器到卷积层的权重和激活值入口处,插入基于真值表运算的乘法器到卷积层的基础算子接口,并进行量化误差感知的训练,通过神经网络训练恢复权重的量化误差,并分析恢复后的权重分布。
54、进一步的,所述近似基础配置模块包括:
55、数据分布统计子模块,其输入是权重分布,并且预设激活值分布为均匀分部,生成假设激活值和权重值,并输出用以计算近似电路的误差;
56、近似电路误差子模块,其输入是生成的假设权重和激活值,根据权重和激活值输入近似真值表,并累积与真实真值表的误差,得到误差统计参数;
57、可重构电路比较子模块,其输入是近似电路的误差统计,通过设置阈值,将符合要求的近似电路配置到可重构电路的高位和低位模块中,将误差小输送低位,误差大的输送到高位,再进行面积、功耗和精度的统计,并将符合约束的电路输出,不符合的重新回到前一级迭代。
58、进一步的,所述多目标分析模块包括:
59、网络层容错系数子模块,其输入是网络的初步容错能力排序,根据排序替换每一层的数据量化位宽,然后通过正向推理获得实际网络的精度下降,最后归一化统计获得层容错系数;
60、网络误差统计子模块,其输入获得模型计算量和权重数据,并且根据容错系数,统计得到神经网络正向的误差;
61、硬件性能统计子模块,其输入根据基础近似电路配置平均化权重和激活值乘法计算得到电路进行一次计算的功耗,以及可重构电路的总体面积参数;
62、迭代优化配置子模块,其输入是网络误差统计和硬件性能参数,根据容错能力趋势,模块首先为容错能力大的网络层配置硬件性能优异但误差大精度小的近似电路,并统计整个网络在当前配置下的误差、功耗和面积,根据迭代约束决定当前配置是否满足需求,满足输出配置,不满足回到前一级迭代;
63、网络精度测量子模块,其输入是迭代输出的网络近似配置,模块网络层将近似配置和近似真值表导入网络近似电路接口,开始精度测试,网络进行正向推理,得到测试集精度并输出;
64、参数反向训练子模块,其输入是带近似的网络层参数,通过反向近似感知训练,神经网络训练过程中,反向为权重恢复近似计算带来的误差,提升精度并输出最终测试集精度;
65、硬件映射子模块,其输入是网络近似配置,硬件神经网络处理单元根据近似配置,发送可重构电路选择配置指令,并进行功能仿真测试,输出硬件计算的功耗和总片上面积。
66、有益效果:与现有技术相比,本发明具有如下显著优点:
67、(1)本发明在神经网络应用目标精度要求内找到最优的近似部署配置,实时对神经网络计算进行层动态配置,使精度和功耗的选择更加灵活。
68、(2)本发明构建为特定应用找到最合适的近似电路部署方案,即在保留可接受的输出精度同时尽可能降低硬件成本。
69、(3)本发明相较于现有近似乘法器部署方案可以在更细粒度上调节计算单元的选择以获得更好的精度和功耗收益。且相较于现在普遍使用的对不同应用进行手动优化的部署方案,本发明通过自动化平台搭建和线性规划搜索方案,获得了自动化的部署流程和适应多种应用需求的部署配置。