自动调整学习速率 - zs-collab/- GitHub Wiki

learning reat的介绍

学习速率(Learning Rate, LR)是梯度下降及其变种优化算法中的核心超参数,它决定了模型参数在每次迭代中的更新步长。学习速率的选择直接影响模型的收敛速度、训练稳定性以及最终性能。

  1. 学习速率的基础作用:
    控制参数更新步长
    在梯度下降中,参数更新公式为:
    θt+1=θt−α⋅∇L(θt)
    其中:
    θt是当前参数(如神经网络的权重);
    ∇L(θt)是损失函数在当前参数处的梯度;
    α 是学习速率。
    学习速率的作用:
    α 较大 → 参数更新幅度大,可能快速接近最优解,但也可能“跨过”最优解,导致震荡甚至发散。
    α 较小 → 参数更新精细,收敛稳定,但训练速度慢,可能陷入局部最优或无法在有限时间内收敛。

  2. 学习速率对训练过程的影响
    (1) 学习速率过大(α 太大)
    现象:
    损失函数剧烈震荡,甚至持续上升(发散)。
    参数更新幅度过大,导致模型无法稳定收敛。
    原因:
    梯度下降的步长太大,每次更新“跨过”最优解,甚至朝相反方向移动。 在深度学习中,可能引发梯度爆炸(Gradient Explosion)。
    (2) 学习速率过小(α 太小)
    现象:
    损失函数下降极其缓慢,训练时间大幅增加。
    可能陷入局部最优(非凸优化问题)或鞍点(梯度接近 0 但非最优)。
    原因:
    每次参数更新幅度太小,需要极多迭代才能接近最优解。 在深度学习中,可能因梯度消失(Vanishing Gradient)问题导致训练停滞。

Training Stuck != Small Gradient

当Loss不在下降,而Gradient还没有很小在震荡的时候
一个可能:Gradient在Error suface的山谷间震荡
屏幕截图 2025-06-05 111038

不同的参数需要不同的learning rate

当梯度比较平缓的时候需要大一点的learning rate,当梯度比较陡,就需要小一点的learning rate
屏幕截图 2025-06-05 112622

Root Mean Square

此方法可以自动更新learning rate
求σ,更新迭代
屏幕截图 2025-06-05 113303 屏幕截图 2025-06-05 113627

Without Adaptive Learning Rate

屏幕截图 2025-06-05 133415

RMSProp

屏幕截图 2025-06-05 133052 屏幕截图 2025-06-05 133233

总结:

Gradient descend之进化
Vanilla Gradient descend:
固定的步伐大小与当前Gradient方向
Various Improvements:
1.g:Momentum:考虑过去所有Gradient方向来调整方向
2.σ:Root Mean Square:考虑过去所有Gradient的大小来调整步伐幅度
3.η:Learning Rate Scheduling:考虑时间来来调整参数的更新速度
屏幕截图 2025-06-05 134221