sigmoid函数的校正方法及装置与流程

文档序号:20756866发布日期:2020-05-15 17:29阅读:330来源:国知局
sigmoid函数的校正方法及装置与流程

本发明涉及终端技术领域,尤其涉及sigmoid函数的校正方法及装置。



背景技术:

目前,sigmoid函数(也叫logistic函数,用于隐层神经元输出)是神经网络重要的激活函数之一,其计算值的准确与否,直接影响每一层网络的输出。特别是在诸如yolo等图像网络中,sigmoid函数是最后计算confidence/probability的直接函数,会直接影响网络的置信度和分类结果,因此提高sigmoid函数的计算精度有确切的需求和必要性。



技术实现要素:

本发明实施例提供了sigmoid函数的校正方法及装置。所述技术方案如下:

根据本发明实施例的第一方面,提供一种sigmoid函数的校正方法,包括:

接收输入的sigmoid函数的当前自变量;

根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值;其中,所述sigmoid函数的数值表格中存储有若干自变量以及所述若干自变量各自对应的sigmoid输出值;

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正。

在一个实施例中,所述根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值,包括:

根据所述当前自变量查询所述数值表格中与所述当前自变量相邻的自变量作为所述关联自变量;

查询所述数值表格中记录的与所述关联自变量对应的输出值作为所述关联输出值。

在一个实施例中,所述方法还包括:

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,确定拟合多项式;

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正,包括:

根据所述关联自变量、所述关联自变量对应的关联输出值、所述当前自变量以及所述拟合多项式,确定所述当前自变量对应的当前输出值;

根据所述当前自变量以及所述当前输出值,对所述sigmoid函数进行校正。

在一个实施例中,所述方法还包括:

确定所述当前自变量的变量范围;

根据所述变量范围对所述拟合多项式中的参数进行修正。

根据本发明实施例的第二方面,提供一种sigmoid函数的校正装置,包括:

接收模块,用于接收输入的sigmoid函数的当前自变量;

查询模块,用于根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值;其中,所述sigmoid函数的数值表格中存储有若干自变量以及所述若干自变量各自对应的sigmoid输出值;

校正模块,用于根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正。

在一个实施例中,所述查询模块包括:

第一查询子模块,用于根据所述当前自变量查询所述数值表格中与所述当前自变量相邻的自变量作为所述关联自变量;

第二查询子模块,用于查询所述数值表格中记录的与所述关联自变量对应的输出值作为所述关联输出值。

在一个实施例中,所述校正装置还包括:

第一确定模块,用于根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,确定拟合多项式;

所述校正模块包括:

确定子模块,用于根据所述关联自变量、所述关联自变量对应的关联输出值、所述当前自变量以及所述拟合多项式,确定所述当前自变量对应的当前输出值;

校正子模块,用于根据所述当前自变量以及所述当前输出值,对所述sigmoid函数进行校正。

在一个实施例中,所述校正装置还包括:

第二确定模块,用于确定所述当前自变量的变量范围;

修正模块,用于根据所述变量范围对所述拟合多项式中的参数进行修正。

本发明的实施例提供的技术方案可以包括以下有益效果:

在接收到当前自变量之后,可查询sigmoid函数的数值表格,以自动确定与当前自变量相关的关联自变量以及与该关联自变量对应的关联输出值,然后基于该关联自变量、该关联输出值以及该当前自变量,对sigmoid函数进行自动校正,从而使得sigmoid函数更加精准,以提高sigmoid函数的计算精度,进而使得神经网络的输出更加准确。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种sigmoid函数的校正方法的流程图。

图2是根据一示例性实施例示出的一种sigmoid函数的校正装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

为了解决上述技术问题,本发明实施例提供了一种sigmoid函数的校正方法,该方法sigmoid函数的校正程序、系统或装置中,且该方法对应的执行主体可以是终端或服务器,如图1所示,该方法包括步骤s101至步骤s103:

在步骤s101中,接收输入的sigmoid函数的当前自变量;

在步骤s102中,根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值;其中,所述sigmoid函数的数值表格中存储有若干自变量以及所述若干自变量各自对应的sigmoid输出值;

sigmoid函数的数值表格中记录有sigmoid函数的多个输入值和与各输入值对应的输出值,即该数值表格中有多组sigmoid函数值(x,y)。

在步骤s103中,根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正。

在接收到当前自变量之后,可查询sigmoid函数的数值表格,以自动确定与当前自变量相关的关联自变量以及与该关联自变量对应的关联输出值,然后基于该关联自变量、该关联输出值以及该当前自变量,对sigmoid函数进行自动校正,从而使得sigmoid函数更加精准,以提高sigmoid函数的计算精度,进而使得神经网络的输出更加准确。

在一个实施例中,所述根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值,包括:

