核心要点

  • 神经网络损失函数高度非凸,存在大量临界点(梯度为零的点)

  • 高维空间中「真正的坏局部极小」很少,主要障碍是鞍点与大片平坦区

  • 鞍点:梯度近 0 但非极小,各方向曲率有正有负(Hessian 特征值正负混合)

  • SGD 的随机噪声、动量、Adam 的自适应步长都能帮助逃离鞍点

标准回答

非凸与临界点

神经网络损失曲面高度非凸,含大量梯度为零的临界点,包括局部极小、局部极大和鞍点。直觉上人们担心被困在局部极小,但理论与实验表明,在高维参数空间中这并非主要问题。

为什么鞍点是主因

一个临界点是局部极小,要求 Hessian 所有特征值都为正;维度越高,所有特征值同号的概率越低,因此真正的坏局部极小极为罕见,绝大多数临界点是鞍点——某些方向曲率为正、某些为负。此外大片近乎平坦的区域(梯度极小)会让训练长时间停滞,比鞍点更棘手。

如何逃离

鞍点处梯度近 0,纯梯度下降会停滞,但:SGD 的小批量采样引入随机噪声,能把参数推离鞍点;动量积累历史方向,可冲过平坦区;Adam 等自适应方法在不同方向用不同步长,也有助加速逃离。

常见误区

⚠️ 常见踩坑

把局部最优当成深度学习训练的主要障碍——高维下坏的局部极小很罕见,真正常见的是鞍点和平坦区导致的停滞。

追问

追问 1如何判断一个临界点是鞍点还是极小?

看该点 Hessian 矩阵的特征值:全为正是局部极小,全为负是局部极大,正负混合则是鞍点。实践中不会真去算 Hessian,而是观察 loss 是否长时间停滞、能否通过加噪声 / 重启 / 调学习率继续下降。

追问 2为什么 SGD 反而比全量梯度下降更不容易卡住?

SGD 每步只用小批量估计梯度,带来随机扰动,相当于在优化轨迹上注入噪声,能把参数从鞍点或平坦区推开;而全量梯度下降在临界点处梯度精确为零,更容易停滞。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。