一种适用于神经网络激活函数的计算装置及方法制造方法及图纸

技术编号:17346804 阅读:65 留言:0更新日期:2018-02-25 12:20
本发明专利技术涉及一种适用于神经网络激活函数的计算装置,包括查找单元,用于根据所述激活函数以及激活函数变量输入值确定对应的线性函数参数;以及计算单元,用于利用所述输入值和所述对应的线性函数参数进行计算;其中,所述线性函数参数可以根据激活函数的凹凸性进行优化。

A computing device and method for neural network activation function

The invention relates to a computing device suitable for neural network activation functions, including the search unit, according to the activation function and linear function of the corresponding parameter to determine the activation function of variable input value; and a computing unit, for linear function parameters using the input values and the corresponding calculation; among them, the linear the function parameters can be optimized according to the convexity of the activation function.

【技术实现步骤摘要】
一种适用于神经网络激活函数的计算装置及方法
本专利技术涉及计算领域,特别涉及一种适用于神经网络激活函数的计算装置及方法。
技术介绍
随着科技的发展,神经网络作为一种模拟人脑的机器学习技术一直都是人工智能研究领域的热点,并且在众多领域得到了广泛的应用,例如图像识别等。使用神经网络解决实际问题的重点之一在于利用激活函数为神经网络提供非线性建模能力,通常情况下,激活函数会出现在神经网络的每一层,尤其是在某些算法中出现的频率较高,例如sigmoid函数。因此,在对激活函数执行运算时,其运算速度和运算能耗直接制约着整个神经网络的计算效率。传统的神经网络计算装置,一般指的是通用型的算术逻辑单元,在对激活函数执行计算时,资源利用率较低,且执行速度较慢。特别是随着各类便携电子设备的发展,上述装置的电路硬件开销过大,已无法满足体积小、功耗低的应用场景的需求。因此,需要一种能够速度快能耗低的适用于神经网络的计算装置及方法。
技术实现思路
本专利技术提供一种适用于神经网络激活函数的计算装置及方法,包括查找单元,用于根据所述激活函数以及激活函数变量输入值确定对应的线性函数参数;以及计算单元,用于利用所述输入值和所述对应的线性函数参数进行计算;其中,所述线性函数参数根据激活函数的凹凸性进行了优化。优选的,所述查找单元包括匹配单元,用于将激活函数的输入值匹配至对应的函数区间;查找表单元,用于根据所述函数区间确定对应的线性函数参数。优选的,所述匹配单元还用于存储所述函数区间;所述查找表单元还用于存储所述函数区间对应的线性函数参数。优选的,所述线性函数参数包括斜率和截距,所述斜率是利用所述函数区间的端点值计算获得的;所述截距是利用所述函数区间的端点值计算获得的初始截距经最大误差优化后获得的;其中,所述最大误差是指所述激活函数在所述函数区间内的函数值与所述函数区间内的初始线性函数值的最大差值。优选的,若所述激活函数在所述函数区间是凹函数,则所述截距等于所述初始截距减去最大误差的二分之一。优选的,若所述激活函数在所述函数区间是凸函数,则所述截距等于所述初始截距加上最大误差的二分之一。优选的,所述查找表单元包括数值取反单元。优选的,在所述激活函数关于原点中心对称时,所述匹配单元将绝对值相等的所述激活函数的输入值匹配至相同的函数区间。优选的,所述计算单元包括乘法单元和加法单元。根据本专利技术的另一个方面,还提供一种适用于神经网络激活函数的计算方法,包括以下步骤:将所述激活函数划分为若干函数区间;利用所述函数区间的端点计算所述函数区间对应的线性函数参数,即斜率和截距;根据所述函数区间的凹凸性优化所述截距,将斜率和优化后的截距保存在查找表中;利用所述查找表查找与所述激活函数的输入值对应的函数区间的线性函数参数;利用所述激活函数的输入值以及对应的所述线性函数参数进行计算。相对于现有技术,本专利技术取得了如下有益技术效果:本专利技术提供的应用于神经网络激活函数的计算装置及方法,采用了分段近似的计算方法,将激活函数的计算范围分为若干区间,在区间内将激活函数近似为线性函数进行计算函数值,其中,通过利用激活函数的凹凸性对线性函数参数进行优化,提升了近似程度,在提高神经网络的计算速度的同时,保证了计算准确性。附图说明图1是本专利技术较佳实施例的激活函数的计算装置结构示意图。图2是本专利技术较佳实施例的计算单元的结构示意图。图3是利用图1所示的计算装置进行激活函数计算的方法流程图。具体实施方式为了使本专利技术的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本专利技术的实施例中提供的适用于神经网络激活函数的计算装置及方法进一步详细说明。在神经网络中使用激活函数,是为了加入非线性因素。通常来说,仅依赖线性模型无法准确地表达实际问题。例如利用神经网络进行图像处理时,可采用卷积网络对每个像素点进行赋值,虽然这个操作是线性的,但是实际样本不一定是线性可分的,因此需要引入非线性因素来解决线性模型无法解决的问题。众所周知,与激活函数相比,线性函数的分析计算更为快速简便。为了简化对激活函数的计算,专利技术人经研究提出了一种使用线性函数表示激活函数的计算方法。具体地,通过采用分段的方式,将激活函数划分为若干区间,在每一区间内采用线性近似的方式计算函数值,利用逼近理论,尽可能地逼近实际的激活函数。这种方法既可省去激活函数中的幂运算、除法运算和三角函数运算等复杂函数计算,也可节省电路面积开销及能量损耗。为了将激活函数分段近似为线性函数,需要将激活函数的计算范围划分为若干区间,同时利用各区间的端点值将各区间内的函数曲线近似地表示为连接端点值之间的直线。首先,将激活函数的计算范围划分为若干区间,然后以各个区间的区间端点值作为参考点,计算区间内线性函数的初始参数值。假设线性函数的表达式为y=ax+b,其中,a为斜率,b为y轴截距。函数区间端点的表达式为(x0,y0)和(x1,y1),则可计算得到对应线性函数参数值a和b。其次为了使得区间内的线性函数与实际激活函数更加逼近,可以根据激活函数的凹凸性,通过误差补偿的方式调整参数值b。以凹函数为例,若激活函数在当前区间为凹函数的时,经专利技术人多次实验表明,可以将最终的b值设置为:其中,b0表示利用区间端点直接计算得到的y轴截距值,b表示调整后的y轴截距值。Emax表示误差最大值,具体定义为:Emax=|fa(x0)-fi(x0)|max其中,fa表示激活函数表达式,fi表示利用区间端点直接计算得到的区间内线性逼近函数表达式,x0表示区间内求得误差最大值Emax最大值时,自变量x的取值。因此,Emax表示激活函数表达式fa与利用区间端点直接计算得到的区间内线性逼近函数表达式fi在区间内的误差最大值。最终的参数值确定后,可将获得的各个函数区间以及对应的线性函数参数值制成查找表储存在查找表单元中。从而使匹配单元接收函数变量输入值,并将该值匹配至对应的函数区间后,利用查找表单元可以查找到对应的线性函数参数,再利用计算单元根据函数变量以及相应的线性函数参数进行运算。在本专利技术的一个实施例中,所述激活函数还可以是凸函数,类似地,最终参数值可定义为:其中,b0表示利用区间端点直接计算得到的y轴截距值,b表示调整后的y轴截距值。Emax表示误差最大值,与上述定义相同。下面将以sigmoid函数为例,进一步说明本专利技术提供的适用于神经网络激活函数的计算装置。例如,计算sigmoid函数在区间[-2,2]内的函数值,已知sigmord函数的定义是:首先,将函数的计算范围[-2,2]划分为若干个函数区间。例如,可将函数进一步划分为四个区间:[-2,-1)、[-1,0)、[0,1)、[1,2]根据sigmoid函数定义,则可获得每个区间的端点值:(-2,0.119203)、(-1,0.268941)、(0,0.5)、(1,0.731059)、(2,0.880797)其次,利用上述获得的五个端点值分别计算对应的函数区间的初始函数参数值,如表1所示。表1不同函数区间对应的线性函数初始参数区间参数a参数[-2,-1)0.149738500.58132008[-1,0)0.231058580.50000000[0,1)0.231058580.50000000[1,2]0.149738500.5813本文档来自技高网...
一种适用于神经网络激活函数的计算装置及方法

