深度学习中的学习率

     学习率是个抽象又简单的概念,神经网络的学习率指的是神经网络对数据进行学习的速率。神经网络学习的过程就是权重更新的过程,权重更新公式如下,其中η表示学习率:

     从公式中可以看出,更新权重的过程就是不断的修正θ参数的过程,而η可以影响θ变动的大小,也就是可以影响网络学习速率的大小。

       学习率过大,在算法优化的前期会加速学习,使得模型更容易接近局部或全局最优解。但是在后期会有较大波动,甚至出现损失函数的值围绕最小值徘徊,波动很大,始终难以达到最优,如下图蓝色曲线所示。所以引入学习率衰减的概念,直白点说,就是在模型训练初期,会使用较大的学习率进行模型优化,随着迭代次数增加,学习率会逐渐进行减小,保证模型在训练后期不会有太大的波动,从而更加接近最优解,如下图中上面一条绿色曲线所示。

学习率的选取并没有成熟的理论,更多的时候是根据经验来选择。

学习率选择不当会造成神经网络:

1.学习过速度过慢

2.停止学习

3.陷入局部最优

4.无法找到最优解


在集成式机器学习类库Keras中,对优化器和学习率做了很好的封装,以至于很多人搞不清楚怎么设置学习率,怎么使用优化器,两者到底有什么区别。

不同的学习率对模型训练过程中的损失值loss影响如图所示,好的学习率可以使得模型的loss即下降的快,又能达到很低的值。

而设置不当的优化器,要么梯度下降的速度很慢,要么梯度反复震荡,或者陷入局部极值导致loss难以降低。

优化器(optimizer) 的主要功能是在梯度下降的过程中,使得梯度更快更好的下降,从而尽快找到目标函数的最小值。

学习率(LearningRate) 是优化器中会用到的一个重要的参数。

遇到这种情况通常可以通过适当降低学习率(learning rate)来实现。但是,降低学习率又会延长训练所需的时间。

学习率衰减(learning rate decay) 就是一种可以平衡这两者之间矛盾的解决方案。

学习率衰减的基本思想是:学习率随着训练的进行逐渐衰减。

学习率衰减基本有两种实现方法:

线性衰减。例如:每过5个epochs学习率减半。

指数衰减。例如:随着迭代轮数的增加学习率自动发生衰减,每过5个epochs将学习率乘以0.9998。

具体算法如下:      

decayed_learning_rate=learning_rate*decay_rate^(global_step/decay_steps)      

其中decayed_learning_rate为每一轮优化时使用的学习率,learning_rate为事先设定的初始学习率,decay_rate为衰减系数,decay_steps为衰减速度。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能教学实践

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值