根据所述当前自变量查询所述数值表格中与所述当前自变量相邻的自变量作为所述关联自变量;

与当前自变量相邻的自变量和该当前自变量的差值小于一定阈值,例如:如果当前自变量是x0,而数值表格中有一个自变量x与x0相邻,且x-x0的差值小于该阈值,则该自变量x为关联自变量。

查询所述数值表格中记录的与所述关联自变量对应的输出值作为所述关联输出值。

在基于当前自变量查询数值表格时,可确定与该当前自变量相邻的自变量自动作为关联自变量,进而基于该数值表格记录与该关联自变量对应的输出值作为该关联自变量。

在一个实施例中,所述方法还包括:

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,确定拟合多项式;

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正,包括:

根据所述关联自变量、所述关联自变量对应的关联输出值、所述当前自变量以及所述拟合多项式,确定所述当前自变量对应的当前输出值;

根据所述当前自变量以及所述当前输出值,对所述sigmoid函数进行校正。

根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,可自动确定校正该sigmoid函数的拟合多项式,例如:通过查数值表格得到当前自变量x最近的2个基准对(s0,y0)/(s1,y1),以及真实计算的sigmoid函数值(x,y),对上述3个数据对,在除以diff=(x-s0)的基础上对diff进行一次多项式拟合,得到拟合多项式(a*diff+b),然后结合拟合多项式确定该当前输出值,进而根据当前自变量以及当前输出值,对所述sigmoid函数进行自动校正,从而使得sigmoid函数更加精准,以提高sigmoid函数的计算精度,进而使得神经网络的输出更加准确。

在一个实施例中,所述方法还包括:

确定所述当前自变量的变量范围;

根据所述变量范围对所述拟合多项式中的参数进行修正。

当该当前自变量存在多个时,可确定多个自变量所覆盖的变量范围,进而根据该变量范围对该拟合多项式中的参数进行自动修正,以提高拟合多项式的准确性,进而提高sigmoid函数的准确性,使得sigmoid函数的平均误差减少了约75%。

例如:当拟合多项式(a*diff+b)时,可确定当前自变量x所需要覆盖的范围,例如1~10,然后计算b,进而对所得到的b的集合进行统计等处理,得到(a,b)的3对典型值,以对拟合多项式进行自动修正。

下面将结合其他实施例进一步详细说明本发明的技术方案:

对通过查表法得到x最近的2个基准对(s0,y0)/(s1,y1),以及真实计算的sigmoid函数值(x,y)。对上述3个数据对,在除以diff=(x-s0)的基础上对diff进行一次多项式拟合,得到拟合多项式(a*diff+b)。

对x所需要覆盖的范围,例如1~10,计算b,然后对所得到的b的集合进行统计等处理,得到(a,b)的3对典型值。

由此得到本专利所述的sigmoid计算方法:

y_actual=y0+diff*(a*diff+b)*(y1-y0)/(s1-s0)

与现有的方法相比,仅仅增加了一次乘加,但是计算误差减小了75%。

可见本专利在基本不影响计算复杂度的情况下,大大提升了sigmoid函数值的计算精度。

最后,需要明确的是:本领域技术人员可根据实际需求,将上述多个实施例进行自由组合。

对应本发明实施例提供的上述sigmoid函数的校正方法,本发明实施例还提供一种sigmoid函数的校正装置,如图2所示,该装置包括:

接收模块201,用于接收输入的sigmoid函数的当前自变量;

查询模块202,用于根据所述当前自变量查询sigmoid函数的数值表格,以确定与所述当前自变量相关的关联自变量以及所述关联自变量对应的关联输出值;其中,所述sigmoid函数的数值表格中存储有若干自变量以及所述若干自变量各自对应的sigmoid输出值;

校正模块203,用于根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,对所述sigmoid函数进行校正。

在一个实施例中,所述查询模块包括:

第一查询子模块,用于根据所述当前自变量查询所述数值表格中与所述当前自变量相邻的自变量作为所述关联自变量;

第二查询子模块,用于查询所述数值表格中记录的与所述关联自变量对应的输出值作为所述关联输出值。

在一个实施例中,所述校正装置还包括:

第一确定模块,用于根据所述关联自变量、所述关联自变量对应的关联输出值以及所述当前自变量,确定拟合多项式;

所述校正模块包括:

确定子模块,用于根据所述关联自变量、所述关联自变量对应的关联输出值、所述当前自变量以及所述拟合多项式,确定所述当前自变量对应的当前输出值;

校正子模块,用于根据所述当前自变量以及所述当前输出值,对所述sigmoid函数进行校正。

在一个实施例中,所述校正装置还包括:

第二确定模块,用于确定所述当前自变量的变量范围;

修正模块,用于根据所述变量范围对所述拟合多项式中的参数进行修正。

本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1