Introduction

学习率 (learning rate),控制 模型的 学习进度
这里写图片描述

lrstride (步长) ,即反向传播算法中的 η \eta η

ω n ← ω n − η ∂ L ∂ ω n \omega^{n} \leftarrow \omega^{n} - \eta \frac{\partial L}{\partial \omega^{n}} ωnωnηωnL

学习率大小

学习率 大 学习率 小
学习速度
使用时间点 刚开始训练时 一定轮数过后
副作用 1.易损失值爆炸;2.易振荡。 1.易过拟合;2.收敛速度慢。

学习率设置

在训练过程中,一般根据训练轮数设置动态变化的学习率。

  • 刚开始训练时:学习率以 0.01 ~ 0.001 为宜。
  • 一定轮数过后:逐渐减缓。
  • 接近训练结束:学习速率的衰减应该在100倍以上。

Note:
如果是 迁移学习 ,由于模型已在原始数据上收敛,此时应设置较小学习率 ( ≤ 1 0 − 4 \leq 10^{-4} 104) 在新数据上进行 微调

学习率减缓机制

轮数减缓 指数减缓 分数减缓
英文名 step decay exponential decay 1 / t 1/t 1/t decay
方法 每N轮学习率减半 学习率按训练轮数增长指数插值递减 l r t = l r 0 / ( 1 + k t ) lr_{t} = lr_{0} / (1+kt) lrt=lr0/(1+kt) k k k 控制减缓幅度, t t t 为训练轮数

把脉 目标函数损失值 曲线

理想情况下 曲线 应该是 滑梯式下降 [绿线]
这里写图片描述

  1. 曲线 初始时 上扬 [红线]
    Solution:初始 学习率过大 导致 振荡,应减小学习率,并 从头 开始训练
  2. 曲线 初始时 强势下降 没多久 归于水平 [紫线]
    Solution:后期 学习率过大 导致 无法拟合,应减小学习率,并 重新训练 后几轮
  3. 曲线 全程缓慢 [黄线]
    Solution:初始 学习率过小 导致 收敛慢,应增大学习率,并 从头 开始训练

[1] 调整学习速率以优化神经网络训练
[2] 如何找到最优学习率

更多推荐