⭐ 深度学习入门体系(第 8 篇): 什么是优化器?

——为什么 Adam 会成为“新手默认选择”?它真的比 SGD 更好吗?

在前几篇我们讲了损失函数,这一篇要讲训练流程的另一半主角:

优化器 Optimizer

你一定见过:

  • SGD
  • Adam
  • RMSProp
  • AdamW
  • Momentum
  • Adagrad

但很可能你会有这些困惑:

  • 优化器到底是在“优化什么”?
  • 它是怎么让模型越来越好?
  • Adam 为什么这么流行?
  • 在实际项目中到底该用 Adam 还是 SGD?
  • Adam 是万能的吗?
  • 为什么很多大模型最终还是选了 AdamW?

这篇文章我们把这些讲透。
保证你看完之后不再对优化器“一知半解”。



🎯 一、优化器是什么?一句话解释

优化器是告诉模型“要往哪个方向、以多大步伐更新参数”的算法。

损失函数告诉模型:

  • 你哪里做错了
  • 错得有多严重

而优化器告诉模型:

  • 那你该往哪调
  • 调多少才比较合理

这两者合作才能完成学习。

在这里插入图片描述


🪜 二、生活化类比:优化器是“教练”,损失是“成绩”

让我们用一个非常好理解的类比。

你准备跑马拉松。

  • 每次跑完有一个成绩(损失)
  • 你需要知道如何改进(优化器)
  • 教练告诉你:“步伐大点”、“摆臂小点”、“注意节奏”

优化器就是模型的教练。

不同教练风格不一样:

  • SGD:朴素派,简单直接
  • Momentum:讲究节奏感
  • Adam:现代派,用数据分析你过去的表现
  • AdamW:在 Adam 基础上更注重“体脂管理”(权重衰减)

你选择哪个教练,训练感受就完全不同。
在这里插入图片描述


🧱 三、以最直观方式解释梯度下降

几乎所有优化器都基于一个最核心的思想:

梯度下降(Gradient Descent)

还是用生活类比。

你身处一个大山谷中,四周是起伏的地形。
你的目标是:

到达盆地最低点(损失最小)

你能做什么?

观察四周:

  • 哪个方向坡度最大?
  • 哪个方向往下最陡?

然后往那个方向走一步。

这就是梯度下降最核心的逻辑——永远往“最陡往下”的方向走。
在这里插入图片描述


🎒 四、SGD:最基础、最朴实、最原始的优化器

SGD(随机梯度下降)做的事情非常简单:

  1. 看当前梯度方向
  2. 沿着这个方向走一步
  3. 重复这个过程

优点:

  • 简单
  • 稳定
  • 理论最扎实
  • 大公司、大学研究常用(因为可控)

缺点:

  • 容易在复杂地形“迷路”
  • 速度慢
  • 对学习率非常敏感
  • 容易卡在局部最小值或鞍点

所以很多人不喜欢单独用 SGD,而是用它的增强版。

在这里插入图片描述


🌀 五、Momentum:给 SGD 加上“惯性”

SGD 像走山路的人,不停地停下判断方向。

Momentum 则像给你加了一个“轮子”,让你:

  • 遇到小坑时可以冲过去
  • 不容易卡住
  • 走得更顺滑

它本质上是“梯度的指数滑动平均”,
让更新方向更稳定、不抖动。

这是所有现代优化器的基础思想。

在这里插入图片描述


⚡ 六、Adam:为什么它会成为“新手默认选择”?

Adam 出现后瞬间风靡深度学习界,被极大规模采用。

它的核心思想:

**综合了 Momentum 的“动量”

  • RMSProp 的“自适应学习率”
    = 自动调节学习率的现代优化器**

我们用生活化比喻一下:

你跑步时:

  • 教练会观察你每一步的状态
  • 当你跑得不稳时会提醒你慢点
  • 当你跑得很稳时会让你加速

Adam 就是这样的“智能教练”。

它会自动:

  • 给每个参数分配不同学习率
  • 根据历史梯度决定加速还是减速
  • 更快地找到低谷
  • 更不容易卡住

这使它成为:

  • 新手友好
  • 小数据友好
  • 噪声友好
  • 多任务友好
  • 训练速度快
  • 超参数简单

你几乎不需要调参,它就能跑出不错的效果。

在这里插入图片描述


📉 七、Adam 的缺点是什么?(非常重要)

虽然 Adam 很受欢迎,但它也有缺点:

  1. 容易过拟合
  2. 容易走得太快,错过最优解
  3. 最终解的泛化能力常输给 SGD
  4. 学习率衰减非常关键(否则不稳)

你可以理解为:

Adam 是“速度快但不一定稳”的选手。

所以在超大规模训练里(如 ResNet、ImageNet、大模型预训练):

很多团队仍然喜欢用 SGD with momentum。

原因很简单:
SGD 慢,但“稳、靠谱、泛化强”。


🧱 八、AdamW:为什么“大模型时代”几乎都选它?

Adam 有一个严重缺点:

L2 正则(权重衰减)和 Adam 的更新方式相冲突。
结果就是模型会“不健康地增胖”。

AdamW 的改进在于:

把“权重衰减”从 Adam 的更新规则里分离出来。

简单说:

AdamW 让模型“保持体型健康”。

它成为 Transformer、LLM、大规模模型训练中的标准做法。

几乎所有主流大模型都使用 AdamW:

  • GPT 系列
  • BERT 系列
  • ViT
  • Diffusion 模型
  • ChatGPT 及后续家族

原因只有一个:
稳定、泛化好、适合大规模训练。

在这里插入图片描述


🧭 九、实际工程中怎么选优化器?

给出最简单、最实用的决策树。


① 初学者、小项目、图像分类?

Adam

  • 适当学习率衰减
  • 简单稳定,一般不踩坑

② 数据量大、训练时间长、专注泛化能力?

SGD + Momentum

  • 学习率 warmup
  • 余弦退火或多步衰减

这是顶级实验室和大厂训练 CNN 的常见选择。


③ NLP、Transformer、大模型、扩散模型?

AdamW(强烈推荐)
它已经是行业标准。


④ 噪声大的任务?

Adam / RMSProp
因为它们更“稳”。


⑤ 特征不均匀、不同维度差异大?

Adam / Adagrad / RMSProp
这些方法能为不同参数自动调学习率。


🧪 十、优化器最重要的参数:学习率 LR

你可以不懂优化器所有细节,但必须理解:

学习率是最关键的超参数。
它决定“你走路的步幅”。

  • 步子太大 → 容易摔倒,损失震荡
  • 步子太小 → 走半天不动,训练太慢

在实际工程中,调学习率经常比调优化器更有效。

在这里插入图片描述


🧩 十一、一句话总结本篇内容

优化器是模型的“教练”,
SGD 稳、Adam 快、AdamW 健康、Momentum 顺滑,
而学习率是所有优化器的“灵魂”。


🔜 下一篇

《深度学习入门体系(第 9 篇):什么是反向传播?为什么它能“让网络自动学会”?》

更多推荐