为啥SGD的learning rate要逐渐减小,而一般的梯度下降可以固定

懒得写公式了,来说个直观点的。
【为啥SGD的learning rate要逐渐减小,而一般的梯度下降可以固定】 首先根据数学分析知识,我们知道一个点列要收敛的一个必要条件是前后两个点之间的距离也会趋向于0。
我们也知道,一个点是最优点意味着它梯度等于0,那么对于比较光滑的函数,在最优点的附近,大体上来说离最优点越近梯度越接近于0。因此在梯度下降中,即使使用的是一个固定的步长,这一个性质自动的确保了我们迈着越来越小的步子收敛到最优点。
但SGD就不一样了。SGD迭代时使用的是一个随机抽取的样本(或者说是分函数)的梯度,除非是非常特殊的数据,目标函数的最优点与每个分函数的最优点往往是不重合的!也就是说即使非常靠近最优点,SGD使用的梯度往往都不会趋于0。因此,如果不使用逐渐减小的步长,最终的结果肯定是发散。

■网友
\u0026#39;This is because the SGD gradient estimator introduces a source of noise (therandom sampling of m training examples) that does not vanish even when we arriveat a minimum. By comparison, the true gradient of the total cost function becomessmall and then 0 when we approach and reach a minimum using batch gradientdescent, so batch gradient descent can use a ?xed learning rate. \u0026#39;《deep learning》 238页

■网友
也没说一般GD都固定learning rate吧,只不过在目标函数是凸函数的情况下可以证明固定lr一定可以收敛。如果是形状比较复杂的目标函数还是要通过逐渐减小lr的方法防止overshoot以及进一步降低loss。
SGD相对普通GD更有特点的应该是momentum这种东西。


    推荐阅读