一种基于Remez算法的Sigmoid函数硬件高效率实现方法技术

技术编号:18942191 阅读:324 留言:0更新日期:2018-09-15 11:25
本发明专利技术公开了一种基于Remez算法的Sigmoid函数硬件高效率实现方法,其特征是:首先采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近,提高拟合精度;然后用流水线结构优化硬件实现模块;本发明专利技术有效平衡了资源消耗和拟合精度的矛盾,满足实时性要求,并以其较强的灵活性满足不同的设计指标。

A hardware implementation method of Sigmoid function based on Remez algorithm

The invention discloses a high-efficiency hardware implementation method of Sigmoid function based on Remez algorithm, which is characterized in that: firstly, the Fourth-order polynomial piecewise approximation of Sigmoid function is carried out by using Remez optimal uniform algorithm to improve the fitting precision; secondly, the hardware implementation module is optimized by pipeline structure; and the resource consumption is effectively balanced by the invention. The contradiction between the fitting accuracy and the fitting accuracy meets the real-time requirement, and its strong flexibility meets different design indexes.

【技术实现步骤摘要】
一种基于Remez算法的Sigmoid函数硬件高效率实现方法
本专利技术涉及函数实现软硬件协同编程领域,具体的说是一种基于Remez算法的Sigmoid函数硬件高效率实现方法。
技术介绍
由人工神经网络构造及数学模型可知,人工神经网络可表示为一个四元组[V,E,f,s],其中,V是神经元结点的集合,E是神经元之间联接的集合,f是激活函数,s是学习算法。作为目前研究最成熟、应用最广泛的人工神经网络,误差反传(BP)人工神经网络最重要的特性是能够模拟任何给定的非线性函数,而非线性处理能力主要通过神经元的激活函数来实现。人工神经网络的非线性处理能力很大程度上取决于人工神经网络激活函数特点。人工神经网络激活函数有多种,Sigmoid函数是使用最为广泛的一种。Sigmoid函数具有很好的线性区和非线性区,有良好的导数性能,能够提高人工神经网络的学习效率和收敛速度,兼具对小信号和大信号的处理能力。Sigmoid函数及其导数的映射是人工神经网络FPGA实现的一个重要环节。然而双极性Sigmoid激活函数及其导数结构复杂,其电路实现形式不仅包含乘除运算,还要实现多个指数函数电路,是目前人工神经网络硬件实现的最大难点之一。Sigmoid函数的物理意义:Sigmoid函数来源于logistic曲线,logistic曲线在生物学中拥有很重要地位,如应用于草履虫密度研究,在开始阶段,种群数量很少,繁殖速度很慢,随着数量的增加,繁殖速度会大幅度提高,接下来随着食物的不足以及天敌的出现等原因,增长速度开始大幅度下滑,最后稳定在一个区间内,图2所示的草履虫密度曲线即为logistic曲线非常好地描述了这个变化规律。Logistic曲线可以简化为其中δ(z)表征草履虫种群密度,z表征时间;Logistic曲线的简化表达又叫Sigmoid函数。由于Sigmoid函数的输出范围是(0,1),所以可以用于输出层,输出表示概率。神经网络在由FPGA实现时,主要依靠人工神经网络所选取的函数逼近的方法和所需数据的表示方式不同。在已提出的拟合硬件实现方案中,较为经典的有CORDIC法则、多项式逼近法PA、直接查找表法LUT、分段线性逼近法PLA、基因遗传算法GA及其它混合算法。CORDIC法则实现函数的优点是同一硬件能被若干个函数使用,但其性能相当差,因此较少使用;多项式逼近法PA最为常见,其中较为经典的有传统的泰勒级数展开法,但其需要消耗大量的运算资源,运算精度低。较为经典的多项式分段逼近算法是采用分段五阶多项式,存储资源和运算资源消耗不高,运算精度较高,最大误差为8×10-5,这一拟合精度是现有技术中能够达到的最优精度,但其仍然难以满足一些高精度工程应用的需求。多项式近似法PA虽然可以实现低误差近似,但需要耗费较高硬件资源。直接查找表法LUT的基本思想是将每个自变量所对应的Sigmoid函数值及其导函数值存储在RAM或ROM中,存储空间的地址线为函数的自变量,而数据线输出为函数值,无需进行运算,通过存储访问操作即可实现Sigmoid函数及其导函数,但该方法需要消耗大量的存储器,考虑一个16位输入和16位输出的查找表,将消耗多达1MB的存储空间。另外,随着数据精度的提高,查找表会消耗更多存储器资源,速度变慢且代价也很高,而且硬件实现精度不高。分段线性逼近法PLA的基本思想是将非线性函数分成若干段,每一段用一条直线来近似。在(-5,5)范围内,采用三段式分段线性逼近,选用32bit定点数格式,其运算和存储资源较少,但运算精度很低,最大均方差为0.00187。基因遗传算法GA是在[0,8]区间内,采用遗传算法拟合整系数分段三次多项式,选用16bit定点数格式,其运算资源和存储资源占用不高,运算精度不高,绝对误差为2.4376×10-3。此外还有STAM算法,其基本思想是将原直接查找表中的一个查找表按照预定的规则分成多个查找表,再将多个查找表的输出相加求和后得到函数值,该方法所占用的存储空间比直接查找表少得多,但速度比直接查找表慢。由于数据格式是与精度和资源消耗相关,现有技术中大多选取自定义的数据格式以在降低逻辑资源消耗同时保证拟合精度,而工程应用中常用的是IEEE754标准的32bit单精度浮点格式,使得这种方法设计的模块再与其它模块进行运算时,需要进行数据格式转换,通信代价较大;若采用单精度浮点格式,采用以上现有方案,则难以达到逼近精度要求。
技术实现思路
本专利技术是为避免上述现有技术所存在的问题,提供一种基于Remez算法的Sigmoid函数硬件高效率实现方法,采用Remez最佳一致算法对Sigmoid函数分段多项式逼近,平衡资源消耗和拟合精度的矛盾,满足实时性要求,并以其较强的灵活性满足不同的设计指标。本专利技术为解决技术问题采用如下技术方案:本专利技术基于Remez算法的Sigmoid函数硬件高效率实现方法的特点是:首先采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近,然后用流水线结构优化硬件实现模块。本专利技术基于Remez算法的Sigmoid函数硬件高效率实现方法的特点也在于:所述采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近是指:将四次多项式函数在区间[0,8]分为5段逼近模块,所述5段逼近模块的区间段分别为[0,0.5]、[0.5,1]、[1,2]、[2,4]和[4,8];利用数学辅助工具matlab拟合出区间[0,8]上各段四次多项式系数ai,bi,ci,di和ei,误差在10-4~10-6数量级;以y表征Sigmoid函数,x为自变量,Sigmoid函数的原表达式如式(1):将式(1)拟合为如式(2)所表征的四次多项式:y=aix4+bi·x3+cix2+dix+ei(2)i为自然数;所述用流水线结构优化硬件实现模块是指:将式(2)转换为式(3):y=((((aix+bi)x+ci)x+di)x+ei(3)针对式(3)按如下步骤计算获得区间[0,8]上各段四次多项式系数ai,bi,ci,di,ei:步骤1、根据单精度浮点数的标准,在第一流水周期中确定第一个输入数据x1中第30位到23位表示指数;步骤2、利用输入数据所满足的条件,判断输入数据在区间[0,8]中所对应的区间段;步骤3、利用查找表的方式确定对应的四次多项式系数a1,b1,c1,d1和e1;步骤4、在第二个流水周期中,将第一个输入数据x1和对应的四次多项式系数a1、b1、c1、d1和e1一一对应寄存至寄存器reg_x1、reg_a1、reg_b1、reg_c1、reg_d1和reg_e1;其中,寄存器reg_x1和reg_a1是乘法器M1的输入,由乘法器M1实现a1×x1的计算,在乘法器计算结束后,将a1×x1、b1、c1、d1和e1一一对应寄存至下一组寄存器reg_x2、reg_b2、reg_c2、reg_d2和reg_e2;其中reg_b2是加法器A1的一个输入,加法器A1的另一个输入是乘法器M1的输出,由加法器A1实现a1×x1+b1的计算;步骤5、在第三个流水周期中,完成计算的a1×x1+b1进入到下一组寄存器,将寄存器reg_e2、reg_d2和reg_c2中的数据一一对应转移到寄存器reg_e3、red_d3和reg_c3中本文档来自技高网
...

【技术保护点】
1.一种基于Remez算法的Sigmoid函数硬件高效率实现方法,其特征是:首先采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近,然后用流水线结构优化硬件实现模块。

【技术特征摘要】
1.一种基于Remez算法的Sigmoid函数硬件高效率实现方法,其特征是:首先采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近,然后用流水线结构优化硬件实现模块。2.根据权利要求1所述的基于Remez算法的Sigmoid函数硬件高效率实现方法,其特征是:所述采用Remez最佳一致算法对Sigmoid函数进行四次多项式分段逼近是指:将四次多项式函数在区间[0,8]分为5段逼近模块,所述5段逼近模块的区间段分别为[0,0.5]、[0.5,1]、[1,2]、[2,4]和[4,8];利用数学辅助工具matlab拟合出区间[0,8]上各段四次多项式系数ai,bi,ci,di和ei,误差在10-4~10-6数量级;以y表征Sigmoid函数,x为自变量,Sigmoid函数的原表达式如式(1):将式(1)拟合为如式(2)所表征的四次多项式:y=aix4+bix3+cix2+dix+ei(2)i为自然数;所述用流水线结构优化硬件实现模块是指:将式(2)转换为式(3):y=((((aix+bi)x+ci)x+di)x+ei(3)针对式(3)按如下步骤计算获得区间[0,8]上各段四次多项式系数ai,bi,ci,di,ei:步骤1、根据单精度浮点数的标准,在第一流水周期中确定第一个输入数据x1中第30位到23位表示指数;步骤2、利用输入数据所满足的条件,判断输入数据在区间[0,8]中所对应的区间段;步骤3、利用查找表的方式确定对应的四次多项式系数a1,b1,c1,d1和e1;步骤4、在第二个流水周期中,将第一个输入数据x1和对应的四次多项式系数a1、b1、c1、d1和e1一一对应寄存至寄存器reg_x1、reg_a1、reg_b1、reg_c1、reg_d1和reg_e1;其中,寄存器reg_x1和reg_a1是...

【专利技术属性】
技术研发人员:薛治天宋宇鲲张多利王正茂张明亮
申请(专利权)人:合肥工业大学
类型:发明
国别省市:安徽,34

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

1