在机器学习中,我们经常会碰到利用梯度下降的算法,通过迭代找到一个可行解,这个解不一定是最优解。但是在利用梯度下降算法求解的过程中,学习速率的选择是一个很重要的问题,如果速率过大,那么很有可能会导致求解的过程不稳定,会出现问题。如果速率太小,那么求解的速度太慢,不利于算法的求解。为了解决这个问题,不同的人会采用不同的思路。
1.采用固定的学习速率,这就会存在上面的问题,为了克服不稳定性,所以可能会选择小一点的学习速率
2.采用变换的学习速率,也就是当梯度大的时候,学习速率也大,梯度小的时候,学习速率也小。学习速率采用与梯度正相关的关系,存在一个比例系数,采用固定的这个比例系数。这个叫做fixed learning rate。得到的结果就是w(t+1) = w(t) - learningrate*gradient(w).采用这个算法会对前面的问题有一点缓解作用,但是有时候解决的还不是很好。
3.采用fixed learning rate还是会存在上述的问题,所以后面就很多算法采用的是变换的learning rate,也就是比例系数也是变化的。
4.fixed learning rate的时候,设置为0.1或者0.1附近的效果一般不会太差