核心旋钮一览
| 参数 | 作用 | 太大 / 太小会怎样 |
|---|---|---|
| 学习率 LR | 每步更新的步长 | 太大震荡发散 / 太小慢或卡住 |
| Batch Size | 每步看多少样本 | 太大显存爆、泛化差 / 太小 noisy |
| Epochs | 遍历数据几轮 | 太多过拟合 / 太少学不充分 |
| 动量 Momentum | 积累历史梯度方向 | 太大冲过头 / 太小难逃局部 |
| 权重衰减 | 正则,抑制过大权重 | 太大欠拟合 / 太小易过拟合 |
常见优化器
- SGD:最朴素,沿梯度走固定步长,配动量可加速、更稳定。
- SGD + Momentum:带“惯性”,减少震荡、加速收敛。
- Adam:自适应学习率(按梯度的一阶/二阶矩调整),常用、对新手友好,但显存占用更高。
- RMSProp:类似 Adam 思路,按梯度平方缩放,适合非平稳目标(如 RNN)。
更新公式(SGD + 动量示意):v ← β·v − η·∇L; θ ← θ + v
(η=学习率,β=动量系数,∇L=损失梯度)。动量让方向更“平滑”。
学习率调度(Schedule)
固定学习率不够用,常用“先大后小”的策略:
📈
Step / Multi
每隔若干 epoch 把 LR 乘 0.1,简单常用。
📊
Cosine
LR 随余弦曲线平滑下降到接近 0,现代训练常选。
🔥
Warmup
开头先用小 LR 预热几步,避免初期不稳定。
可视化:学习率如何影响收敛
下面用“损失随训练步数下降”的示意曲线,演示不同学习率的效果。调节滑块看曲线变化。
🎚️ 学习率收敛演示
蓝线=当前参数;灰线=参考“合适 LR + 动量”。学习率过大会在谷底附近来回震荡(发散感),
过小则下降缓慢。
实用调参建议(新手友好)
- 先固定其他参数,只调学习率:从高到低试几个量级(如 1e-1、1e-2、1e-3)。
- 默认可上 Adam(学习率 ~1e-3)或 SGD+Momentum(学习率 ~1e-1),再加 Cosine + Warmup。
- Batch Size 受显存限制,能大则大;大了可适当调大 LR(线性缩放经验)。
- 看训练/验证曲线:验证损失回升 = 过拟合,可加权重衰减或早停(Early Stopping)。
没有“万能参数”。调参是观察曲线 + 假设 + 实验的循环,本页演示是简化模型,真实曲面更复杂。