内功法门
你以为梯度下降就能找到全局最优。但非凸 landscape 充满局部最优与鞍点——梯度为零不是"到了",只是"走不动了"。
内功之门
你踏入内功殿时,空气里漂浮的不是数据、不是模型,而是箭头——成千上万个细小的梯度箭头,像溪流一样沿一面看不见的山坡向下流淌。殿中石碑刻着四个字:内功法门。
「你学了四年招式——线性代数、概率统计、机器学习、深度学习。但招式要有内力驱动。内力,就是最优化。」
「我赌——在你走完这章之前,至少有一次,你会找到一个谷底,然后停下来说'到了'。每一次,我都长大一分。」
直觉之赌 · 曲面拾取 · 双景预览
三选一(无对错,但被阱记账)→ 拾取本命损失曲面 → 凸碗 vs 非凸山峦预览
本命损失曲面 · 拾取
阶上躺着一枚透明晶体,内部隐约可见一片起伏的山峦——那是某个模型的损失曲面。拾起它。
双景预览 · 凸碗 vs 非凸山峦
先走左边那片(凸碗)。那片对你很友好。
凸域 · 谷底即真底
左径尽头是一片光滑如碗的曲面,通体泛着暖光。你在碗壁任何位置放一颗珠子,它都会滚向同一个底——不多不少,只有一处最低点。
「这片地形叫凸域。它的规矩很简单:任取两点连一条弦,弦不会掉到曲面下方。满足这条,任何谷底都是唯一的真底。」
凸域探索台 · 弦线测试 + 标准形式拼装 + 丢球实验
拖弦判定凸性 → 拼装标准形式 → 凸碗 vs 非凸丢球对比
弦线测试 · 拖动弦在曲线上移动
凸优化标准形式拼装
丢球实验 · 凸碗 vs 非凸山峦
梯度之路 · 顺坡而下
凸碗壁上出现一颗珠子。高斯老祖递给你一个旋钮——步长 η。
「别问公式。先转旋钮,让珠子滚下去。」
「下山嘛,谁不会。问题是——你下到了哪个底?」
梯度下降实验台 · 步长三档 + 公式浮现 + 梯度场
选步长档位 → 观察珠子轨迹 → 公式与收敛界浮现
θ_{t+1} = θ_t - η∇f(θ_t)f(θ_T) - f* ≤ L‖θ₀-θ*‖²/(2T)非凸之壁 · 第一崩塌
凸碗旁边那片山峦的雾散尽了。沟壑纵横,深浅不一——有的谷底深不见底,有的只是路边一个浅坑。高斯老祖把珠子放在山脊高处:"用你刚学的梯度下降。走。" 珠子顺坡滑下,滑进最近的一个凹处——停住了。梯度为零。
「舒服吗?梯度为零,风平浪静。你觉得到了底——我也觉得。那边那个谷比你深八倍。」
非凸曲面探索器 · 多起点丢球 + 梯度零点三分类 + 深度对比
选不同起点丢球 → 观察不同终点 → ∇f=0 三种命运 → 深度对比
∇f=0 的三种命运
深度对比
随机之力 · 噪声即逃逸
还是那片非凸山峦,但高斯老祖递给你一个新旋钮——"批量大小 B"。
「你之前用的是全量梯度——所有数据算一个精确梯度。方差为零。但方差为零,也意味着零逃逸。现在,只用一个样本算梯度。它会抖。但抖,有时候是好事。」
SGD 逃逸实验台 · 批量大小 + 方差仪表盘 + 收敛对比
切换批量大小 → 观察方差与逃逸 → 收敛曲线对比
方差仪表盘
收敛速率对比
加速之器 · 动量与自适应
非凸山峦旁多出一排法器架:三件法器悬在架上,各泛微光。高斯老祖:"纯 SGD 像一个没有记忆的人——每一步只看当下。给他三件东西。" 第一件:一只蓄力球——动量。第二件:一双自适应鞋——逐参数调步长。第三件:一只沙漏——学习率调度。
加速法器架 · 动量 + 自适应优化器 + 学习率调度
调 β 滑块 → 切换优化器 → 选学习率调度 → 训练曲线响应
动量法 · β 滑块
v_t = βv_{t-1} + ∇f
自适应优化器
学习率调度
曲率之眼 · 牛顿法 · 第二崩塌
山峦旁出现一面透镜——曲率之眼。透过它,你看到的不再是坡度,而是曲面弯曲的方式:凸处泛蓝光(H 正定),凹处泛红光(H 负定),鞍点处蓝红交错(H 不定)。高斯老祖在一个完美的二次碗上放了一颗珠子:"试。" 珠子一步——只一步——就到了碗底。
「二阶?好。让我看看 Hessian 的符号。正定?负定?还是——不定?你信了曲率,曲率把你送上了坡。」
曲率透镜 · 牛顿法 vs GD + Hessian 特征值 + 代价面板
凸碗一步收敛 → 鞍点欺骗 → Hessian 分解 → BFGS/L-BFGS 代价
Hessian 特征值分解
代价对比
约束之锁 · 拉格朗日与KKT
山峦尽头出现一道半透明的墙——约束边界 g(x)≤0。墙的另一侧是不可行区域。高斯老祖:"你之前在自由空间里找最低点。现在——最低点可能在墙边,也可能被墙挡住。你怎么找?" 墙面上浮现一个旋钮——拉格朗日乘子 λ。
「λ 是约束的'价格'。你愿意付多少代价来松绑这条约束?」
约束优化台 · 等高线-约束切点 + λ 滑块 + KKT 四条件
拖等高线找切点 → 调 λ 看约束价格 → 逐条点亮 KKT 四条件
等高线与约束 · 找切点
KKT 四条件 · 逐条点亮
对偶之镜 · 强弱对偶与鞍点
约束墙旁出现一面镜子——对偶之镜。镜中映出的不是曲面本身,而是它的"影子问题"。高斯老祖:"每个约束优化问题都有两面——原始问题 min f(x) 和对偶问题 max g(λ)。凸+Slater 条件下,两面给出的答案完全一样——强对偶。" 镜子旁,曲率透镜重新亮起。
「还记得鞍点吗?它在高维曲面上的数量——比你想象的多得多。你怕了半天的敌人,在高维里根本没几个。」
对偶之镜 · 对偶函数 + 维度滑块 + minimax 视图
构建对偶函数看间隙 → 拖维度看鞍点主导 → 切换 minimax 视图
对偶函数 · g(λ)=inf_x L(x,λ)
高维临界点分布 · 拖维度
极小极大优化 · min_x max_y f(x,y)
鞍点在 minimax 中不是陷阱——它是解。GAN 训练、对抗样本就是这个结构。
Boss 战 · 局部最优之阱
曲面深处的浓雾凝成一张巨大的、没有五官的脸——它由无数个微小的"∇f=0"符号组成,密密麻麻,像一窝安息的蛇。
「我是局部最优之阱。我不住在你的错误里——错误救不了我。我住在你'梯度为零就停手'的满足里。三问。答错一题,曲面就暗一分。」
最优债累计 0 笔 · 三问全对后清零
尾声 · 内功大成
阱散尽时,本命损失曲面晶体上的两道裂纹被琥珀光一点一点填满——伤痕闭合,曲面比先前更亮。不是它变了,是你变了。
「你内功初成了。但——你学了这么多优化器,梯度从哪来?你算 ∇f,可 f 是一个有百万参数的神经网络时,百万维梯度怎么算?下一章,那叫反向传播。」
内功大成 · 知识图谱点亮 + 境界突破
逐一点亮 14 块碎片 → 图谱连线成网 → 炼气期收官境界突破动画