Introduction
学习率 (learning rate),控制 模型的 学习进度 :
lr 即 stride (步长) ,即反向传播算法中的 ηηeta :
ωn←ωn−η∂L∂ωnωn←ωn−η∂L∂ωnomega^{n} leftarrow omega^{n} - eta frac{partial L}{partial omega^{n}}
学习率大小
学习率 大 | 学习率 小 | |
---|---|---|
学习速度 | 快 | 慢 |
使用时间点 | 刚开始训练时 | 一定轮数过后 |
副作用 | 1.易损失值爆炸;2.易振荡。 | 1.易过拟合;2.收敛速度慢。 |
学习率设置
在训练过程中,一般根据训练轮数设置动态变化的学习率。
- 刚开始训练时:学习率以 0.01 ~ 0.001 为宜。
- 一定轮数过后:逐渐减缓。
- 接近训练结束:学习速率的衰减应该在100倍以上。
Note: 如果是 迁移学习 ,由于模型已在原始数据上收敛,此时应设置较小学习率 (≤10−4≤10−4leq 10^{-4}) 在新数据上进行 微调 。
学习率减缓机制
轮数减缓 | 指数减缓 | 分数减缓 | |
---|---|---|---|
英文名 | step decay | exponential decay | 1/t1/t1/t decay |
方法 | 每N轮学习率减半 | 学习率按训练轮数增长指数插值递减 | lrt=lr0/(1 kt)lrt=lr0/(1 kt)lr_{t} = lr_{0} / (1 kt) ,kkk 控制减缓幅度,ttt 为训练轮数 |
把脉 目标函数损失值 曲线
理想情况下 曲线 应该是 滑梯式下降 [绿线]
:
- 曲线 初始时 上扬
[红线]
: Solution:初始 学习率过大 导致 振荡,应减小学习率,并 从头 开始训练 。 - 曲线 初始时 强势下降 没多久 归于水平
[紫线]
: Solution:后期 学习率过大 导致 无法拟合,应减小学习率,并 重新训练 后几轮 。 - 曲线 全程缓慢
[黄线]
: Solution:初始 学习率过小 导致 收敛慢,应增大学习率,并 从头 开始训练 。
[1] 解析卷积神经网络—深度学习实践手册 [2] 调整学习速率以优化神经网络训练 [3] 如何找到最优学习率