关于learning_rate

来源:5-1 adagrad_adam

慕瓜7596423

2018-10-29

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

写回答

1回答

正十七

2018-10-30

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

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

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

0
1
慕瓜7596423
但learning_rate应该只是对初始的学习率的设定啊,至于学习率往后怎么变,要看他自己学习的情况而定。可依照这节课里的公式,在梯度下降的过程中,每次学到的新的学习率,都会被乘一个初始的,值非常小的(0.0001这种)的learning_rate,这不都把学好的学习率给乘没了吗
2018-11-02
共1条回复

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程