一种基于切比雪夫插值多项式的S型激活函数算法及其硬件结构

专利查询6天前  13


本发明公开了一种基于切比雪夫插值多项式的s型激活函数算法及其硬件结构,其计算结果相比采用分段线性逼近的方法能够达到更高的精度(单精度计算误差小于1ulp)。该算法分为三个步骤,先判断单精度输入是否处于非多项式计算区间,之后对于多项式计算区间内的单精度浮点输入进行子区间判断并获取该子区间多项式各项的系数,最后将多项式计算区间内的单精度浮点输入进行幂运算,并分别与多项式各项系数相乘,最终将多项式各项相加,得到多项式计算结果。通过将整个单精度浮点区间根据s型激活函数的渐进特性区分为多项式计算区间和非多项式计算区间,节省了硬件开销,降低了计算延时;在划分子区间的过程中,结合硬件可行性提出了一种基于切比雪夫插值多项式算法的子区间划分方法,能够在满足精度要求的前提下尽可能地降低查找表的资源占用。


背景技术:

1、随着大数据、人工智能时代的到来,对于计算芯片的算力要求也日益提高,向作为人工智能基础的神经网络计算提出了更高的要求。

2、人工神经网络是受到人类大脑构造的启发,模仿生物神经元相互发送信号的方式而诞生的模型。它由许多感知器构成的,感知器会对各自的输入进行加权求和,并进行激活函数(通常为非线性)计算,决定是否将输出传递给下一个感知器。因此在神经网络中除浮点乘加运算外,还需要完成大量的s型激活函数的浮点计算。这种函数也称为sigmoid函数,往往无法通过简单的几次乘加运算来求解,因此需要设计专用的电路对其求解。

3、随着神经网络规模的扩大和复杂度的提高,对s型激活函数的计算速度及计算精度提出了更高的要求。因此设计出具有更高精度的s型激活函数浮点计算单元具有重要意义。

4、本发明根据s型激活函数的数学特性,创新性地提出了一种基于切比雪夫插值多项式的s型激活函数算法,并以此为基础实现了其硬件电路。


技术实现思路

1、本发明的技术目的是:

2、为了提高s型激活函数计算的计算精度,使其达到在单精度计算下忠实舍入(误差小于1ulp)的精度,提供了一种基于切比雪夫插值多项式的计算方法,并基于该算法设计出四次多项式的硬件电路,已解决目前s型激活函数计算精度过低的问题,提高神经网络计算的性能。

3、本发明实现的技术方案:

4、本设计提出的基于切比雪夫插值多项式的s型激活函数算法通过多项式插值计算的方式对非线性的s型激活函数进行逼近,对于32位任意单精度浮点输入,算法会计算出32位单精度浮点输出,并且该输出满足忠实舍入(误差小于1ulp)的精度。如图1所示,本发明的算法分为三个步骤:

5、(1)判断单精度输入是否处于非多项式计算区间。对于s型激活函数当x趋近于负无穷时,s型激活函数值趋近于0;当x趋近于正无穷时,s型激活函数值趋近于1。对于某些单精度浮点数输入区间,该函数的结果在单精度下表示为0x0或0x1,这种区间不需要通过多项式计算,被称为非多项式计算区间。根据这种特性本发明提出一种非多项式计算区间的划分方法:对单精度输入进行区间判断,如果处于非多项式计算区间,则将其对应结果作为算法结果。

6、(2)对于多项式计算区间内的单精度浮点输入进行子区间判断并获取该子区间四次多项式各项的系数。对于任意的子区间[a,b],需要保证基于切比雪夫插值的多项式余项其中ξ∈[a,b],n为多项式最高阶数,小于该区间s型激活函数在单精度下可表示的最小精度。本算法提出了一种子区间划分方法:在满足切比雪夫插值的余项小于该子区间s型激活函数的最小单精度表示精度的前提下尽可能选择宽度更大的子区间;子区间的宽度应为2的幂。按照这个方法可以通过尽可能少的子区间个数满足精度要求,节省了硬件的查找表资源,并利于硬件实现。

7、(3)将多项式计算区间内的单精度浮点输入的部分有效数字进行幂运算,并分别与多项式各项系数相乘,最终将多项式各项相加,得到多项式计算结果。

8、本发明基于切比雪夫插值多项式的s型激活函数算法的四次多项式实现的硬件电路结构如图2所示。该电路主要由区间过滤模块、函数前处理模块、查找表模块、幂级数模块、浮点乘模块、浮点加模块、函数后处理模块组成。区间过滤模块判断输入的单精度浮点数是否处于多项式计算区间中,如果处于非多项式计算区间,则将其对应结果传输给函数后处理模块。函数前处理对输入的单精度浮点数进行拆分得到索引值和变量。查找表模块根据索引值得到对应的5个多项式系数a0,a1,a2,a3,a4。幂级数模块对变量做平方、立方、四次方浮点计算。浮点乘模块将4个多项式系数a1,a2,a3,a4分别与变量及其平方、立方、四次方浮点计算结果相乘得到多项式的四项a1x,a2x2,a3x3,a4x4。浮点加模块将多项式各项a0,a1x,a2x2,a3x3,a4x4相加,得到多项式计算的结果。函数后处理模块根据函数前处理模块的区间进行判断,决定将多项式计算的结果和非多项式计算区间的对应结果之一作为最终的单精度浮点输出。

9、相比于分段线性法及其硬件电路,本发明有以下优点:

10、1.能够达到更高的计算精度。根据本发明提出的子区间划分方法,采用切比雪夫插值多项式算法能够保证在每个子区间内,计算结果都满足忠实舍入(误差小于1ulp)的要求。

11、2.降低了查找表资源消耗。本发明设计的硬件结构占用的查找表资源小于基于分段线性法的硬件电路。



技术特征:

1.一种基于切比雪夫插值多项式的s型激活函数算法及其硬件结构,包括非多项式计算区间划分方法、多项式计算区间的子区间划分方法。其特征在于:

2.由权利要求1所述的一种非多项式计算区间划分方法,其特征在于:

3.由权利要求1所述的一种多项式计算区间的子区间划分方法,其特征在于:

4.由权利要求1所述的一种基于切比雪夫插值多项式的s型激活函数算法及其硬件结构,其特征在于:

5.由权利要求4所述的区间过滤模块,其特征在于:

6.由权利要求4所述的查找表模块,其特征在于:


技术总结
本发明公开了一种基于切比雪夫插值多项式的S型激活函数算法及其硬件结构。本发明设计的S型激活函数算法分为非多项式计算区间判断、子区间判断及获取系数、多项式计算三个步骤。基于该算法四次多项式实现的硬件电路由区间过滤模块、函数前处理模块、查找表模块、幂级数模块、浮点乘模块、浮点加模块、函数后处理模块组成,在单精度下满足忠实舍入(误差小于1ULP)的要求。通过将整个单精度浮点区间根据S型激活函数的渐进特性区分为多项式计算区间和非多项式计算区间,节省了硬件开销,降低了计算延时。本发明提出了一种新型多项式计算区间的子区间划分方法,能够在满足精度要求的前提下尽可能地降低查找表的资源占用。基于该算法实现的硬件结构以较小硬件开销为代价,能够解决S型激活函数浮点计算精度过低的问题,进而提高神经网络计算的精度。

技术研发人员:冯建华,张宇浩,侯明浩,王然,崔博文,陈宇航,李鹏龙,齐观平,叶红飞
受保护的技术使用者:北京大学
技术研发日:
技术公布日:2024/12/5

最新回复(0)