神经网络节点的自增减方法、计算机设备及存储介质与流程

文档序号:16432608发布日期:2018-12-28 20:15阅读:325来源:国知局
神经网络节点的自增减方法、计算机设备及存储介质与流程

本发明涉及神经网络领域,具体涉及一种神经网络节点的自增减方法、计算机设备及存储介质。

背景技术

神经网络(neuralnetworks,简写为nns)或称作连接模型(connectionmodel),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

神经网络由许多神经元组成,每个神经元也称为单元或者节点,神经元连接在一起形成网络。通常,神经元形成多层,分成三种类型的层,输入层、隐层和输出层,其中,第一层为输入层,第一层可包含一个或多个神经元;输出层可包含一个或多个神经元;隐层可以为一层或多层。每一层的神经元将把它们的输出馈送入下一隐层中神经元的输入。

当神经网络的训练集确定之后,输入层结点数和输出层结点数随之而确定,首先遇到的一个十分重要而又困难的问题是如何优化隐层的结点数。实验表明,一旦神经网络的隐层结点数过少,网络不能具有必要的学习能力和信息处理能力。反之,若神经网络的隐层节点数的过多,不仅会大大增加网络结构的复杂性(这一点对硬件实现的网络尤其重要),神经网络在学习过程中更易陷入局部极小点,而且会使神经网络的学习速度变得很慢。隐层的结点数的选择问题一直受到高度重视。



技术实现要素:

本发明的目的在于克服现有的技术问题,提出一种神经网络节点的自增减方法、计算机设备及其存储介质,以提高神经元的学习能力,减少神经元的无用计算量。

为达成上述目的,本发明提供了一种神经网络节点的自增减方法,应用于神经网络训练,所述神经网络节点的自增减方法包括如下步骤:

步骤一,根据需求设计神经网络结构,并使用数据对神经网络模型进行训练,使神经网络模型收敛或者神经网络的迭代次数超过一定的阈值;

步骤二,逐层的神经元进行增减操作处理,将当前的神经网络模型标记为mo;

判断当前层是否存在可减去的神经元,若当前层存在可减去的神经元,则进入步骤三,否则,进入步骤五;

步骤三,将当前层的神经元进行减操作处理,并将减操作处理后的神经网络模型标记为mnew;

步骤四,进行迭代训练,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数值与减操作处理前的神经网络模型mo的损失函数值的误差比小于第一设定值,则将神经网络模型设为神经网络模型mnew,返回步骤二;否则,将神经网络模型还原为神经网络模型mo,并进入步骤五;

在步骤四中,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数值与减操作处理前的神经网络模型mo的损失函数值的误差比小于第一设定值,则将神经网络模型设为神经网络模型mnew,设神经网络模型mnew的损失值为lossnew,神经网络模型mo的损失值为losso,第一设定值a1,当(lossnew-losso)/losso<a1时,接受神经网络模型mnew,当(lossnew-losso)/losso≥a1时,将神经网络模型还原为神经网络模型mo;

步骤五,将当前层的神经元进行增操作处理,并将增操作处理后的神经网络模型标记为mnew,在当前层增添一个神经元,并随机进行初始化,所述当前层为第i层,该增添的神经元为第i层第j个神经元,标记为xij,进入步骤六;

步骤六,使用数据仅对新增的神经元xij的输入权重向量winij和输出权重向量winoutij进行迭代更新,一定迭代次数或收敛后,再将该增操作处理后的神经网络模型mnew进行迭代训练;训练完毕后比较神经网络模型mnew的损失函数值与增操作处理前的神经网络模型mo的损失函数值的误差比小于第二设定值,则接受神经网络模型mnew,并返回步骤五,否则返回步骤二进入下一层神经元的增减操作处理,直至所有的神经元层处理完后结束。

在步骤六中,训练完毕后比较神经网络模型mnew的损失函数值与增操作处理前的神经网络模型mo的损失函数值的误差比小于第二设定值,则接受神经网络模型mnew,

