一种神经网络改进循环变化学习率的方法技术

技术编号:31497342 阅读:12 留言:0更新日期:2021-12-18 12:41
本发明专利技术属于深度学习领域,具体为一种神经网络改进循环变化学习率的方法,包括以下步骤:搭建Tensorflow或者Pytorch框架,建立BSGD梯度下降框架,并且设定权值和阈值,随后模型估算神经网络允许的最小学习率和最大学习率,设定阈值最小初始学习率,随后不断进行batch操作,然后在每个batch之后都进行模型网络的更新,然后同比增加学习率,统计每个batch操作计算出的损失值,从中计算出batch操作中的最优学习率,经过一定量的batch操作训练后,使用热重启的方式将学习率初始化为某个值,然后逐渐减少,最后重复迭代至损失值趋于稳定,本发明专利技术用热重启方式来替代学习率退火制度,这种重启可以随时进行,这样加快了学习的所需时间。间。间。

【技术实现步骤摘要】
一种神经网络改进循环变化学习率的方法


[0001]本专利技术属于深度学习领域,具体为一种神经网络改进循环变化学习率的方法。

技术介绍

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

技术实现思路

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

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

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

表示负区间数值。
[0028]另外,参考图1,当神经网络框架搭建完成,我们利用GPU进行训练,由于BGD每次迭代使用所有的样本对梯度进行更新,全数据集确定的更新方向更趋近于极值方向,则无法保证达到全局最优,另外由于SGD算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络改进循环变化学习率的方法,其特征在于,具体按照如下步骤实施:S1: 搭建Tensorflow或者Pytorch框架,进行神经网络框架的搭建,其中神经网络包括输入层、隐藏层、全链接层和输出层;S2: 建立BSGD梯度下降框架,并且设定权值和阈值,其中BSGD梯度下降的公式为:,其中为学习率,随后模型估算神经网络允许的最小学习率和最大学习率;S3:设定阈值最小初始学习率,随后不断进行batch操作,然后在每个batch之后都进行模型网络的更新,然后同比增加学习率;S4:统计每个batch操作计算出的损失值,随后进行描绘学习的变化曲线和损失值变化曲线,从中计算出batch操作中的最优学习率;S5:经过一定量的batch操作训练后,使用热重启的方式将学习率初始化为某个值,然后逐渐减少,此学习率设定为S4步骤中的最优学习率;S6:重复迭代至损失值趋于稳定。2.如权利要求1所述的一种神经网络改进循环变化学习率的方法,其特征在于:针对步骤S1:所述全链接层和所述输出层之间的损失函数为SRelu损失函数,其中SRelu的非线性公式为:,其中为SRelu对训练模型进行参数化得到的输出平均值,表示x对应的概率值,表示正区间数值,表示负区间数值。3.如权利要求1所述的一种神经网络改进循环变化学习率的方法,其特征在于:针对步骤S2:其中BSGD梯度下降算法包含BGD算法和SGD算法,在进行梯度下降时随机采样N个样本进行迭代训练,然后进行重复训练,其中迭代公式为:,其中为所述步骤S1中的隐藏层阈值。4.如权利要求3所述的一种神经网络改进循环...

【专利技术属性】
技术研发人员:董琴王昕黄乾峰陈瑾姜碧怡范浩楠史鸣凤
申请(专利权)人:云火科技盐城有限公司
类型:发明
国别省市:

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

1