本节摘要:学习率是优化器最重要的旋钮,调度则是"让这个旋钮随时间自动收放"。本节从"为什么不一直用一个学习率"切入,介绍步进衰减、指数衰减、余弦、热重启四种主流调度,配一张曲线对比图,并给出"先用什么、再换什么"的工程建议。
第 4 章把优化器的步长交给了学习率这个超参数。可问题来了:从训练开始到结束,同一个学习率真的合适吗? 早期你需要大步探索地形,后期希望在最优附近小步精修——一个固定的学习率两头都难讨好。这一节要上的"变速器"解决的就是这个问题。
想象一段下坡路:一开始坡陡、你对地形一无所知,恨不得大步冲;跑到坡脚时,你已经接近平底,再大步就容易在谷底来回晃。一个聪明跑者会自动收步。固定学习率则是"全程一个步幅"——起步若太大,后期就晃得停不下来;起步若太小,前期又慢得烦人。
调度就是让行程按"训练到哪个阶段"自动调整步幅,常见目标:前期保持较大,中后期逐步收小,让收敛既有速度又够精细。
下面把四种调度的学习率随时间的变化画在同一张图里,一眼看清"跌法"的区别。

选调度的同时,要意识到它会跟其他旋钮咬合:
工程公式:先用固定或步进衰减跑通 → 需要更好最终指标就把曲线换成余弦 → 探索性任务可试热重启。
你在训一个图像分类模型,用 Adam,固定学习率 1e-3。前 20 epoch 一切正常,之后验证损失跌破不了某个平台。你把学习率改成余弦退火,让它在后段平滑收小,验证损失立刻掉了 0.8 个点。这个例子说明:一张好调度曲线,常常比反复调学习率一次性的数值更省事、更稳。
⚠️ 常见坑:把"学习率一直不变"当默认,殊不知在平坦的高维地形里固定学习率很容易"卡死"。训练中段损失不降,先别急着找模型问题,试着给它换一条带衰减的调度看看是不是"步幅太大撞不出微调"。
热重启跟其他三个都不太一样——它不追求一条单调收敛的曲线,而是在把学习率降到很低后,故意猛地拉回一个较大的初值,重新开始一段"探索"。 它赌的是:前半段模型已经在某处聚过了一轮,回到大学习率后,它能靠这轮热身的质量逃出当前被网络嵌住的盆地,落到一个可能更泛化的新解。
可视化地看(回到第 5 章那张调度对比图),就是一条"下滑、跳回、再下滑、再跳回"的锯齿。它特别适合你初判"模型已经过拟合当前配置、但不知道往哪换"时的探索,代价是会牺牲一点前段已经稳定下降的平滑性。用不用它,取决于你更怕"找不到更好的解",还是更怕"训练曲线难看"。
调度从来不是孤立的,它和工程里的其他旋钮共享同一根传动轴:
把这几条一起放进心里,你才不会在改了调度后惊讶"怎么别的东西也变了"。
假设你训练 100 个 epoch,验证损失在 40 epoch 后进入平台。两条路:
现实中大多数人会高估"手动掐时机"的准确性,转而偏好路线二。这不是说步进不能用,而是告诉你:当你没有确切的节奏经验时,余弦这种"自动收放"的曲线往往比"等我看到平台再手动降"更稳。 想省心,就优先给调度曲线多一点信任。
第 4.5 节提醒你"换优化器 ≠ 改一行",调度也同理——它几乎总是跟着优化器选择的配套重定义。你用 Adam 时也许靠自适应就够了,调度只是锦上添花;你一旦切到 SGD+动量,调度就从"可选"变成"几乎必配"。所以如果你换优化器后忘了重新配调度,会发现 SGD 常见的"后段步幅太粗"问题又冒出来。
记住这个联动:优化器定"手感",调度定"手感随时间怎么变"。 两个一起想,你搭出来的训练配置才是自洽的整车,而不是把两件不配套的零件硬拧在一起。
变速器配好了,可一台车还会怕"记死训练集"。下一节上保险杠——正则化,怎么给过拟合上保险。