设第二设定值为a2,当(lossnew-losso)/losso<a2时,接受增操作处理的神经网络模型mnew,当(lossnew-losso)/losso≥a2时,将神经网络模型还原为神经网络模型mo,其中,优选的,a2≤0。

进一步的,本发明一实施例,判断当前层是否存在可减去的神经元具体为:

当前层为第i层,当前节点为第i层第j个节点,记为xij,判断是否小于设定阈值,若小于设定阈值,则该节点xij可删去;

其中,节点xij的输入权重向量为winij={winij1,winij2...winijn,bij},节点xij的输出权重向量为woutij={woutij1,woutij2...woutijm},bij为偏置值。

进一步的,上述的神经网络节点的自增减方法中,将当前层的神经元进行减操作处理,具体为将该节点xij删除。

进一步的,本发明另一实施例,判断当前层是否存在可减去的神经元具体为:

当前层为第i层,下一层为第(i+1)层,其中,j≠j’,

取第i层的第j个神经元xij和第i层的第j’的神经元xij’,

当且仅当xij和xij’所连接的第(i+1)层神经元相同时进行比较,θ代表了两个输入权重的夹角,当θ小于设定的threshold(ф)时,判断当前层存在可减去节点;

其中,ф为设定值;xij的输入权重向量为winij={winij1,winij2...winijn,bij},xij的输出权重向量为woutij={woutij1,woutij2...woutijm},bij为偏置值;

xij’的输入权重向量为winij’={winij’1,winij’2...winij’n,bij’},xij’的输出权重向量为woutij’={woutij’1,woutij’2...woutij’m},bij’为偏置值。

进一步的,上述的神经网络节点的自增减方法中,将当前层的神经元进行减操作处理,具体为将节点xij和节点xij’均删除,并增加一个新的神经元xij”;

当winij·winij'>0,winij″=(winij+winij')/2,woutij″=woutij+woutij';

当winij·winij'<0,winij″=(-winij+winij')/2,woutij″=-woutij+woutij'。

进一步的,本发明还提供了一种计算机设备,所述计算机设备包括至少一个处理器、与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述的神经网络节点的自增减方法。

进一步的,本发还提供了非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行时实现上述的神经网络节点的自增减方法

本发明的神经网络节点的自增减方法、计算机设备及存储介质,与现有技术相比,本发明通过自动增减神经网络节点,一方面不仅能够提高神经元的学习能力,另一方面通过计算计算一个神经元的价值,当其值小于一个设定的阈值的时候,表明该节点的价值不大,可以删去;或者判断该当前层的xij和xij’的贡献是否相同,并删除xij和xij’,用xij”进行替代,可以减少神经元的无用计算量。

附图说明

此处所说明的附图用来提供对发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例1的所述神经网络节点的自增减方法的流程示意图;

图2为本发明实施例2的所述神经网络节点的自增减方法的流程示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明中,神经网络由许多神经元组成,每个神经元也称为单元或者节点,神经元连接在一起形成网络。通常,神经元形成多层,分成三种类型的层,输入层、隐层和输出层,其中,第一层为输入层,第一层可包含一个或多个神经元;输出层可包含一个或多个神经元;隐层可以为一层或多层。每一层的神经元将把它们的输出馈送入下一隐层中神经元的输入。

实施例1

本发明实施例提供了一种神经网络节点的自增减方法,应用于神经网络训练,所述神经网络节点的自增减方法包括如下步骤,如附图1所示:

步骤s11,根据需求设计神经网络结构,并使用数据对神经网络模型进行训练,使神经网络模型收敛或者神经网络的迭代次数超过一定的阈值;

步骤s12,逐层的神经元进行增减操作处理;

将当前的神经网络模型标记为mo,判断当前层是否存在可减去的神经元,若当前层存在可减去的神经元,则进入步骤s13,否则,进入步骤s15;

其中,当前层为第i层,当前节点为第i层第j个节点,记为xij,判断是否小于设定阈值,在本发明实施例,优选地,设定阈值小于0.01,需要说明的是,设定阈值可以根据模型和需求进行调整。

