本申请涉及神经网络技术领域,特别涉及一种神经网络的参数优化方法、系统及电子设备。
背景技术:
2017年中国人工智能迎来了快速发展的新纪元。其中深度学习成为了其应用范围最广,并且在图像识别、围棋等方面取得了令人瞩目的成就。
在深度神经网络的训练中,梯度下降法成为了其应用最广的优化方法。该方法通过计算损失函数,使偏差通过梯度不断向后传播来不断修正神经网络的参数。当神经网络层数非常多时,在误差非常小的情况下,通过每层神经网络向后传播的数值也逐渐变小,甚至消失。在神经元中,比较常用的非线性激活函数是s型生长曲线,即s(x)=1/(1+e-x),取值区间为(0,1),因此损失函数l=0.5(y-s(x))2的取值范围也是(0,1),其中y为实际数值,取值为{0,1}。该函数的导数是s′(x)=s(x)(1-s(x)),其最大值为0.25。当神经网络的输出非常接近1的时候,其梯度的数值非常接近0,这使得神经网络的调节能力也偏向于0。但是梯度下降法具有收敛速度慢、容易陷入局部最优解、对初始值敏感、计算复杂等问题。当神经网络陷入局部最优解后,如果继续进行网络训练,其损失函数值不会有太大的变化,整个系统的性能也不会有太大的提升。然而更糟糕的是,如果继续训练时间太长,很容易使得神经网络出现过拟合的现象,这不仅会使整个神经网络的性能降低,而且还耗时耗力,带来一些不必要的损失。因此在神经网络陷入局部最优解后,打破局部最优解,可以使神经网络的解集空间跳到另一个空间,使神经网络的再次优化成为可能。一个好的打破局部最优解的策略对于改善神经网络性能具有重要的作用。反之,一个坏的打破局部最优解的策略可能会使整个系统不能工作,导致原有的训练结果前功尽弃。
现有的防止神经网络陷入局部最优解的方法主要由两种策略,第一种策略是基于梯度下降方法的参数控制策略,该策略是基于调节梯度下降的方向和步长进行调节优化,包括基于动量变化的梯度下降法,使得梯度下降的方向与前一个时刻梯度的方向有关,这样就可以避免搜索路径震荡问题;自适应子梯度下降调节法是根据各个参数的变化频率分别调节梯度下降步长;自适应动能评估模型也是以动量变化为基础的,其根据历史的梯度变化自动调节动量的变化。所有的这些方法都是调节梯度下降方法的参数,使其避免提前陷入局部最优解,并取得了非常好的效果。但是这些方法需要加入复杂的控制过程和对历史数据的记录,不仅带来了额外的计算消耗和内存消耗,还是会面临着陷入局部最优解的问题,且很难跳出局部最优解,还使得神经网络的学习过程在时间复杂度上不断增加,也不能充分挖掘神经网络的潜力。
第二个策略是将仿生算法和梯度下降方法整合在一起来跳出局部最优解的策略。其主要思想是产生多个粒子分别对神经网络进行训练,然后选择所有粒子中最好的作为最终结果。其中每个粒子的参数更新方式包含两个因子:全局搜索因子和局部搜索因子。全局搜索因子主要功能是神经网络的参数可以向各个方向进行跳转。局部搜索因子是以该粒子的或者全部粒子的历史最优质作为参考进行参数调节。这类方法虽然具有较强的搜索能力,但是粒子太多必定会消耗更多计算资源和内存资源。另外现在神经网络的参数个数有上百万之多,基于随机数的打破局部最优解的方法不能给与一个很好的指导方向,这会以大概率的事件使得搜索到的解效果不好,这也带来了一些无用的计算消耗。
技术实现要素:
本申请提供了一种神经网络的参数优化方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。
为了解决上述问题,本申请提供了如下技术方案:
一种神经网络的参数优化方法,包括:
步骤a:训练神经网络,并在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,执行步骤b;
步骤b:执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
步骤c:执行再优化操作:通过优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
本申请实施例采取的技术方案还包括:在所述步骤a中,所述神经网络包括输入层、隐含层和输出层,各层之间的计算公式为:
隐含层输入u(2):
u(2)=w(2)x
上述公式中,w(2)是隐含层的权重参数,上标(2)表示层数的标号值,x={x1,x2,…,xn}是一个n维向量;
隐含层输出a(2):
a(2)=f(u(2))
上述公式中,f是激活函数,若f为s型函数,则f(x)=1/(1+e-x);
输出层输入u(3):
u(3)=w(3)a(2)
上述公式中,w(3)是输出层的权重参数,上标(3)表示层数的标号值;
输出层输出o:
o=f(u(3))
上述公式中,o={o1,o2…,ok}是k维输出向量。
本申请实施例采取的技术方案还包括:在所述步骤b中,所述选取新的更新方向,使所述神经网络的权重向着新的更新方向更新具体包括:
步骤b1:选取平移值ε,根据平移值ε将实际输出值y向中心区域平移,所述平移为:
步骤b2:计算平移之后的误差:
步骤b3:调节梯度方向:将梯度的计算简化为一个常函数:
g(x)=c,c∈(0,0.25]
上述公式中,(0,0.25]是激活函数的导数取值区间;
所述输出层的输入调节方向为:
δuj=ejg(oj)
上述公式中,针对第j个神经元的修正,对于输出层的修正写成向量的形式:
δu=e.*g(e)
上述公式中,.*是点乘操作,是指对应的元素进行相乘;δu决定需要调节参数的变化方向;
所述输出层的参数值调节公式为:
上述公式中,ρ为学习效率,
对于隐含层的第i个神经元,调节方向为:
利用修正梯度调节隐含层参数:
上述公式中,xn是第n个输入神经元的输入。
本申请实施例采取的技术方案还包括:所述步骤b还包括:判断连续执行的跳出操作次数是否达到跳出操作次数阀值,如果没有达到跳出操作次数阀值,则继续执行跳出操作;如果达到跳出操作次数阀值,执行步骤c。
本申请实施例采取的技术方案还包括:所述步骤c还包括:
步骤c1:检测神经网络是否陷入局部最优解,如果没有陷入局部最优解,则继续执行参数再优化;如果陷入局部最优解,则执行步骤c2;
步骤c2:判定计数器的值是否大于或等于参数再优化次数,如果计数器的值大于或等于参数再优化次数,神经网络训练结束;否则,计数器的值增加1,并重新执行步骤b。
本申请实施例采取的另一技术方案为:一种神经网络的参数优化系统,包括:
网络训练模块:用于训练神经网络;
局部最优解判断模块:用于在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,通过跳出操作模块执行跳出操作;
跳出操作模块:用于执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
再优化模块:用于执行优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
本申请实施例采取的技术方案还包括:所述神经网络包括输入层、隐含层和输出层,各层之间的计算公式为:
隐含层输入u(2):
u(2)=w(2)x
上述公式中,w(2)是隐含层的权重参数,上标(2)表示层数的标号值,x={x1,x2,…,xn}是一个n维向量;
隐含层输出a(2):
a(2)=f(u(2))
上述公式中,f是激活函数,若f为s型函数,则f(x)=1/(1+e-x);
输出层输入u(3):
u(3)=w(3)a(2)
上述公式中,w(3)是输出层的权重参数,上标(3)表示层数的标号值;
输出层输出o:
o=f(u(3))
上述公式中,o={o1,o2…,ok}是k维输出向量。
本申请实施例采取的技术方案还包括:所述跳出操作模块包括:
误差计算单元:用于计算误差;选取平移值ε,根据平移值ε将实际输出值y向中心区域平移,所述平移为:
平移之后的误差计算公式为:
方向调节单元:用于调节梯度方向;将梯度的计算简化为一个常函数:
g(x)=c,c∈(0,0.25]
上述公式中,(0,0.25]是激活函数的导数取值区间;
所述输出层的输入调节方向为:
δuj=ejg(oj)
上述公式中,针对第j个神经元的修正,对于输出层的修正写成向量的形式:
δu=e.*g(e)
上述公式中,.*是点乘操作,是指对应的元素进行相乘;δu决定需要调节参数的变化方向;
所述输出层的参数值调节公式为:
上述公式中,ρ为学习效率,
对于隐含层的第i个神经元,调节方向为:
利用修正梯度调节隐含层参数:
上述公式中,xn是第n个输入神经元的输入。
本申请实施例采取的技术方案还包括第一次数判断模块,所述第一次数判断模块用于判断连续执行的跳出操作次数是否达到跳出操作次数阀值,如果没有达到跳出操作次数阀值,则通过跳出操作模块继续执行跳出操作;如果达到跳出操作次数阀值,通过所述再优化模块执行再优化。
本申请实施例采取的技术方案还包括第二次数判断模块,所述再优化模块还用于在优化过程中检测神经网络是否陷入局部最优解,如果没有陷入局部最优解,则继续执行参数再优化;如果陷入局部最优解,通过所述第二次数判断模块判定计数器的值是否大于或等于参数再优化次数,如果计数器的值大于或等于参数再优化次数,神经网络训练结束;否则,计数器的值增加1,并通过跳出操作模块重新执行跳出操作。
本申请实施例采取的又一技术方案为:一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的神经网络的参数优化方法的以下操作:
步骤a:训练神经网络,并在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,执行步骤b;
步骤b:执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
步骤c:执行再优化操作:通过优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的神经网络的参数优化方法、系统及电子设备通过跳出操作模块利用非正规化梯度下降法打破原有梯度下降的更新方向,使得神经网络的权重向着不同的方向更新,并与再优化模块进行不断迭代,有效的解决了神经网络陷入局部最优解后的系统性能无法提升的问题,从而改善系统的整体性能。
附图说明
图1是本申请实施例的神经网络的参数优化方法的流程图;
图2是本申请实施例的神经网络结构示意图;
图3是本申请实施例的神经网络的参数优化系统的结构示意图;
图4是本申请实施例提供的神经网络的参数优化方法的硬件设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的神经网络的参数优化方法针对神经网络经过多次训练后,其容易陷入局部最优解并且很难跳出局部最优解的问题,提出了陷入局部最优解的后优化方法。该方法主要根据基于梯度下降的误差反传算法梯度消失的原因,利用非正规化梯度代替原有算法中的梯度计算方法,从而打破原有的神经网络权重更新的方向,使得神经网络的权重向着不同的方向更新。同时由于神经网络对于权重非常敏感,为了防止权重跑到使神经网络不工作的解集空间,利用实际的正确数据对神经网络权重的更新方向进行指导,以确保跳出局部最优解后二次优化还可以带来系统整体性能的提升。
具体地,请参阅图1,是本申请实施例的神经网络的参数优化方法的流程图。本申请实施例的神经网络的参数优化方法包括以下步骤:
步骤100:利用bp(backpropagation,后向传播)算法训练一个神经网络;
在步骤100中,神经网络结构具体如图2所示。神经网络包括输入层、隐含层和输出层三层结构,神经网络的前向传输是由输入x计算得到输出o。其在各层之间的计算公式如下:
隐含层输入u(2):
u(2)=w(2)x(1)
公式(1)中,w(2)是隐含层的权重参数,上标(2)表示层数的标号值,x={x1,x2,…,xn}是一个n维向量。
隐含层输出a(2):
a(2)=f(u(2))(2)
公式(2)中,f是激活函数,若f为s型函数,则f(x)=1/(1+e-x)。
输出层输入u(3):
u(3)=w(3)a(2)(3)
公式(3)中,w(3)是输出层的权重参数,上标(3)表示层数的标号值。
输出层输出o:
o=f(u(3))(4)
公式(4)中,o={o1,o2…,ok}是k维输出向量,k由实际的输出值决定。
步骤200:在神经网络的训练过程中,检测该神经网络是否陷入局部最优解,如果陷入局部最优解,则执行步骤300;如果没有陷入局部最优解,则继续执行步骤100;
在步骤200中,检测神经网络是否陷入局部最优解的检测方式为:在连续的一定步数范围内(本申请实施例中设为5步,具体可根据训练需求进行设定),判断神经网络的损失函数值的变化幅度是否大于特定阈值。如果变化幅度大于该特定阈值,表示神经网络没有陷入局部最优解,则继续进行网络训练;如果变化幅度不大于该特定阈值,表示神经网络陷入局部最优解,则执行跳出局部最优解操作。
步骤300:通过跳出操作模块利用非正规化梯度的计算方法,打破神经网络的权重更新方向,并选取正确的跳出方向和合理的跳出强度,使得神经网络的权重向着不同的方向更新,从而快速跳出局部最优解;
在步骤300中,跳出操作模块主要利用非正规化梯度的计算方法代替原有的梯度计算方法,从而打破原有梯度下降的更新方向,使各层之间的权重向着不同的方向进行演变。该模块区别于传统梯度下降法的地方在于误差的计算方式和梯度的计算方式不同,因此带来了不同的权重更新方向。
具体地,权重方向的更新主要是通过误差反向传输调节各个层的参数值,不同的误差计算方式和梯度方向共同作用来打破局部最优解。权重方向的更新方法包括以下步骤:
步骤310:计算误差;
在步骤310中:误差的计算决定了整个网络参数调节幅度的大小,为了快速打破局部最优解,同时也不能使调节后的权重跳到一个神经网络不能工作的空间,其误差的计算还需要有实际数据的指导,先将实际输出值进行一个微小的平移,其平移操作为:
为了使修正误差的反向传输数值有意义,同时也为了平移后的数值与实际输出值相差不能很大,选取一个较小的平移值ε。该平移操作使得实际输出值向中心区域平移,由于实际输出值y的取值为0或者1,其平移的方向是不一样的,因此公式(5)也等价于:
平移完成之后的误差计算公式为:
上述中,通过基于实际数据改变误差的计算方式,使得误差从源头上偏离原有的参数更新方向。
步骤320:梯度方向调节;
在步骤320中,为了使权重跳向另外的方向,在调节计算差值的同时,还可以将差值以非正规化的梯度方向进行反向传输,其解决方法主要是改变梯度的计算方式,使得误差在中间层传输环节偏离原有的计算方式。
具体地,由于激活函数的导数的取值区间是(0,0.25],因此将梯度的计算简化为一个常函数,即:
g(x)=c,c∈(0,0.25](8)
其输出层的输入调节方向为:
δuj=ejg(oj)(9)
公式(9)中,针对第j个神经元的修正,对于输出层的修正则写成向量的形式:
δu=e.*g(e)(10)
公式(10)中,.*是点乘操作,是指对应的元素进行相乘。δu决定了需要调节参数的调节方向。
在调节方向的指导下,输出层的参数值的调节方式为:
公式(11)中,ρ为学习效率,其控制着变化的步长;
隐含层的调节需要先确定调节方向,这个可以通过在输出层计算出来的调节方向δu和权重参数w(3)来确定。然后继续反传调节隐含层的权重参数,隐含层权重参数调节的具体过程如下:
调节方向是在δu的指导下进行的,对于隐含层的第i个神经元,其调节方向为:
利用修正梯度调节隐含层参数:
公式(13)中,xn是第n个输入神经元的输入。
上述中,在执行跳出操作过程中,对参数ε、c和ρ的控制有利于选择合理的跳出强度。
步骤400:判断跳出操作模块连续执行的跳出操作次数是否达到预设的跳出操作次数阀值,如果没有达到预设的跳出操作次数阀值,则继续执行步骤300,直到连续执行的跳出操作次数达到跳出操作次数阀值;如果达到预设的跳出操作次数阀值,执行步骤500;
在步骤400中,跳出操作次数阀值n2设定为:1≤n2≤5。
步骤500:通过再优化模块执行优化算法对神经网络进行参数再优化,并检测神经网络是否陷入局部最优解,如果没有陷入局部最优解,则继续步骤500;如果陷入局部最优解,则执行步骤600;
在步骤500中,跳出操作模块在跳出局部最优解的同时,也使得系统的训练误差增大、系统性能下降,再优化模块主要是再次发挥梯度下降方法的优化能力,使得神经网络重新找到一个新的最优解。本申请实施例中,通过经典bp算法作为再次优化的优化算法。本申请通过将跳出操作和再优化操作集成在一起,两者相互作用,共同实现神经网络整体性能的改善。
步骤600:判定计数器的值是否大于或等于参数再优化次数,如果计数器的值大于或等于参数再优化次数,执行步骤700;否则,执行步骤800;
在步骤600中,计数器的初始值为n=1,参数再优化次数n1≥1。
步骤700:神经网络训练结束;
步骤800:计数器的值增加1,并重新执行步骤300。
请参阅图3,是本申请实施例的神经网络的参数优化系统的结构示意图。本申请实施例的神经网络的参数优化系统包括网络训练模块、局部最优解判断模块、跳出操作模块、第一次数判断模块、再优化模块和第二次数判断模块。
网络训练模块:用于利用bp(backpropagation,后向传播)算法训练一个神经网络;本申请实施例中,神经网络包括输入层、隐含层和输出层三层结构,神经网络的前向传输是由输入x计算得到输出o。其在各层之间的计算公式如下:
隐含层输入u(2):
u(2)=w(2)x(1)
公式(1)中,w(2)是隐含层的权重参数,上标(2)表示层数的标号值,x={x1,x2,…,xn}是一个n维向量。
隐含层输出a(2):
a(2)=f(u(2))(2)
公式(2)中,f是激活函数,若f为s型函数,则f(x)=1/(1+e-x)。
输出层输入u(3):
u(3)=w(3)a(2)(3)
公式(3)中,w(3)是输出层的权重参数,上标(3)表示层数的标号值。
输出层输出o:
o=f(u(3))(4)
公式(4)中,o={o1,o2…,ok}是k维输出向量,k由实际的输出值决定。
局部最优解判断模块:用于在神经网络的训练过程中,检测该神经网络是否陷入局部最优解,如果陷入局部最优解,通过跳出操作模块跳出局部最优解;如果没有陷入局部最优解,则通过网络训练模块继续训练网络;其中,检测神经网络是否陷入局部最优解的检测方式为:在连续的一定步数范围内(本申请实施例中设为5步,具体可根据训练需求进行设定),判断神经网络的损失函数值的变化幅度是否大于特定阈值。如果变化幅度大于该特定阈值,表示神经网络没有陷入局部最优解,则继续进行网络训练;如果变化幅度不大于该特定阈值,表示神经网络陷入局部最优解,则执行跳出局部最优解操作。
跳出操作模块:用于利用非正规化梯度的计算方法,打破神经网络的权重更新方向,并选取正确的跳出方向和合理的跳出强度,使得神经网络的权重向着不同的方向更新,从而快速跳出局部最优解;本申请实施例中,跳出操作模块主要利用非正规化梯度的计算方法代替原有的梯度计算方法,从而打破原有梯度下降的更新方向,使各层之间的权重向着不同的方向进行演变。跳出操作模块区别于传统梯度下降法的地方在于误差的计算方式和梯度的计算方式不同,因此带来了不同的权重更新方向。权重方向的更新主要是通过误差反向传输调节各个层的参数值,不同的误差计算方式和梯度方向共同作用来打破局部最优解。
具体地,跳出操作模块包括误差计算单元和方向调节单元;
误差计算单元:用于计算误差;误差的计算决定了整个网络参数调节幅度的大小,为了快速打破局部最优解,同时也不能使调节后的权重跳到一个神经网络不能工作的空间,其误差的计算还需要有实际数据的指导,先将实际输出值进行一个微小的平移,其平移操作为:
为了使修正误差的反向传输数值有意义,同时也为了平移后的数值与实际输出值相差不能很大,选取一个较小的平移值ε。该平移操作使得实际输出值向中心区域平移,由于实际输出值y的取值为0或者1,其平移的方向是不一样的,因此公式(5)也等价于:
平移完成之后的误差计算公式为:
上述中,通过基于实际数据改变误差的计算方式,使得误差从源头上偏离原有的参数更新方向。
方向调节单元:用于调节梯度方向;为了使权重跳向另外的方向,在调节计算差值的同时,还可以将差值以非正规化的梯度方向进行反向传输,其解决方法主要是改变梯度的计算方式,使得误差在中间层传输环节偏离原有的计算方式。具体地,方向调节单元调节梯度方向的方式为:
由于激活函数的导数的取值区间是(0,0.25],因此将梯度的计算简化为一个常函数,即:
g(x)=c,c∈(0,0.25](8)
其输出层的输入调节方向为:
δuj=ejg(oj)(9)
公式(9)中,针对第j个神经元的修正,对于输出层的修正则写成向量的形式:
δu=e.*g(e)(10)
公式(10)中,.*是点乘操作,是指对应的元素进行相乘。δu决定了需要调节参数的调节方向。
在调节方向的指导下,输出层的参数值的调节方式为:
公式(11)中,ρ为学习效率,其控制着变化的步长;
隐含层的调节需要先确定调节方向,这个可以通过在输出层计算出来的调节方向δu和权重参数w(3)来确定。然后继续反传调节隐含层的权重参数,隐含层权重参数调节的具体过程如下:
调节方向是在δu的指导下进行的,对于隐含层的第i个神经元,其调节方向为:
利用修正梯度调节隐含层参数:
公式(13)中,xn是第n个输入神经元的输入。
上述中,在执行跳出操作过程,对参数ε、c和ρ的控制有利于选择合理的跳出强度。
第一次数判断模块:用于判断跳出操作模块连续执行的跳出操作次数是否达到预设的跳出操作次数阀值,如果没有达到预设的跳出操作次数阀值,则通过跳出操作模块继续执行跳出操作,直到连续执行的跳出操作次数达到跳出操作次数阀值;如果达到预设的跳出操作次数阀值,通过再优化模块对神经网络进行参数再优化;其中,跳出操作次数阀值n2设定为:1≤n2≤5。
再优化模块:用于执行优化算法对神经网络进行参数再优化,并检测神经网络是否陷入局部最优解,如果没有陷入局部最优解,则继续进行参数再优化;如果陷入局部最优解,则通过第二次数判断模块判断再优化次数;其中,跳出操作模块在跳出局部最优解的同时,也使得系统的训练误差增大、系统性能下降,再优化模块主要是再次发挥梯度下降方法的优化能力,使得神经网络重新找到一个新的最优解。本申请实施例中,再优化模块通过经典bp算法作为再次优化的优化算法。本申请通过将跳出操作和再优化操作集成在一起,两者相互作用,共同实现神经网络整体性能的改善。
第二次数判断模块:用于判定计数器的值是否大于或等于参数再优化次数,如果计数器的值大于或等于参数再优化次数,神经网络训练结束;否则,计数器的值增加1,并通过跳出操作模块重新执行跳出操作;其中,计数器的初始值为n=1,参数再优化次数n1≥1。
为了验证本申请的可行性,通过使用的mnist手写字体数据(包括60000个训练样本和10000个测试样本)对本申请实施例的神经网络的参数优化方法及系统进行验证,结果证明本申请可以在训练集上有效降低神经网络的损失函数值,还可以在测试集上提高预测的准确度。
图4是本发明实施例提供的神经网络的参数优化方法的硬件设备结构示意图。如图4所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入系统和输出系统。
处理器、存储器、输入系统和输出系统可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入系统可接收输入的数字或字符信息,以及产生信号输入。输出系统可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:
步骤a:训练神经网络,并在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,执行步骤b;
步骤b:执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
步骤c:执行再优化操作:通过优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例提供的方法。
本发明实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:
步骤a:训练神经网络,并在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,执行步骤b;
步骤b:执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
步骤c:执行再优化操作:通过优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:
步骤a:训练神经网络,并在训练过程中检测所述神经网络是否陷入局部最优解,如果陷入局部最优解,执行步骤b;
步骤b:执行跳出操作:利用非正规化梯度计算方法打破所述神经网络的权重更新方向,并选取新的更新方向,使所述神经网络的权重向着新的更新方向更新;
步骤c:执行再优化操作:通过优化算法对所述神经网络进行参数再优化,使所述神经网络找到新的最优解。
本申请实施例的神经网络的参数优化方法、系统及电子设备通过跳出操作模块利用非正规化梯度下降法打破原有梯度下降的更新方向,使得神经网络的权重向着不同的方向更新,并与再优化模块进行不断迭代,有效的解决了神经网络陷入局部最优解后的系统性能无法提升的问题,从而改善系统的整体性能。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。