西瓜书笔记 - 5.4 全局最小与局部极小:理解误差函数地形


📘 西瓜书笔记 - 5.4 全局最小与局部极小:理解误差函数地形

在神经网络训练过程中,我们往往将训练目标表示为某种形式的损失函数或误差函数 E(w,θ)E(w, \theta),希望通过不断优化参数 ww、阈值 θ\theta 使其值最小。然而,由于该函数高度非线性且维度极高,我们面对的不再是简单的单峰函数,而是复杂的“误差地形”。本节,我们将探讨该地形中的两种关键点——局部极小全局最小


✅ 什么是全局最小与局部极小?

设误差函数为 E(w,θ)E(w, \theta),则:

  • 局部极小(Local Minimum): 存在某邻域 ϵ>0\epsilon > 0,使得对任意参数组合 (w,θ)(w, \theta) 满足:

    ∥(w,θ)−(w∗,θ∗)∥≤ϵ⇒E(w,θ)≥E(w∗,θ∗)\| (w, \theta) - (w^*, \theta^*) \| \le \epsilon \Rightarrow E(w, \theta) \ge E(w^*, \theta^*)

    则称 (w∗,θ∗)(w^*, \theta^*) 是局部极小点。

  • 全局最小(Global Minimum): 对所有参数组合 (w,θ)(w, \theta),都有:

    E(w,θ)≥E(w∗,θ∗)E(w, \theta) \ge E(w^*, \theta^*)

    则称 (w∗,θ∗)(w^*, \theta^*) 是全局最小点。

📌 图 5.10 中形象展示了误差函数中存在多个局部极小,仅有一个为全局最小。


✅ 理论理解
  • 神经网络训练的目标是最小化误差函数 E(w,θ)E(w, \theta)E(w,θ),即损失越小越好;

  • 这是一个参数寻优问题,目标是找到最优参数组合使得误差最小。

💼 实战理解(OpenAI、Google Brain)
  • 在大型语言模型(如 GPT-4、PaLM)训练中,训练过程就是最小化 cross-entropy loss;

  • 多卡并行时需在分布式参数空间中协同优化,Tensor Parallel + Pipeline Parallel + ZeRO;

  • Google 在 TPU 上训练模型时,使用的是 大规模优化器(如 LAMB) 以确保误差下降过程稳定、收敛快。


🎯 为什么这很重要?

  • 神经网络训练的目标是最小化损失;

  • 若陷入局部极小,虽然看似训练“收敛”,但可能远离最优解;

  • 真正理想的是到达误差函数的全局最小值。


✅ 理论理解
  • 局部极小点是在一个邻域内误差函数值最小的点;

  • 全局最小点是在整个参数空间误差最小的点;

  • 所有全局最小一定是局部极小,反之不成立。

💼 实战理解(百度 Paddle、阿里 PAI、英伟达)
  • 英伟达在训练 GAN 时发现 loss landscape 中存在大量局部极小,特别是生成器的 loss 更容易振荡;

  • 百度自动驾驶的感知模块模型需要鲁棒性,通常在优化过程中使用多个 checkpoint,避免最终收敛到不理想的局部解;

  • 阿里达摩院在 Recommendation CTR 模型优化中引入「multi-loss」机制缓解收敛到次优局部解的问题。


📉 梯度下降与极小值

神经网络常用的参数更新方法是梯度下降法:

  • 每次沿负梯度方向迭代优化参数;

  • 若误差函数在当前点的梯度为 0,更新量为 0,训练停止;

  • 此时,所处位置即为局部极小点(或鞍点/驻点);

  • 若误差函数仅有一个极小点,那它既是局部也是全局最小,训练效果最优。

✅ 理论理解
  • 梯度为零意味着当前点为驻点(可能是极小、极大或鞍点);

  • 若周围误差函数值都更大,则为局部极小;

  • 局部极小可能有多个,但全局最小只能有一个。

💼 实战理解(谷歌 DeepMind、Meta FAIR)
  • DeepMind 在 AlphaZero 训练中观察到:即便 loss 已经非常低(趋近于局部极小),模型策略仍未收敛;

  • Meta 在训练稠密神经网络时发现,很多参数空间中的局部极小性能差异不大,甚至“坏极小”也能得到良好泛化;

  • 实际部署中更关心的是“泛化最优”而非“数学意义下的最优”。

✅ 理论理解
  • 梯度下降法沿负梯度方向迭代优化;

  • 若梯度为零且为局部极小点,则训练将停在此处;

  • 如果误差函数只有一个极小点,它就是全局最小。

