本节摘要:优化器是神经网络里负责"沿梯度降得快又稳"的求解器。本节把它从学习中抽离:它到底在解什么数学问题、为什么纠结"快与稳"、以及为什么初始状态(学习率、重置)决定了它的成败。这是理解后续所有方法的入口。
前面把末端的功能摆了清楚,现在聚焦"搬参数的手"本身。优化器不是玄学,它是一个非常具体的问题求解器:它负责沿当前的梯度方向,把参数往"损失更小"的地方挪,并且尽量既快又稳。
回想第 1 章,训练就是最小化损失 L(w),参数 w 是"要搬的货",损失是"下降的依据"。所以优化器在解一个无约束最优化问题:在参数空间里找一个使 L 尽量的组合。
听起来简单,但有两个大麻烦让它必须靠技巧:
于是优化器的工作被压缩成一个句子:沿负梯度方向走,但步子踩多大、有没有惯性、每个方向是否都踩一样步长——这些才是所有优化器的差别所在。
优化器几乎所有花样,都能归到同一根绳上:快(收敛得快)与稳(不震荡、不发散)的拔河。
接下来的动量、自适应学习率,本质都是在这场拔河里各往"既快又稳"推了一把:动量用历史方向把震荡摊平,自适应让陡峭参数少走、平坦参数多走。理解"每招都在补拔河里的哪一边",你就握住了整章钥匙。
优化器握有一组可调的东西,决定了它"搬货"的风格:
| 牌 | 含义 | 手感 |
|---|---|---|
| 学习率 | 每步踩多大 | 大则快易震,小则稳而慢 |
| 动量系数 | 惯性多大 | 大则冲得远,小则贴地走 |
| 自适应因子 | 各自调速 | 陡缓分别对待,平滑高维 |
同一套梯度,握牌手势不同,走出的轨迹天差地别。这也是为什么"换成 Adam 就好多了"常被当成万能咒语——它只是把三张牌打得更顺手,并不是神力。
假想你在 2D 损失地形上。优化器从一点出发:
这个"球"的直觉,正是 4.3 节要展开的核心。搞懂它,你就知道自己平时"震荡成锯齿"时该补哪张牌了。
💡 关键直觉:优化器的差别不在"谁更先进",而在"它替你把快与稳的拔河往哪边掰了一格"。给每个方法贴一句话——这台天平它主要调节的是哪端。
为了让你对"优化器到底在忙什么"有具象,我们列一下如果优化器答不好这几个问题,训练会以怎样的方式翻车:
把这四条记在心里,你读 4.2~4.4 的时候会格外有"对号入座"的爽快感。每个新方法,其实都在这四个问题里抢着答其中一个或几个。
优化器离不开那台天平。损失函数(第 3 章)告诉它"往哪端倾";激活函数(第 2 章)决定它"收到的信号靠不靠谱";而优化器自己是那个"力争又快又稳地把砝码放到位"的手。手里有三张牌——学习率、动量、自适应因子——捏牌的方法,就是整 4 章的主线。
你可能想问:既然优化器就是"让损失尽量小",为什么不能像中学解方程那样直接解出最优参数 w*?答案是两层。第一,损失 L 对 w 几乎总是一个高度非线性的函数(激活函数、嵌套结构一层层叠进去),它不像二次函数那样有规范的闭合解。第二,就算能写出驻点方程,那个方程里 w 出现了几百万次、层层嵌套,根本没法解析地反解出来。
所以一切优化方法都退而求其次:不去解"一次到位",而是反复做"沿梯度走一步、再算一次、再走一步"的迭代。 这也反过来解释了为什么学习率、动量这些超参数如此重要——它们不是可有可无的调校,而是"迭代步法"这条唯一可行解路里,我们仅有的能拧的旋钮。
我们把"快与稳"的矛盾落成两个数字。设二次损失 L(w) = w²,梯度为 2w,从 w=1 出发:
# 概念片段:同一个二次地形,看不同学习率的走法 w = 1.0 lr = 0.1 # 换 0.9 感受震荡,换 0.1 感受平滑 for _ in range(6): grad = 2 * w w = w - lr * grad print(f"step {_}: w={w:.3f}")
同一个地形、同一个起点,只是把学习率从 0.9 改成 0.1,行为就从"来回震荡"变成"稳步收敛"。这是"快与稳拔河"最小的、可亲手验算的切面。看懂它,你就明白为什么优化器的一切花样,都是在想办法把这条步长线填得更聪明。
离开前,把这三张牌跟它各自要平衡的力对一遍,方便 4.2–4.4 对号入座:
每个新优化器,本质上都是在这三张牌之间重新分配权重。理解"每招在补哪端",你就握住了整章主线的钥匙,而不是记一串孤立函数名。
先把"桥"这张类比放下,下一节走进最基础的三兄弟——批量、随机、小批量三类梯度下降,看最基本的步法长什么样。