1.学习率 (learning rate)
学习率 (learning rate),控制模型的学习进度 :
学习率(Learning Rate,常用η表示。)是一个超参数,考虑到损失梯度,它控制着我们在多大程度上调整网络的权重。值越低,沿着向下的斜率就越慢。虽然这可能是一个好主意(使用低学习率),以确保我们不会错过任何局部最小值;但也有可能意味着我,将耗费很久的时间来收敛——特别是当我们陷入平坦区(plateau region)的时候。
通常,学习率是由用户随机配置的。在最好的情况下,用户可以利用过去的经验(或者其他类型的学习材料)来获得关于设置学习率最佳值的直觉。
因此,很难做到这一点。下图演示了配置学习率时可能会遇到的不同场景。
此外,学习率会影响模型收敛到局部最小值的速度(也就是达到最佳的精度)。因此,在正确的方向做出正确的选择,意味着我们只需更少的时间来训练模型。
训练时,学习率的下降过程:
学习率大小的影响:
学习率 大 | 学习率 小 | |
---|---|---|
学习速度 | 快 | 慢 |
使用时间点 | 刚开始训练时 | 一定轮数过后 |
副作用 | 1.易损失值爆炸;2.易振荡。 | 1.易过拟合;2.收敛速度慢。 |
学习率设置
在训练过程中,一般根据训练轮数设置动态变化的学习率。
- 刚开始训练时:学习率以 0.01 ~ 0.001 为宜。
- 一定轮数过后:逐渐减缓。
- 接近训练结束:学习速率的衰减应该在100倍以上。