SICI · 蕴灵宗 · 第五章

最优化理论基础 · 炼气五层

你以为梯度下降就能找到全局最优。但非凸 landscape 充满局部最优与鞍点——梯度为零不是"到了",只是"走不动了"。

局部最优之阱低语:「我赌——在你走完这章之前,至少有一次,你会找到一个谷底,然后停下来说'到了'。」
序章

内功之门

梯度箭头流 · 直觉之赌 · 本命损失曲面

你踏入内功殿时,空气里漂浮的不是数据、不是模型,而是箭头——成千上万个细小的梯度箭头,像溪流一样沿一面看不见的山坡向下流淌。殿中石碑刻着四个字:内功法门。

反向之瀑,梯度从输出层流向输入层
高斯老祖 高斯老祖

「你学了四年招式——线性代数、概率统计、机器学习、深度学习。但招式要有内力驱动。内力,就是最优化。」

局部最优之阱 局部最优之阱

「我赌——在你走完这章之前,至少有一次,你会找到一个谷底,然后停下来说'到了'。每一次,我都长大一分。」

直觉之赌 · 曲面拾取 · 双景预览

三选一(无对错,但被阱记账)→ 拾取本命损失曲面 → 凸碗 vs 非凸山峦预览

局部最优之阱逼你上赌桌:给你一片有谷底的山峦,你顺着坡走下去,能走到最深那个谷底吗?
第一幕 · 自信→膨胀

凸域 · 谷底即真底

凸集/凸函数弦判据 · 凸优化标准形式 · 丢球实验

左径尽头是一片光滑如碗的曲面,通体泛着暖光。你在碗壁任何位置放一颗珠子,它都会滚向同一个底——不多不少,只有一处最低点。

高斯老祖 高斯老祖

「这片地形叫凸域。它的规矩很简单:任取两点连一条弦,弦不会掉到曲面下方。满足这条,任何谷底都是唯一的真底。」

凸域探索台 · 弦线测试 + 标准形式拼装 + 丢球实验

拖弦判定凸性 → 拼装标准形式 → 凸碗 vs 非凸丢球对比

弦线测试 · 拖动弦在曲线上移动

凸优化标准形式拼装

目标
约束
条件
min f(x)
s.t. x ∈ C
f 凸, C 凸

丢球实验 · 凸碗 vs 非凸山峦

第一幕 · 自信→膨胀

梯度之路 · 顺坡而下

θ←θ-η∇f · 步长三档实验 · 收敛界 O(1/T)

凸碗壁上出现一颗珠子。高斯老祖递给你一个旋钮——步长 η。

高斯老祖 高斯老祖

「别问公式。先转旋钮,让珠子滚下去。」

局部最优之阱 局部最优之阱

「下山嘛,谁不会。问题是——你下到了哪个底?」

梯度下降实验台 · 步长三档 + 公式浮现 + 梯度场

选步长档位 → 观察珠子轨迹 → 公式与收敛界浮现

第一幕 · 第一崩塌

非凸之壁 · 第一崩塌

∇f=0 ≠ 全局最优 · 多起点丢球 · 局部最优 vs 鞍点 vs 局部最大

凸碗旁边那片山峦的雾散尽了。沟壑纵横,深浅不一——有的谷底深不见底,有的只是路边一个浅坑。高斯老祖把珠子放在山脊高处:"用你刚学的梯度下降。走。" 珠子顺坡滑下,滑进最近的一个凹处——停住了。梯度为零。

局部最优之阱 局部最优之阱

「舒服吗?梯度为零,风平浪静。你觉得到了底——我也觉得。那边那个谷比你深八倍。」

非凸曲面探索器 · 多起点丢球 + 梯度零点三分类 + 深度对比

选不同起点丢球 → 观察不同终点 → ∇f=0 三种命运 → 深度对比

第二幕 · 挣扎→尝试

随机之力 · 噪声即逃逸

SGD 无偏性 E[∇f_i]=∇f · 方差 σ² · Mini-batch 降方差 1/B

还是那片非凸山峦,但高斯老祖递给你一个新旋钮——"批量大小 B"。

高斯老祖 高斯老祖

「你之前用的是全量梯度——所有数据算一个精确梯度。方差为零。但方差为零,也意味着零逃逸。现在,只用一个样本算梯度。它会抖。但抖,有时候是好事。」

SGD 逃逸实验台 · 批量大小 + 方差仪表盘 + 收敛对比

切换批量大小 → 观察方差与逃逸 → 收敛曲线对比

方差仪表盘

第二幕 · 挣扎→再崩塌

加速之器 · 动量与自适应

Momentum v_t=βv_{t-1}+g · Adam · 学习率调度 · 余弦退火

