一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路的制作方法

文档序号:6640853阅读:309来源:国知局
一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路的制作方法
【专利摘要】本发明公开了一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路,其特征是如下步骤进行:1确定拟合多项式的阶数;2获得sigmoid函数的拟合区间;3获得分段区间;4获得拟合多项式;5设计系数存储模块;6设计多项式运算模块;7设计判断模块;8获得拟合硬件电路;9判断操作数所在的拟合执行区间;10读取拟合多项式系数;11在多项式运算模块中进行拟合计算。本发明能在降低硬件资源消耗的基础上,提高运算精度、加快运算速度以及提升运算结构的灵活性。
【专利说明】一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路

【技术领域】
[0001] 本发明涉及人工神经网络领域,具体地说是一种基于列梅兹逼近算法的sigmoid 函数拟合硬件电路。

【背景技术】
[0002] 神经网络是人工神经网络的简称,神经网络的研宄与应用也是当前的研宄热点之 一。神经网络的优势主要体现两个方面,一个是并行性,另一个就是强大的非线性信息处理 与学习能力。目前,已经有多个神经网络模型的理论基础、工作原理达到了成熟的水平,使 得进一步研宄它们在信号处理、控制系统、语音识别等多个相关领域的应用成为热点。与软 件模拟相比,基于硬件实现的神经网络具有处理速度快、高并行性,更容易达到神经网络实 时运算的要求。
[0003] 在用FPGA实现神经网络时,有两个难点:一个是数据的表示方式,另一个是神经 网络激活函数的逼近方法,这两点决定了硬件资源利用效率的高低和逼近的精度。神经网 络的激活函数有多种形式,Sigmoid函数是神经网络中使用最广泛的一种激励函数,实现难 度也最大,是神经网络FPGA实现的一个重要环节。
[0004] 当前,sigmoid函数的FPGA实现方法有:直接查找表,分段线性逼近,多项式 逼近,CORDIC算法,遗传算法等。其中直接查找表法(ZhiliangNie, 2012;Alexander Gomperts,2010)是将sigmoid运算结果存储在存储模块中,根据输入操作数,直接查找 读取结果,这种方法需要耗费大量的存储资源,且硬件实现精度不高;分段线性逼近法 (ManishPanicker,2012)在(_5,5)范围内,采用3段式分段线性逼近,采用32bit定点 数格式,运算和存储资源较少,但运算精度较低,最大均方差为0. 00187 ;C0RDIC算法(Xi Chen,2006)采用CORDIC算法和查找表算法相结合,数据格式采用自定义16bit浮点格式输 入和自定义32bit浮点格式输出,运算资源大,运算精度很低。遗传算法(BharatKishore Bharkhada,2004)在[0, 8]范围内,采用基因遗传算法拟合整系数分段三次多项式,采用16 位定点数格式,运算资源不高,存储资源较低,运算精度不高,绝对误差2. 4376XKT3;多项 式逼近算法最为常见,传统的泰勒级数展开法,需要消耗消耗大量的运算资源,且运算精度 很低。较为经典的分段多项式逼近算法(JoaoO.P.Pinto, 2006)采用分段5阶多项式,存 储资源低,运算资源不高,运算精度较高,最大误差为8ΧΚΓ5,这一拟合精度是当前所有现 有技术中能够达到的最优精度,但是,仍然不能满足高精度运算要求。
[0005] 且在数据格式的选择方面,以上所有的方法为提高运算精度多为自定义浮点格 式,而在实时高速处理领域,数据格式往往是IEEE754标准的32bit单精度浮点格式,这种 自定义数据格式在与其他处理模块通讯时,还需要考虑数据格式的转换,通信代价较大。在 降低资源消耗方面,为降低运算资源消耗,采用查找表法,虽能获得运算结果,并大大降低 了运算资源消耗,却极大的增加了存储资源。在运算精度方面,由于所用算法本身的问题, 综合资源方面的考虑,当前的现有技术中,硬件实现的精度普遍不高,远远不能满足实时高 精度处理的要求;这些都是亟需解决的瓶颈问题。


