请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于learning_rate

老师好,
这节课中各种降梯度的方法我都看懂了,唯一不明白的是learning_rate,为什么每种方法都会在最后更新x(参数)的时候,先乘一个learning_rate啊?学习率不应该是在多次迭代的过程中,自动更新的吗?那就不需要一开始设置一个learning rate啊。而且照您说还要把这个东西一开始设置的很小,但从公式来看,这个learning rate每次都不参与更新,并且每次都要跟更新后的梯度做乘积,那不就把自动调整好的梯度都给乘没了吗(因为learning rate是个很小的小数)?

正在回答 回答被采纳积分+3

1回答

正十七 2018-10-30 23:21:49

刚开始学习率很低是为了使得训练更加稳定,因为较大的梯度会导致训练震荡。

最朴素的方法学习率是不变的。但是有些方法会根据训练次数来对学习率进行调整,还有自适应的算法,即根据每个参数被更新的情况来设置学习率。

如果梯度乘没了,那么就代表训练收敛了,这时如果没有达到较好的效果,可以算是欠拟合。需要重新调整学习率进行训练。当然,一般情况下大家都会使用自适应调整学习率的训练方法,比如Adam。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕瓜7596423 #1
    但learning_rate应该只是对初始的学习率的设定啊,至于学习率往后怎么变,要看他自己学习的情况而定。可依照这节课里的公式,在梯度下降的过程中,每次学到的新的学习率,都会被乘一个初始的,值非常小的(0.0001这种)的learning_rate,这不都把学好的学习率给乘没了吗
    回复 有任何疑惑可以回复我~ 2018-11-02 10:50:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信