【技术保护点】
一种适用于神经网络激活函数的计算装置,包括查找单元,用于根据所述激活函数以及激活函数变量输入值确定对应的线性函数参数;以及计算单元,用于利用所述输入值和所述对应的线性函数参数进行计算;其中,所述线性函数参数根据激活函数的凹凸性进行了优化。

【技术特征摘要】
1.一种适用于神经网络激活函数的计算装置,包括查找单元,用于根据所述激活函数以及激活函数变量输入值确定对应的线性函数参数;以及计算单元,用于利用所述输入值和所述对应的线性函数参数进行计算;其中,所述线性函数参数根据激活函数的凹凸性进行了优化。2.根据权利要求1所述的计算装置,其特征在于,所述查找单元包括匹配单元,用于将激活函数的输入值匹配至对应的函数区间;查找表单元,用于根据所述函数区间确定对应的线性函数参数。3.根据权利要求2所述的计算装置,其特征在于,所述匹配单元还用于存储所述函数区间;所述查找表单元还用于存储所述函数区间对应的线性函数参数。4.根据权利要求2所述的计算装置,其特征在于,所述线性函数参数包括斜率和截距,所述斜率是利用所述函数区间的端点值计算获得的;所述截距是利用所述函数区间的端点值计算获得的初始截距经最大误差优化后获得的;其中,所述最大误差是指所述激活函数在所述函数区间内的函数值与所述函数区间内的初始线性函数值的最大差值。5.根据权利要求4所述的计算装置,其特征在于,若所...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

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

1