小于设定阈值,则该节点xij可删去。该表达式计算一个神经元的价值,当其值小于一个设定的阈值的时候,表明该节点的价值不大,可以删去,当其值大于等于一个设定的阈值的时候,表明该节点的价值大,不可删去;

其中输入权重向量为winij={winij1,winij2...winijn,bij},输出权重向量为woutij={woutij1,woutij2...woutijm},bij为偏置值。

步骤s13,将当前层的神经元进行减操作处理,将该节点xij删除,并将减操作处理后的神经网络模型标记为mnew,所述当前层为第i层;

步骤s14,进行迭代训练,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数的值与增减操作处理前的神经网络模型mo的损失函数值比较在可接受范围,则返回步骤s12;否则将神经网络模型还原为神经网络模型mo,并进入步骤s15;

神经网络模型的损失函数值越小,代表其模型性能越好,在步骤s14中,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数的值与增减操作处理前的神经网络模型mo的损失函数值比较在可接受范围,具体为,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数值与减操作处理前的神经网络模型mo的损失函数值的误差比小于第一设定值,则将神经网络模型设为神经网络模型mnew,设神经网络模型mnew的损失值为lossnew,神经网络模型mo的损失值为losso,第一设定值a1,当(lossnew-losso)/losso<a1时,接受神经网络模型mnew,当(lossnew-losso)/losso≥a1时,将神经网络模型还原为神经网络模型mo,其中,第一设定值a1可以根据模型和需要进行调整,在本发明实施例优选地,a1=0,需要说明的是,a1也可以大于0。

步骤s15,将当前层的神经元进行增操作处理,并将增操作处理后的神经网络模型标记为mnew,在当前层增添一个神经元,并随机进行初始化,所述当前层为第i层,该增添的神经元为第i层第j个神经元,标记为xij;进入步骤s16;

步骤s16,使用数据仅对新增的神经元xij的winij和winoutij进行迭代更新,一定迭代次数或收敛后,再将该增操作处理后的神经网络模型mnew进行迭代训练;训练完毕后比较神经网络模型mnew的损失函数值和神经网络模型mo的损失函数值,如果该值有很好的变化,则接受神经网络模型mnew,并返回步骤s15,否则返回步骤s12进入下一层(即第i+1层)神经元的增减操作处理,直至所有的神经元层处理完后结束。

神经网络模型的损失函数值越小,代表其模型性能越好,在步骤s16中,训练完毕后比较神经网络模型mnew的损失函数值和神经网络模型mo的损失函数值,如果该值有很好的变化,则接受神经网络模型mnew,具体为:训练完毕后比较神经网络模型mnew的损失函数值与增操作处理前的神经网络模型mo的损失函数值的误差比小于第二设定值,则接受神经网络模型mnew,设第二设定值为a2,当(lossnew-losso)/losso<a2时,接受增操作处理的神经网络模型mnew,当(lossnew-losso)/losso≥a2时,将神经网络模型还原为神经网络模型mo,其中,第二设定值a2可以根据模型和需要进行调整,在本发明实施例优选地,a2=0,当然a2也可以大于0。

实施例2

本发明实施例提供了一种神经网络节点的自增减方法,应用于神经网络训练,所述神经网络节点的自增减方法包括如下步骤,如附图2所示:

步骤s21,根据需求设计神经网络结构,并使用数据对神经网络模型进行训练,使神经网络模型收敛或者神经网络的迭代次数超过一定的阈值;

步骤s22,逐层的神经元进行增减操作处理;

将当前的神经网络模型标记为mo,判断当前层是否存在可减去的神经元,若当前层存在可减去的神经元,则进入步骤s23,否则,进入步骤s25;

当前层为第i层,下一层为第(i+1)层,其中,j≠j’,

取第i层的第j个神经元xij和第i层的第j’的神经元xij’,

当且仅当xij和xij’所连接的第(i+1)层神经元相同时进行比较,θ代表了两个输入权重的夹角,当θ小于设定的threshold(ф)时(θ<threshold(ф)),认为xij和xij’的贡献是相同的,判断当前层存在可减去节点;在本发明实施例优选地,ф<1°,需要说明的是,其中,ф至根据具体模型和需求调整。

