Appearance
梯度下降与优化器:AI 是怎么"学会"的?
更新: 7/13/2026 字数: 0 字 时长: 0 分钟
想象一下,你在教 AI 认猫。一开始它瞎猜,错得离谱。然后它一点点调整自己,越猜越准——这个"一点点调整"的过程,靠的就是梯度下降。而优化器,就是让这个调整过程又快又稳的"教练"。下面我们从零讲起。
一、梯度下降:蒙着眼睛下山找最低点

先说个大白话:AI 学习,本质上就是"减少犯错"。
我们给 AI 的错误程度打个分,叫损失(Loss)——错得越离谱,分越高;越接近正确,分越低。AI 的目标就是把这个分数降到最低。
把这件事想象成下山:
- 整座山 = AI 所有可能的"状态",山越高的地方代表 AI 错得越厉害。
- 山谷最低点 = AI 表现最好、犯错最少的状态。
- AI 要做的 = 从山顶走到山谷最低点。
但这里有个关键限制:AI 是蒙着眼睛的,它看不到整座山长什么样,不知道最低点在哪。它只能感受到脚下这一小块地是朝哪个方向倾斜的。
这个"脚下的坡度方向",就是梯度(Gradient)。
梯度的大白话: 站在山坡上,用脚探一探——哪个方向最陡、下降最快,梯度就告诉你这个方向。
于是下山策略就非常朴素:
- 感受脚下哪个方向最陡(算梯度);
- 朝那个方向迈一步;
- 到了新位置,再感受一次,再迈一步;
- 不断重复,直到走到谷底走不动为止。
这就是梯度下降——不需要看全景,只靠脚下的坡度,一步步摸到最低点。
这里还有个重要角色:步子迈多大? 这叫学习率(Learning Rate)。
- 步子太小 → 下山慢得让人着急,走一整天还在半山腰;
- 步子太大 → 可能一脚跨过谷底,在两边来回蹦跶,永远落不到底。
所以学习率这个"步子大小",是调教 AI 时最需要拿捏的东西之一。
二、最基础的版本(SGD)有什么毛病?

最原始的下山法叫 SGD(随机梯度下降)。"随机"是说它每次不看全部数据,只随手抓一小批数据来估算坡度——这样算得快,但也带来了三个典型毛病:
毛病一:走"之"字形,来回震荡。 因为每次只抓一小批数据,估出来的坡度方向有点毛糙、忽左忽右。结果小人不是笔直下山,而是在山谷两侧来回横跳,绕了很多冤枉路,下得很慢。
毛病二:容易卡在"小水坑"里出不来。 真实的山不是一个光滑的大碗,而是坑坑洼洼的。SGD 走着走着掉进一个小坑,四周一探——脚下没坡度了,就以为"到底了",其实真正的谷底还在远处。这个假谷底叫局部最低点。
毛病三:步子大小一刀切,很难调。 全程用同一个步子大小。陡的地方这个步子可能太小,平缓的地方又可能太大,怎么设都别扭。
接下来的优化器,就是一个接一个地来治这些毛病的。
三、优化器进化史:一步步把毛病治好

优化器的大白话: 就是"怎么迈步下山"的策略。同样是下山,聪明的走法能又快又稳地到谷底。
1. Momentum(动量):给下山加上"惯性"
治的是:走之字形震荡、卡小水坑。
想象把蒙眼小人换成一个往下滚的球。球有惯性——它会记住自己之前的运动方向,越滚越顺。
- 遇到左右横跳的干扰,惯性会把这些抵消掉,让球总体保持朝谷底的大方向冲,不再画"之"字;
- 滚到小水坑时,凭着这股冲劲还能冲过去,不容易被小坑困住。
一句话特点: 靠"惯性"让下山更顺、更稳,还能冲出小坑。
2. AdaGrad:让步子自己会"看路"
治的是:步子大小一刀切。
前面所有方法都用固定步子。AdaGrad 的想法很聪明:让每一步的大小自己根据路况调整——
- 之前在某个方向已经走了很多、很陡,就把这个方向的步子自动调小,免得冲过头;
- 某个方向一直没怎么动、很平缓,就给它大一点的步子,鼓励多走走。
这就叫自适应步长。缺点是:它会把走过的路"全部累加"记账,时间一长,步子会被越缩越小,最后几乎迈不动,下山提前"熄火"。
一句话特点: 步子会看路自动调,但走久了容易越走越慢、后劲不足。
3. RMSProp:给 AdaGrad 装上"遗忘功能"
治的是:AdaGrad 后劲不足、步子越缩越小。
RMSProp 的改进很直接:不要把老账全记着。它只重点参考最近一段路的坡度情况来调步子,久远的就慢慢淡忘。
这样步子既能自适应路况,又不会因为累积太多历史而被无限缩小,能一直保持合理的下山速度,尤其适合路况多变的场景。
一句话特点: 自适应步长 + 只看近期路况,避免"越走越慢"。
4. Adam:把前面的优点全打包
治的是:前面各家的短板,来个"集大成"。
Adam 是目前最常用的优化器,它的思路很简单——把 Momentum 的惯性和 RMSProp 的自适应步长合在一起:
- 一边像滚球一样带着惯性,走得又顺又稳、能冲出小坑;
- 一边像 RMSProp 一样自动调步子,陡处小步、缓处大步,还不会熄火。
两全其美,而且开箱即用、几乎不用怎么费心调,所以成了绝大多数场景的默认首选。
一句话特点: 惯性 + 自适应步长二合一,稳、快、省心,通用性最强。
四、到底该用哪个?一张表看懂
| 优化器 | 核心改进 | 特点 | 适用场景 |
|---|---|---|---|
| SGD | 最基础的下山 | 简单,但慢、爱震荡、易卡坑 | 追求极致效果、愿意精细调参的研究场景 |
| Momentum | 加入惯性 | 更顺更稳,能冲出小坑 | 需要在 SGD 上提速、减少震荡时 |
| AdaGrad | 步子自适应 | 会看路,但后劲不足 | 数据稀疏(很多特征偶尔才出现)的场景 |
| RMSProp | 自适应 + 遗忘旧账 | 步子稳定不熄火 | 路况多变、非平稳的任务 |
| Adam | 惯性 + 自适应合体 | 稳、快、省心,通用 | 绝大多数任务的默认首选 |
梯度下降就是"蒙眼下山、顺着最陡的方向一步步摸到谷底",而从 SGD 到 Adam 的优化器演进,本质上就是在教这个下山的人——怎么走得更稳、更快、更省心。新手直接用 Adam 就够了,等你想追求极致效果时,再回头研究其他选手也不迟。