你有没有想过,模型怎么调整自己的参数,是不是调整越多,模型训练速度和模型的能力就越好呢,其实不一定,调整的太少,模型学习速度就会很慢,调整太多,又可能错过合适的位置。而决定每一次调整的就是学习率,今天我们来讲一讲学习率。
什么是学习率?
模型在训练的过程中会通过反向传播计算梯度,我们可以想象成蒙眼下山,loss越低的位置就可以想像成山谷,梯度告诉模型往哪一个方向走,学习率就告诉模型一步要走多远。简单来说,梯度决定了模型往哪里走,学习率决定了模型走多远。
学习率太小了会怎么样?
如果你设置的学习率太小了,模型只能每一次调整一点点参数,虽然训练过程会比较平稳,但是训练的时间也会有所加长。这就好比下山每次只走一小步,方向虽然正确,但是下山很慢。如果训练时间不够,模型甚至可能还没有学好,训练就已经结束了。
学习率太大了会怎么样?
如果你设置的学习率太大了,模型虽然可以调整很多参数,但是训练过程很不平稳,可能直接跳过loss较低的位置,在两边来回震荡,严重的时候loss不但不会下降还会越来越大,甚至出现NaN!!! 就像下山的时候脚步迈的太大,会从山谷的一遍跳到另外一遍。
所以喵,学习率不是越大越好,也不是越小越好,而是要在一个合适的区间,比如设置一个常见的学习率(如0.001)开始,慢慢调整,只要步子迈得合适,猫猫总会抓到属于它的小鱼干的!🐱