一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络改进循环变化学习率的方法与流程

2021-12-17 21:09:00 来源:中国专利 TAG:


1.本发明属于深度学习领域,具体为一种神经网络改进循环变化学习率的方法。


背景技术:

2.神经网络也称作连接模型,它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的
3.目前深度学习使用的都是非常简单的一阶收敛算法,梯度下降法,不管有多少自适应的优化算法,本质上都是对梯度下降法的各种变形,所以初始学习率对深层网络的收敛起着决定性的作用。
4.如果学习率太小,会导致网络loss下降非常慢,如果学习率太大,那么参数更新的幅度就非常大,就会导致网络收敛到局部最优点,或者loss直接开始增加。


技术实现要素:

5.本发明的目的在于提供一种神经网络改进循环变化学习率的方法,该系统和方法在进行更新学习率的时候,在每次重启时,学习率初始化为某个值,然后逐渐减少,优化学习率不是从头开始,而是从模型上一个步骤收敛的参数开始的,这样加快了学习的所需时间,这种积极的退火机制使模型能快速收敛到一个新的且更好的方案。
6.为实现上述目的,本发明提供如下技术方案:一种神经网络改进循环变化学习率的方法,具体按照如下步骤实施:
7.s1:搭建tensorflow或者pytorch框架,进行神经网络框架的搭建,其中神经网络包括输入层、隐藏层、全链接层和输出层,神经网络模型与回归模型为构造线性模型,多层神经网络在输入层与输出层之间添加了n个隐藏层。
8.s2:建立bsgd梯度下降框架,并且设定权值和阈值,其中bsgd梯度下降的公式为:其中α为学习率,随后模型估算神经网络允许的最小学习率和最大学习率,利用批量梯度下降的方式进行找到局部最优解。
9.s3:设定阈值最小初始学习率,随后不断进行batch操作,然后在每个batch之后都进行模型网络的更新,然后同比增加学习率α。
10.s4:统计每个batch操作计算出的损失值,随后进行描绘学习的变化曲线和损失值变化曲线,从中计算出batch操作中的最优学习率。
11.s5:经过一定量的batch操作训练后,使用热重启的方式将学习率初始化为某个值,然后逐渐减少,此学习率设定为s4步骤中的最优学习率。s6:重复迭代至损失值趋于稳定。
12.在上述技术方案中,我们神经网络不管是隐藏层或者输出层,维度都是可以任意的。
13.优选地,针对步骤s1:所述全链接层和所述输出层之间的损失函数为srelu损失函数,其中srelu的非线性公式为:其中o
srelu
(x)为srelu对训练模型进行参数化得到的输出平均值,w表示x对应的概率值,x

表示正区间数值,x

表示负区间数值。
14.优选地,针对步骤s2:其中bsgd梯度下降算法包含bgd算法和sgd算法,在进行梯度下降时随机采样n个样本进行迭代训练,然后进行重复训练,其中bsgd梯度下降迭代公式为:其中θ
j
为所述步骤s1中的隐藏层阈值,由于bgd算法无法保证达到全局最优,另外sgd算法无法保证最优解精度,所以本发明进行改进bgd算法和sgd进行梯度下降处理。
15.优选地,所述的bsgd梯度下降中n个样本采样为热重启训练策略,将网络跳出局部,其中n在合理的边界之间循环变化,避免了退火策略中的缺点。
16.优选地,所述的bsgd梯度下降输出的梯度值均暂存在存储器中,随后进行平均值计算,然后更新变量给输入层,使得梯度下降的最优解更加准确。
17.优选地,针对步骤s3:所述s3步骤中的batch操作为定义在更新内部模型参数之前要处理的样本数,然后对循环迭代一个或多个样本并进行预测,每个batch操作之间进行预测与预期输出变量进行比较,并计算误差,并且将信号返回所述s1步骤中的输入层,随后再次更新权值,使得迭代进行更新权值。
18.优选地,所述步骤s5中的热重启之前会在网络训练的时候设定一个重启周期,当达到这个重启的周期的时候热重启进行启动,随后初始化学习率同时模型使用上一次热重启的参数作为初始化,更新更加的快速。
19.优选地,:针对步骤s5:每次热重启时学习率初始化为某个值,然后逐渐减少,所述热重启可以随时进行,代替了退火学习率机制。
20.优选地,所述热重启之后,用一个高的初始学习率从根本上把参数从先前的收敛到的最小值弹射到损失函数曲面的不同区域,能快速收敛到一个新的且更好的方案。
21.优选地,针对步骤s6:训练模型趋于稳定后,继续使用所述热重启初始化学习率,解决了模型可能会陷入到鞍点的缺点。
22.综上,本发明的方法,与现有技术相比,本发明用热重启方式来替代学习率退火制度,在每次重启时,学习率初始化为某个值,然后逐渐减少,重要的是,这种重启可以随时进行,因为优化不是从头开始,而是从模型上一个步骤收敛的参数开始的。这样加快了学习的所需时间,而且重启后,用一个高的初始学习率从根本上把参数从先前的收敛到的最小值弹射到损失函数曲面的不同区域,这种积极的退火机制使模型能快速收敛到一个新的且更好的方案,并且结局了模型可能陷入鞍点的缺点。
附图说明
23.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
24.图1为本发明流程图;
25.图2为本发明收敛后热重启流程图。
具体实施方式
26.以下将配合附图及实施例来详细说明本技术的实施方式,借此对本技术如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
27.请参阅图1