【发明内容】

[0006] 本发明是为避免上述现有技术的不足之处,提出了一种基于列梅兹逼近算法的 sigmoid函数拟合硬件电路,以期能在降低硬件资源消耗的基础上,提高运算精度、加快运 算速度以及提升运算结构的灵活性。
[0007] 本发明为解决技术问题采用如下技术方案:
[0008] 本发明一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路的特点是按如下 步骤进行:
[0009] 步骤1、根据给定的拟合精度U、运算资源和存储资源,确定拟合多项式的阶数η;
[0010] 步骤2、根据所述拟合精度u,利用式⑴获得sigmoid函数f (X)的拟合区间 [a,b];
[0011]

【权利要求】
1. 一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路,其特征是按如下步骤进 行: 步骤1、根据给定的拟合精度u、运算资源和存储资源,确定拟合多项式的阶数n; 步骤2、根据所述拟合精度u,利用式(1)获得sigmoid函数f(x)的拟合区间[a,b];
步骤3、利用式(2)所示的对称性将所述拟合区间[a,b]以原点0为对称中心划分成 2m个小区间[a,qj,(q"q2],…,(qm,0],(0,qm+1],…,(q2m,b] ;a,q"q2,…,qm,0,qm+1,…q2m,b 分别表示所述2m个小区间的端点值;qi,q2,…,qm,qm+1,…q2m分别表示所述2m个小区间的 缩放端点值;由所述2m个小区间的端点值依次构成端点集合Q= {Q&Qi,…,Qt,…Q2m}; Qt表示所述2m个小区间的端点值中第t个端点值;从而获得分段区间[QmQi],[Qi,Q2],…
步骤4、将所述阶数n分别和2m个分段区间组成2m个向量组[n,QmQi],[n,Qi,Q2],… ,[n,Qt,Qt+1],"% [r^QmQj;[11,91,91+1]表示第1:个向量组 ;将所述21]1个向量组依次代入 列梅兹算法,从而依次获得所述分段区间各自所对应的逼近精度u/,Ul",…,ut",… U2m-1 ; 步骤5、依次判断所述逼近精度U(l",Ul",…,Ut"是否满足所述拟合精度U,若满足,则满足逼近精度所对应的分段区间即为拟合执行区间,满足逼近精度所对应的 逼近多项式的系数即为所述拟合执行区间的拟合多项式系数;若不满足,则缩放所述不满 足逼近精度所对应的分段区间中的缩放端点值,并返回步骤4执行,直到获得满足所述拟 合精度U的2m个拟合执行区间和2m组拟合多项式系数; 步骤6、若所述sigmoid函数f(x)的自变量x在区间(b, + )内,则区间(b, + )作 为拟合执行区间;且区间(b,+ <-)所对应的拟合多项式的常数项系数为1、其余各项系数 均为〇 ;若所述sigmoid函数f(x)的自变量x在区间(-,a)内,则区间(-,a)作为 拟合执行区间,且区间(_ <-,a)所对应的拟合多项式的各项系数均为0 ;从而获得2m+2个 n阶数拟合多项式,完成sigmoid函数的拟合; 步骤7、将所述2m+2个n阶数拟合多项式的系数固化在ROM中,形成系数存储模块; 步骤8、根据所述n阶数拟合多项式,利用n个浮点加法器、2n-l个浮点乘法器和 (n-2)XI个寄存单元设计多项式运算模块;1为所述浮点加法器和所述浮点乘法器的流水 级数; 步骤9、根据所述2m+2个拟合执行区间设计判断模块;由所述多项式运算模块、系数存 储模块和判断模块构成拟合硬件电路; 步骤10、输入一个操作数《作为所述拟合硬件电路的输入值;并利用所述判断模块判 断所述操作数《所在的拟合执行区间; 步骤11、从所述系数存储模块中读取所述操作数《所在的拟合执行区间所对应的拟 合多项式的系数; 步骤12、将所述操作数《和所述操作数《所对应的拟合多项式的系数读入所述多项 式运算模块中进行拟合计算,从而获得拟合结果作为所述拟合硬件电路的输出值。
2.根据权利要求1所述的基于列梅兹逼近算法的sigmoid函数拟合硬件电路,其特征 是,所述步骤4是按如下步骤进行: 步骤4. 1、利用式(3)获得所述第t个向量组[n,Qt,Qt+1]所对应的n+2个切比薛夫多
3. 根据权利要求1所述的基于列梅兹逼近算法的sigmoid函数拟合硬件电路,其特征 是,所述步骤4-步骤12还可以按如下方式进行: 步骤4、将所述阶数n分别和所述区间(0,b]上的m个分段小区间组成m个向量组[n,Qm,Qm+J, [n,Qm+1,Qm+2], [n,Qe,Qe+1], --?, [n,Q^,Q2m] ;e=m,m+1, [n,Qe,Qe+1] 表示第e个向量组;将所述m个向量组依次代入列梅兹算法,从而依次获得所述分段区间 各自所对应的逼近精度um",um+1",…,ut","*u2ni_1"; 步骤5、依次判断所述逼近精度um",um+1",…,ut"是否满足所述拟合精 度u,若满足,则满足逼近精度所对应的分段区间即为拟合执行区间,满足逼近精度所对应 的逼近多项式的系数即为所述拟合执行区间的拟合多项式系数;若不满足,则缩放所述不 满足逼近精度所对应的分段区间中的缩放端点值,并返回步骤4执行,直到获得满足所述 拟合精度u的m个拟合执行区间和m组拟合多项式系数; 步骤6、若所述sigmoid函数f(x)的自变量x在区间(b, + )内,则区间(b, + )作 为拟合执行区间;且区间(b,+ <-)所对应的拟合多项式的常数项系数为1、其余各项系数 均为〇 ;从而获得m+1个n阶数拟合多项式,完成sigmoid函数的拟合; 步骤7、将所述m+1个n阶数拟合多项式的系数固化在ROM中,形成系数存储模块; 步骤8、根据所述n阶数拟合多项式,利用n个浮点加法器、2n-l个浮点乘法器和 (n-2)XI个寄存单元设计多项式运算模块;并在所述多项式运算模块的输出端设计一个 浮点减法器;1为所述浮点加法器、所述浮点乘法器和浮点减法器的流水级数; 步骤9、根据所述2m+2个拟合执行区间设计判断模块;由所述多项式运算模块、系数存 储模块、浮点减法器和判断模块构成拟合硬件电路; 步骤10、输入一个操作数《作为所述拟合硬件电路的输入值;并利用所述判断模块判 断所述操作数《所在的拟合执行区间; 若《e(〇,+ 〇?),则从所述系数存储模块中读取所述操作数u所在的拟合执行区间 所对应的拟合多项式的系数; 若《e(-〇?,〇],则从所述系数存储模块中读取所述操作数u所在的拟合执行区间 的对称区间所对应的拟合多项式的系数; 步骤12、将所述操作数《和所述操作数《所对应的拟合多项式的系数读入所述多项 式运算模块中进行拟合计算,若《e(〇,+ 〇?),则获得的拟合结果即为所述拟合硬件电路 的输出值;若《e(- 〇?,〇],则将获得的拟合结果和i读入所述浮点减法器中,获得的计 算结果即为所述拟合硬件电路的输出值。
4. 根据权利要求3所述的基于列梅兹逼近算法的sigmoid函数拟合硬件电路,其特征 是,所述步骤4按如下过程进行: 步骤4.1、利用式(5)获得所述第e个向量组[n,Q"Qe+1]所对应的n+2个切 比薛夫多项式的交错点组xf;以所述第e个交错点组xf作为第e个初始点集 ;从而获得m个向量组各自所对应的初始点集;
式⑶中,人=0, 1,…,n+1;
【文档编号】G06N3/063GK104484703SQ201410850470
【公开日】2015年4月1日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】宋宇鲲, 王浩, 张多利, 杜高明 申请人:合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1