步骤s23,将当前层的神经元进行减操作处理,并将减操作处理后的神经网络模型标记为mnew,所述当前层为第i层;

将当前层的神经元进行减操作处理,同时去掉xij和xij’,以一个新的神经元xij”替代两者作,具体为将节点xij和节点xij’均删除,并增加一个新的神经元xij”,

其中当winij·winij'>0,winij″=(winij+winij')/2,woutij″=woutij+woutij';当winij·winij'<0,winij″=(-winij+winij')/2,woutij″=-woutij+woutij';

步骤s24,进行迭代训练,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数的值与增减操作处理前的神经网络模型mo的损失函数值比较在可接受范围,则返回步骤s22;否则将神经网络模型还原为神经网络模型mo,并进入步骤s25;

神经网络模型的损失函数值越小,代表其模型性能越好,在步骤s24中,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数的值与增减操作处理前的神经网络模型mo的损失函数值比较在可接受范围,具体为,当神经网络模型mnew收敛或一定迭代后神经网络模型mnew的损失函数值与减操作处理前的神经网络模型mo的损失函数值的误差比小于第一设定值,则将神经网络模型设为神经网络模型mnew,设神经网络模型mnew的损失值为lossnew,神经网络模型mo的损失值为losso,第一设定值a1,当(lossnew-losso)/losso<a1时,接受神经网络模型mnew,当(lossnew-losso)/losso≥a1时,将神经网络模型还原为神经网络模型mo,其中,第一设定值a1可以根据模型和需要进行调整,在本发明实施例优选地,a1≤0,需要说明的是,a1可以大于0。

步骤s25,将当前层的神经元进行增操作处理,并将增操作处理后的神经网络模型标记为mnew,在当前层增添一个神经元,并随机进行初始化,所述当前层为第i层,该增添的神经元为第i层第j个神经元,标记为xij;进入步骤s26;

步骤s26,使用数据仅对新增的神经元xij的winij和winoutij进行迭代更新,一定迭代次数或收敛后,再将该增操作处理后的神经网络模型mnew进行迭代训练;训练完毕后比较神经网络模型mnew的损失函数值和神经网络模型mo的损失函数值,如果该值有很好的变化,则接受神经网络模型mnew,并返回步骤s25,否则返回步骤s22进入下一层(即第i+1层)神经元的增减操作处理,直至所有的神经元层处理完后结束。

神经网络模型的损失函数值越小,代表其模型性能越好,在步骤s26中,训练完毕后比较神经网络模型mnew的损失函数值和神经网络模型mo的损失函数值,如果该值有很好的变化,则接受神经网络模型mnew,具体为:训练完毕后比较神经网络模型mnew的损失函数值与增操作处理前的神经网络模型mo的损失函数值的误差比小于第二设定值,则接受神经网络模型mnew,设第二设定值为a2,当(lossnew-losso)/losso<a2时,接受增操作处理的神经网络模型mnew,当(lossnew-losso)/losso≥a2时,将神经网络模型还原为神经网络模型mo,其中,第二设定值a2可以根据模型和需要进行调整,在本发明实施例优选地,a2≤0,当然a2也可以大于0。

实施例3

在本发明实施例,还提供了一种计算机设备,包括至少一个处理器、与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行神经网络节点的自增减方法,所述神经网络节点的自增减方法与实施例1或2相同,本发明在此不再赘述。

实施例4

在本发明实施例,还提供了非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被处理器执行上述的神经网络节点的自增减方法,所述神经网络节点的自增减方法与实施例1或2相同,本发明在此不再赘述。

需要说明的是,本发明实施例1和实施例2为2种当前层是否存在可减去的神经元的判断方法,当然也可以在本发明实施例的技术启示下对两种进行结合。在本发明说明书的描述中,上述说明描述了本发明的优选实施例,但应当理解本发明并非局限于上述实施例,且不应看作对其他实施例的排除。本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

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