Skip to content

21 · 梯度下降 · 寻谷下坡之道


一、一句话理解

模型通过计算损失函数的坡度方向,一步步往最低点走,让损失越来越小。

二、展开理解

想象你蒙着眼睛站在山上,要走到山谷最低点:

  • 你每次用脚感受脚下的坡度方向
  • 然后朝最陡的下坡方向迈一步
  • 重复很多次,最终到达谷底

三、关键概念:学习率 Learning Rate

学习率效果
太大 🏃步子太大,跨过谷底,来回震荡
太小 🐌步子太小,训练极慢,半天到不了
刚好 ✅稳步下降,收敛到最优解

四、三种常见变体

变体逻辑特点
批量梯度下降看完所有数据再走一步稳但慢
随机梯度下降看一条数据就走一步快但抖
Mini-batch 小批量梯度下降看一小批数据走一步✅ 实际最常用

五、和损失函数的关系

损失函数是量尺,梯度下降是走路的方式,两个缺一不可。

六、易经映射

谦卦的核心是"裒多益寡,称物平施",减损高处的,增益低处的,最终达到平衡。梯度下降就是不断往低处走,减损高损失的参数状态,增益低损失的参数状态,最终收敛到最优的平衡状态。 每一步都顺应坡度(趋势),不强行冒进,稳步前行,正是谦卦的智慧。

七、核心特点

  • 一阶优化算法:只需要计算一阶导数,计算量小,适合大规模训练
  • 迭代式优化:不需要一步到位,一步步逼近最优解
  • 依赖初始化:初始位置不好可能陷入局部最优,找不到全局最低点

补充学习:生活化类比

梯度下降就像下山找水:

  • 你在山上要找最低处的水源(损失最低点)
  • 每次都朝水流的方向走(下坡方向)
  • 步幅太大容易摔跟头,步幅太小走半天到不了
  • 走一段就看看是不是到了平地(损失不再下降),到了就停下来喝水

补充学习:为什么小批量梯度下降最流行?

现在几乎所有大模型训练都用Mini-batch小批量梯度下降,兼顾了三个优点:

  1. 比批量快:不需要等所有数据都算完,一批算完就更新,速度快很多
  2. 比随机稳:一批数据的平均梯度比单条数据噪声小,不会来回跳
  3. 适合GPU:GPU的并行计算特性正好适合批量处理,效率极高

补充学习:常见优化算法(梯度下降的进阶版)

为了解决原始梯度下降的问题,有很多更智能的变体,现在大模型常用的是:

  1. Adam:自适应学习率,自动调整每个参数的学习率,不需要手动调太多,效果好收敛快,是最主流的优化器
  2. SGD with Momentum:加入动量,像滚雪球一样积累之前的梯度方向,冲过小坑,不容易陷入局部最优
  3. Adagrad:对出现频率低的参数给更大学习率,适合稀疏数据的场景

补充学习:常见误区澄清

❌ 误区:梯度下降一定能找到全局最低点 ✅ 真相:大部分时候只能找到局部最低点,尤其是高维空间。不过大模型的高维空间里局部最优往往效果也很好,不需要过分追求全局最优。

❌ 误区:学习率固定不变最好 ✅ 真相:现在主流的做法是学习率衰减,训练初期用大学习率快速下降,后期用小学习率精细调整,收敛效果更好。

❌ 误区:梯度越小越好 ✅ 真相:梯度接近0的时候,要么到了最低点,要么到了平缓的高原区,或者卡住了,需要具体情况具体分析。