第 5 章 · 更新与循环:把闭环跑起来 本章要回答的三个问题:梯度到手之后,参数到底怎么迈出这一步?为什么有人用 SGD 有人用 Adam,差别的本质是什么?训练跑起来了,怎么判断它在变好、什么时候该停、停了怎么恢复?本章把训练闭环的最后一块拼图补上,并把整个循环组装成可维护的工程。 为什么会有这一章 第 4 章结束时,每个参数手里都攥着梯度——方向有了,但"一步迈多大、要不要带惯性、要不要给每个参数定各自的步长"还悬而未决。这些决策全部由优化器执行,而优化器的选择与调校,是深度学习实践里杠杆最大的一组超参数。 本章还有第二重任务:把前三四五章的全部零件装进一个训练循环。前向、损失、反向、更新四拍节奏,加上验证、保存、日志、提前停止,才是一份能过夜训练的完整脚本。
本章要回答的三个问题:梯度到手之后,参数到底怎么迈出这一步?为什么有人用 SGD 有人用 Adam,差别的本质是什么?训练跑起来了,怎么判断它在变好、什么时候该停、停了怎么恢复?本章把训练闭环的最后一块拼图补上,并把整个循环组装成可维护的工程。
第 4 章结束时,每个参数手里都攥着梯度——方向有了,但"一步迈多大、要不要带惯性、要不要给每个参数定各自的步长"还悬而未决。这些决策全部由优化器执行,而优化器的选择与调校,是深度学习实践里杠杆最大的一组超参数。
本章还有第二重任务:把前三四五章的全部零件装进一个训练循环。前向、损失、反向、更新四拍节奏,加上验证、保存、日志、提前停止,才是一份能过夜训练的完整脚本。此前每一节都是拆开看零件,本章开始总装——你会看到一个两百行的训练脚本里,每一行都能对应到前面某一节讲过的机制。这种"全部零件都见过"的感觉,就是本册追求的体系性。
本章知识点清单:
zero_grad、backward、step 三连各自对应第几章的哪个机制;| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 5.1 训练循环 | 四拍怎么串成一个 epoch | 完整可跑的最小训练脚本 |
| 5.2 优化器 SGD 与动量 | 最朴素的更新好在哪 | 动量机制的动手验证 |
| 5.3 Adam 与自适应学习率 | 每个参数各自定步长 | 两家优化器的同场对比 |
| 5.4 验证与调参 | 怎么知道训练在变好 | 排查手法与调参顺序 |
| 5.5 模型保存与加载 | 停了怎么恢复 | 断点续训的完整现场 |
前四节沿闭环推进,5.5 是工程收口。
问:优化器之间的差别真有那么大吗? 收敛速度上有差,最终成绩上的差距常常被夸大——真正拉开差距的是学习率。所以本章的顺序是:先把 5.1 的循环跑对,再在 5.2 花大力气吃透学习率,然后才谈优化器选型。顺序反了的人,往往把"学习率没调好"误诊成"优化器不行"。
问:训练多少个 epoch 合适? 没有普适数字,答案是"验证指标说了算"。5.4 节的早停机制把这个问题自动化:验证成绩连续若干轮不改善就刹车。你要盯的是验证曲线的拐点,不是固定的轮数。
问:调参调到什么程度算够? 实用标准:验证成绩对超参的小幅扰动不再敏感(±20% 的学习率变化不带来明显波动),说明你在平台上而非悬崖边。追求悬崖边的极值是过拟合验证集的另一种形式,5.4 节会再敲一次这个警钟。
本章结束时,训练闭环完整运转:一个能训练、能验证、能保存、能恢复的工程现场。第 6 章是扩编——把这套骨架换上更强大的装备(卷积、Transformer),再配上行军日志(TensorBoard)、体检仪(Profiler)和终点站(ONNX 移交)。主线到第 5 章已完整,第 6 章是"同一套机制走得更远"的证明。