21 · 梯度下降 · 寻谷下坡之道
一、一句话理解
模型通过计算损失函数的坡度方向,一步步往最低点走,让损失越来越小。
二、展开理解
想象你蒙着眼睛站在山上,要走到山谷最低点:
- 你每次用脚感受脚下的坡度方向
- 然后朝最陡的下坡方向迈一步
- 重复很多次,最终到达谷底
三、关键概念:学习率 Learning Rate
| 学习率 | 效果 |
|---|---|
| 太大 🏃 | 步子太大,跨过谷底,来回震荡 |
| 太小 🐌 | 步子太小,训练极慢,半天到不了 |
| 刚好 ✅ | 稳步下降,收敛到最优解 |
四、三种常见变体
| 变体 | 逻辑 | 特点 |
|---|---|---|
| 批量梯度下降 | 看完所有数据再走一步 | 稳但慢 |
| 随机梯度下降 | 看一条数据就走一步 | 快但抖 |
| Mini-batch 小批量梯度下降 | 看一小批数据走一步 | ✅ 实际最常用 |
五、和损失函数的关系
损失函数是量尺,梯度下降是走路的方式,两个缺一不可。
六、易经映射
谦卦的核心是"裒多益寡,称物平施",减损高处的,增益低处的,最终达到平衡。梯度下降就是不断往低处走,减损高损失的参数状态,增益低损失的参数状态,最终收敛到最优的平衡状态。 每一步都顺应坡度(趋势),不强行冒进,稳步前行,正是谦卦的智慧。
七、核心特点
- 一阶优化算法:只需要计算一阶导数,计算量小,适合大规模训练
- 迭代式优化:不需要一步到位,一步步逼近最优解
- 依赖初始化:初始位置不好可能陷入局部最优,找不到全局最低点
补充学习:生活化类比
梯度下降就像下山找水:
- 你在山上要找最低处的水源(损失最低点)
- 每次都朝水流的方向走(下坡方向)
- 步幅太大容易摔跟头,步幅太小走半天到不了
- 走一段就看看是不是到了平地(损失不再下降),到了就停下来喝水
补充学习:为什么小批量梯度下降最流行?
现在几乎所有大模型训练都用Mini-batch小批量梯度下降,兼顾了三个优点:
- 比批量快:不需要等所有数据都算完,一批算完就更新,速度快很多
- 比随机稳:一批数据的平均梯度比单条数据噪声小,不会来回跳
- 适合GPU:GPU的并行计算特性正好适合批量处理,效率极高
补充学习:常见优化算法(梯度下降的进阶版)
为了解决原始梯度下降的问题,有很多更智能的变体,现在大模型常用的是:
- Adam:自适应学习率,自动调整每个参数的学习率,不需要手动调太多,效果好收敛快,是最主流的优化器
- SGD with Momentum:加入动量,像滚雪球一样积累之前的梯度方向,冲过小坑,不容易陷入局部最优
- Adagrad:对出现频率低的参数给更大学习率,适合稀疏数据的场景
补充学习:常见误区澄清
❌ 误区:梯度下降一定能找到全局最低点 ✅ 真相:大部分时候只能找到局部最低点,尤其是高维空间。不过大模型的高维空间里局部最优往往效果也很好,不需要过分追求全局最优。
❌ 误区:学习率固定不变最好 ✅ 真相:现在主流的做法是学习率衰减,训练初期用大学习率快速下降,后期用小学习率精细调整,收敛效果更好。
❌ 误区:梯度越小越好 ✅ 真相:梯度接近0的时候,要么到了最低点,要么到了平缓的高原区,或者卡住了,需要具体情况具体分析。