非凸山峦旁多出一排法器架:三件法器悬在架上,各泛微光。高斯老祖:"纯 SGD 像一个没有记忆的人——每一步只看当下。给他三件东西。" 第一件:一只蓄力球——动量。第二件:一双自适应鞋——逐参数调步长。第三件:一只沙漏——学习率调度。

加速法器架 · 动量 + 自适应优化器 + 学习率调度

调 β 滑块 → 切换优化器 → 选学习率调度 → 训练曲线响应

动量法 · β 滑块

β=0.00
v_t = βv_{t-1} + ∇f

自适应优化器

学习率调度

第二幕 · 第二崩塌

曲率之眼 · 牛顿法 · 第二崩塌

θ←θ-H⁻¹∇f · 二次收敛 · H 不定鞍点风险 · BFGS/L-BFGS

山峦旁出现一面透镜——曲率之眼。透过它,你看到的不再是坡度,而是曲面弯曲的方式:凸处泛蓝光(H 正定),凹处泛红光(H 负定),鞍点处蓝红交错(H 不定)。高斯老祖在一个完美的二次碗上放了一颗珠子:"试。" 珠子一步——只一步——就到了碗底。

局部最优之阱 局部最优之阱

「二阶?好。让我看看 Hessian 的符号。正定?负定?还是——不定?你信了曲率,曲率把你送上了坡。」

曲率透镜 · 牛顿法 vs GD + Hessian 特征值 + 代价面板

凸碗一步收敛 → 鞍点欺骗 → Hessian 分解 → BFGS/L-BFGS 代价

第三幕 · 顿悟→突破

约束之锁 · 拉格朗日与KKT

L=f+λg · ∇f∥∇g · KKT 四条件 · 互补松弛

山峦尽头出现一道半透明的墙——约束边界 g(x)≤0。墙的另一侧是不可行区域。高斯老祖:"你之前在自由空间里找最低点。现在——最低点可能在墙边,也可能被墙挡住。你怎么找?" 墙面上浮现一个旋钮——拉格朗日乘子 λ。

高斯老祖 高斯老祖

「λ 是约束的'价格'。你愿意付多少代价来松绑这条约束?」

约束优化台 · 等高线-约束切点 + λ 滑块 + KKT 四条件

拖等高线找切点 → 调 λ 看约束价格 → 逐条点亮 KKT 四条件

等高线与约束 · 找切点

λλ=0.00

KKT 四条件 · 逐条点亮

第三幕 · 顿悟→突破

对偶之镜 · 强弱对偶与鞍点

g(λ)=inf_x L · 弱对偶 g*≤p* · 强对偶凸+Slater · 高维鞍点主导

约束墙旁出现一面镜子——对偶之镜。镜中映出的不是曲面本身,而是它的"影子问题"。高斯老祖:"每个约束优化问题都有两面——原始问题 min f(x) 和对偶问题 max g(λ)。凸+Slater 条件下,两面给出的答案完全一样——强对偶。" 镜子旁,曲率透镜重新亮起。

高斯老祖 高斯老祖

「还记得鞍点吗?它在高维曲面上的数量——比你想象的多得多。你怕了半天的敌人,在高维里根本没几个。」

对偶之镜 · 对偶函数 + 维度滑块 + minimax 视图

构建对偶函数看间隙 → 拖维度看鞍点主导 → 切换 minimax 视图

对偶函数 · g(λ)=inf_x L(x,λ)

高维临界点分布 · 拖维度

nn=2
第三幕 · 最高潮

Boss 战 · 局部最优之阱

三问对决 · 最优债翻阅 · 排除法收网

曲面深处的浓雾凝成一张巨大的、没有五官的脸——它由无数个微小的"∇f=0"符号组成,密密麻麻,像一窝安息的蛇。

局部最优之阱 局部最优之阱

「我是局部最优之阱。我不住在你的错误里——错误救不了我。我住在你'梯度为零就停手'的满足里。三问。答错一题,曲面就暗一分。」

最优债累计 0 笔 · 三问全对后清零

第三幕 · 收束

尾声 · 内功大成

知识图谱点亮 · 炼气期收官 · 境界突破(炼气→筑基)

阱散尽时,本命损失曲面晶体上的两道裂纹被琥珀光一点一点填满——伤痕闭合,曲面比先前更亮。不是它变了,是你变了。

高斯老祖 高斯老祖

「你内功初成了。但——你学了这么多优化器,梯度从哪来?你算 ∇f,可 f 是一个有百万参数的神经网络时,百万维梯度怎么算?下一章,那叫反向传播。」

内功大成 · 知识图谱点亮 + 境界突破

逐一点亮 14 块碎片 → 图谱连线成网 → 炼气期收官境界突破动画

本命损失曲面 · 伤痕即功勋