💼 实战理解(字节跳动、微软研究院)
  • 字节跳动在训练多塔结构的推荐系统时,使用 warm-up 策略避免早期陷入局部极小;

  • 微软研究院的 DeepSpeed 框架提供 mixed precision + 迁移初始化技巧,使模型能避开前期不良最小值;

  • 在推荐/广告系统中,early stopping 被用来判断“是否陷入平庸极小值”。


🔍 避免陷入局部极小的策略

由于真实任务中的误差函数常具有多个局部极小,以下策略可帮助我们跳出陷阱,更接近全局最小:

1. 多点初始化

“从多个山谷起步,看哪个最低”

  • 初始化多个网络(不同的随机权重);

  • 分别训练后选择误差最小者作为最终解;

  • 这种做法在实际深度学习框架中广泛使用(如模型重启训练)。


理论理解
  • 初始化多个神经网络,从不同起点出发;

  • 选择最终误差最小者作为输出。

💼 实战理解(OpenAI、Google)
  • OpenAI 在训练 GPT-3 时测试多个 seeds 训练,挑选最优模型作为最终部署版本;

  • Google Vision Transformer (ViT) 使用不同初始化策略(He、Xavier、LSUV)对比收敛路径与最小值位置;

  • 字节跳动在 AI 特效模型中做结构蒸馏时也采用多起点 + 冷启动策略组合。


2. 模拟退火(Simulated Annealing)

“偶尔接受坏解,从而跳出山谷”

  • 每次迭代允许以一定概率接受更差的解;

  • 概率随时间降低,逐渐趋于收敛;

  • 常用于组合优化任务,也可用于神经网络训练中进行扰动优化。

✅ 理论理解
  • 引入概率性扰动,有机会接受“坏”的解;

  • 概率随迭代下降,最终趋向稳定。

💼 实战理解(英伟达 Jetson、无人车系统)
  • 英伟达 Jetson 系统中用于参数搜索、系统能量最小控制;

  • 百度 Apollo 自动驾驶中使用扰动型策略做 path optimization;

  • 在嵌入式资源有限场景中,模拟退火是比深度优化更鲁棒的启发式搜索方式。


3. 随机梯度下降(SGD)

“噪声也有好处,能帮我们翻过小山包”

  • 加入随机性后,更新方向不是完美对齐梯度;

  • 即便处于局部极小点,也有可能因噪声跳出;

  • 这正是 SGD 相比标准梯度下降的额外优势。

✅ 理论理解
  • 更新方向存在随机扰动,能逃出局部极小;

  • 比标准梯度下降更有利于探索整个误差空间。

💼 实战理解(所有大厂都用)
  • GPT、BERT、YOLO 等主流模型几乎都使用 SGD 或 Adam(含 noise)优化器;

  • 微调阶段常用 SGD,因为它更容易“跳出旧模型极小值区域”;

  • BAT 推荐系统、搜索排序模型常在 SGD 上添加 Momentum、Nesterov、Dropout 进一步扰动路径。

4. 遗传算法(Genetic Algorithms)

“进化找最优,一代一代变好”

💼 实战理解(华为、微软 Edge AI)
  • 将每组参数编码为个体;

  • 使用进化策略(选择、交叉、变异)逐代优化;

  • 虽然效率不如梯度法,但适用于不连续或非可微的问题。

  • ✅ 理论理解
  • 将参数看作染色体,进化策略寻找更优解;

  • 不依赖梯度信息,适用于非光滑优化问题。

  • 华为昇腾 AI 生态中,遗传算法用于自动搜索量化参数;

  • 微软 EdgeAI 项目中使用遗传算法调整 edge device 上部署模型的结构和资源分配策略;

  • NVIDIA 在 Jetson 上的模型压缩优化(如 pruning + quantization)中也使用类似启发式算法。


📌 小结

概念定义
局部极小周围点的函数值都不低于当前点
全局最小所有点的函数值都不低于当前点
必然关系全局最小 ⊂ 局部极小,但反之不成立

🧠 小结(总结性观点)

理论定义工程实际
局部极小相邻都更大可能收敛但效果平庸
全局最小所有都更大更理想但难以保证达到
跳出策略扰动、初始化多起点训练、SGD、模拟退火
工程关注点不止最优更强调泛化能力、稳定性、部署适配

📌 大厂优化实践中,目标不是找到数学意义上的最小点,而是找到“最泛化”、“最鲁棒”的点。性能好,才是真的好。

神经网络训练过程实质是一个复杂的非凸优化问题,我们并非总能得到全局最小,但合理策略可帮助我们趋近它。


📖 本文基于《机器学习》周志华,第五章“神经网络”5.4节整理。图示为图5.10:全局最小与局部极小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值