前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习(五)学习率的调节

深度学习(五)学习率的调节

作者头像
全栈程序员站长
发布2022-08-31 10:19:40
4.9K0
发布2022-08-31 10:19:40
举报

大家好,又见面了,我是你们的朋友全栈君。

学习率对于深度学习是一个重要的超参数,它控制着基于损失梯度调整神经网络权值的速度,大多数优化算法(SGD、RMSprop、Adam)对其都有所涉及。学习率越小,损失梯度下降的速度越慢,收敛的时间更长,如公式所示:

new_weight= existing_weight — learning_rate * gradient

(新权值 = 当前权值 – 学习率 × 梯度)

深度学习(五)学习率的调节
深度学习(五)学习率的调节

如果学习率过小,梯度下降很慢,如果学习率过大,如Andrew Ng的Stanford公开课程所说梯度下降的步子过大可能会跨过最优值。不同的学习率对loss的影响如下图所示:

深度学习(五)学习率的调节
深度学习(五)学习率的调节

学习率的调整方法:

1、从自己和其他人一般的经验来看,学习率可以设置为3、1、0.5、0.1、0.05、0.01、0.005,0.005、0.0001、0.00001具体需结合实际情况对比判断,小的学习率收敛慢,但能将loss值降到更低。

2、根据数据集的大小来选择合适的学习率,当使用平方和误差作为成本函数时,随着数据量的增多,学习率应该被设置为相应更小的值(从梯度下降算法的原理可以分析得出)。另一种方法就是,选择不受数据集大小影响的成本函数-均值平方差函数。

3、训练全过程并不是使用一个固定值的学习速度,而是随着时间的推移让学习率动态变化,比如刚开始训练,离下山地点的最优值还很远,那么可以使用较大的学习率下的快一点,当快接近最优值时为避免跨过最优值,下山速度要放缓,即应使用较小学习率训练,具体情况下因为我们也不知道训练时的最优值,所以具体的解决办法是:在每次迭代后,使用估计的模型的参数来查看误差函数的值,如果相对于上一次迭代,错误率减少了,就可以增大学习率如果相对于上一次迭代,错误率增大了,那么应该重新设置上一轮迭代的值,并且减少学习率到之前的50%。因此,这是一种学习率自适应调节的方法。在Caffe、Tensorflow等深度学习框架中都有很简单直接的学习率动态变化设置方法。

参考链接:https://blog.csdn.net/john_kai/article/details/72861731

http://www.sohu.com/a/219390129_100044418

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143869.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档