梯度下降、步长与收敛直觉
层级:A|必学
1. 基本算法
对可微目标 :
为学习率/步长。负梯度是 Euclidean 几何下局部最陡下降方向,步长决定走多远。
2. 一阶下降依据
取 :
所以足够小步长下降。若步长太大,忽略的二阶及高阶项占主导,可能震荡或发散。
3. 二次函数上的精确观察
更新:
收敛要求
- :同侧单调接近;
- :跨越零点震荡但收敛;
- :等幅震荡;
- :发散。
曲率 越大,允许步长越小。
4. 多维二次函数与条件数
在特征向量方向上,各分量按
独立变化。稳定常要求 。若
很大,陡方向限制步长,平坦方向又进展缓慢,产生之字形与慢收敛。
标准化、预条件、动量和 Newton 类方法试图缓解这种各向异性。
5. 固定学习率与衰减
- 固定学习率:简单,凸光滑问题可收敛到最优或邻域;
- 分段下降:训练到里程碑时乘常数;
- 指数衰减:;
- 余弦退火:平滑降至小值;
- 反比/平方根衰减:随机优化理论常见;
- warmup:初期从小学习率升高,避免不稳定。
计划没有普适最优,需结合批量、归一化、优化器和训练预算。
6. 线搜索
沿下降方向 选择步长:
精确线搜索通常太贵,常用回溯线搜索:从初始步长开始按因子缩小,直到满足 Armijo 充分下降:
。深度学习小批量噪声使线搜索较难,但在确定性凸优化很常用。
7. 收敛率的基本语言
对凸光滑函数,梯度下降常有目标误差
若还强凸,可线性/几何收敛:
“线性收敛”不是误差按直线下降,而是每步乘固定小于 1 的比例。非凸光滑问题常保证平均梯度范数或找到近似驻点,而非全局最优。
8. 初始化
凸问题的最终全局解通常与初始化无关(若算法收敛且解唯一),但速度受影响。非凸问题初始化可决定落入哪个吸引域。神经网络若所有同层权重初始化相同,会保持对称、学到相同特征,因此需随机破坏对称。
9. 特征缩放
若某特征尺度大,损失等高线可能细长,梯度在不同方向尺度差异大。标准化可让 Hessian 条件数更好,使单一学习率更适合各方向。对距离与正则化,缩放还改变模型定义,需在 pipeline 中固定。
10. 诊断训练曲线
- 损失爆炸/NaN:学习率过大、数值溢出、梯度爆炸或数据异常;
- 大幅周期震荡:步长过大或批量噪声;
- 损失很慢但稳定:步长过小、条件差、梯度饱和;
- 训练降、验证升:过拟合,不是优化失败;
- 两者都不降:表达不足、实现/数据错误或优化配置差。
优先检查简单基线、梯度、数据范围和稳定损失,再调复杂计划。
11. 停止与最优性
有限精度和预算下只得到近似解。报告:最终训练/验证指标、梯度或参数变化、迭代/时间预算和随机种子。单一“optimizer converged”日志不足以证明业务效果。
易错点
- 负梯度是局部方向,步长过大仍可能上升。
- 学习率越小不一定越好,可能在预算内几乎不动。
- 损失收敛不保证参数收敛或泛化良好。
- “线性收敛”是几何衰减术语。
- 特征缩放会影响优化与正则化含义。
常见问答
Q1:梯度下降与最速下降完全相同吗?
在 Euclidean 范数下是负梯度方向。一般范数下最速下降方向不同,步长选择也可不同。
Q2:为什么训练后期常降低学习率?
靠近谷底时需要更细步长;随机梯度噪声在固定步长下形成波动邻域,降低步长可减小波动。
Q3:学习率能按 batch size 线性放大吗?
有经验规则但非无条件定理。大 batch 降低梯度均值方差,模型、优化器、warmup 和归一化都会影响可用尺度。
练习
- 对 写出固定学习率更新。
- 哪些 使其收敛?
- 最大特征值为 20,二次目标稳定步长上限大约是什么?
- 为什么条件数大导致之字形?
- 训练损失降、验证损失升应优先判断什么?
答案与提示
- 。
- 。
- (严格小于)。
- 陡方向限制小步长并引发横向震荡,平缓方向推进慢。
- 过拟合或训练/验证分布与泄漏问题,而非单纯继续优化。