2,本发明提供一种实施例,一种神经网络改进循环变化学习率的方法,首先我们需要进行神经网络搭建,创建python3.7环境,本发明利用tensorflow或者pytorch框架为底层进行搭建,进行神经网络框架的搭建,其中神经网络包括输入层、隐藏层、全链接层和输出层,神经网络模型与回归模型为构造线性模型,多层神经网络在输入层与输出层之间添加了n个隐藏层,其中所述全链接层和所述输出层之间的损失函数为srelu损失函数,其中srelu的非线性公式为:其中o
srelu
(x)为srelu对训练模型进行参数化得到的输出平均值,w表示x对应的概率值,x

表示正区间数值,x

表示负区间数值。
28.另外,参考图1,当神经网络框架搭建完成,我们利用gpu进行训练,由于bgd每次迭代使用所有的样本对梯度进行更新,全数据集确定的更新方向更趋近于极值方向,则无法保证达到全局最优,另外由于sgd算法在更新每一个参数时,都要使用总数据集,随着数据规模的增大,训练速度降低。因为其只是利用了训练集的一部分知识,因此其解为局部最优解,精度较低,我们进行建立bsgd的目的是为了克服bgd和sgd的缺点,建立bsgd梯度下降框架,并且设定权值和阈值,其中bsgd梯度下降的公式为:其中α为学习率,bsgd梯度下降中n个样本采样为热重启训练策略,将网络跳出局部,其中n在合理的边界之间循环变化,避免了退火策略中的缺点,随后模型估算神经网络允许的最小学习率和最大学习率,利用批量梯度下降的方式进行找到局部最优解,结合两者的优点,可以获得更快的训练速度和更高的训练精度。
29.当我们设定完成bsgd梯度算法后,然后进行设定阈值最小初始学习率,随后不断进行batch操作,然后在每个batch之后都进行模型网络的更新,然后同比增加学习率α,其中我们的batch操作用于定义在更新内部模型参数之前要处理的样本数。神经网络中每一次参数的更新的损失函数并不是由一个样本得到的,而是由一个batch的数据加权得到,然后对循环迭代一个或多个样本并进行预测,每个batch操作之间进行预测与预期输出变量进行比较,并计算误差,并且将信号返回所述s1步骤中的输入层,随后再次更新权值,使得迭代进行更新权值。
30.参考图1,统计每个batch操作计算出的损失值的目的是进行描绘学习的变化曲线和损失值变化曲线,从中计算出batch操作中的最优学习率,然后方便进行下一次迭代,经过一定量的batch操作训练后,使用热重启的方式将学习率初始化为某个值,然后逐渐减少,此学习率设定为s4步骤中的最优学习率,最后重复迭代至损失值趋于稳定。
31.为了所期望的是神经网络模型的损失值应该越来越接近全局最小值,如果当层循
环迭代的数据比较上一次迭代的数据下降了,那么我们会进行学习率减少的操作,反之,如果当层循环迭代的数据比较上一次迭代的数据上升了,我们会进行学习率保持操作。
32.为了加快了学习的所需时间,用热重启方式来替代学习率退火制度,在每次重启时,学习率初始化为某个值,然后逐渐减少,热重启之前会在网络训练的时候设定一个重启周期,当达到这个重启的周期的时候热重启进行启动,随后初始化学习率同时模型使用上一次热重启的参数作为初始化,更新更加的快速,而且热重启后,用一个高的初始学习率从根本上把参数从先前的收敛到的最小值弹射到损失函数曲面的不同区域,这种积极的退火机制使模型能快速收敛到一个新的且更好的方案。
33.为了克服训练可能会陷入到鞍点,参考图2,每当训练完成收敛时,也使用热重启的方式,将学习率初始化一个较高的值,再次循环迭代n次,得到全局最优。
34.如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。
35.需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
36.上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献