当前位置: 首页 > news >正文

【人工智能学习之局部极小值与鞍点】

局部极小值与鞍点

  • 一、局部极小值(Local Minima)
    • 1. 直观理解
    • 2. 数学定义
    • 3. 关键性质
    • 4. 举个栗子
  • 二、鞍点(Saddle Point)
    • 1. 直观理解
    • 2. 数学定义
    • 3. 关键性质
    • 4. 举个栗子
    • 5. 为什么鞍点在神经网络中更常见?
  • 三、局部极小值 vs 鞍点:关键区别
  • 四、如何判断一个临界点是哪种类型?
  • 五、实际应用中的问题
  • 六、为什么高维空间鞍点更多?
  • 七、如何直观感受鞍点?
    • 实验1:画一个鞍点函数
    • 实验2:简单神经网络中的鞍点
  • 八、总结

要理解模型优化必须先从最基础的局部极小值和鞍点开始,这两个概念是优化问题的核心难点,理解它们对后续学习优化算法非常重要。


一、局部极小值(Local Minima)

1. 直观理解

想象你在一片多山的区域徒步,突然发现周围有一个小坑,无论你往哪个方向走都会“上坡”——这个小坑就是一个局部极小值。在优化问题中,它对应损失函数的一个“低谷”,参数在这个点时,无论往哪个方向调整,损失都可能变大。

2. 数学定义

对于函数 L ( θ ) L(\theta) L(θ),若存在一个邻域 ∣ θ − θ ∗ ∥ < ϵ | \theta - \theta^* \| < \epsilon θθ<ϵ,使得在该邻域内:
L ( θ ∗ ) ≤ L ( θ ) 对所有  θ 成立 , L(\theta^*) \leq L(\theta) \quad \text{对所有} \ \theta \ \text{成立}, L(θ)L(θ)对所有 θ 成立,
θ ∗ \theta^* θ 是一个局部极小值

3. 关键性质

  • 梯度为零:在局部极小值点,梯度 n a b l a L ( θ ∗ ) = 0 nabla L(\theta^*) = 0 nablaL(θ)=0
  • Hessian矩阵正定:二阶导数矩阵(Hessian矩阵 H H H)在该点的所有特征值均为正,即 H ≻ 0 H \succ 0 H0。这说明曲率在所有方向都是“向上凹”的。

4. 举个栗子

假设损失函数是 L ( θ ) = θ 2 L(\theta) = \theta^2 L(θ)=θ2,在 θ = 0 \theta = 0 θ=0 处是一个局部极小值(也是全局极小值)。梯度 ∇ L = 2 θ \nabla L = 2\theta L=2θ,在 θ = 0 \theta=0 θ=0 处梯度为零;Hessian H = 2 > 0 H = 2 > 0 H=2>0,正定。


二、鞍点(Saddle Point)

1. 直观理解

鞍点得名于马鞍的形状。想象你坐在马鞍上:沿着马头方向(前后)是“下坡”,而沿着马背方向(左右)是“上坡”。鞍点是一个梯度为零的点,但某些方向是极小值,另一些方向是极大值。在深度学习中损失不是只在局部极小值的梯度是零,还有其他可能会让梯度是零的点,比如鞍点(saddle point)。鞍点其实就是梯度是零且区别于局部极小值和局部极大值(local maximum)的点。

2. 数学定义

对于函数 L ( θ ) L(\theta) L(θ),若梯度 ∇ L ( θ ∗ ) = 0 \nabla L(\theta^*) = 0 L(θ)=0,但Hessian矩阵 H H H 的特征值有正有负,则 θ ∗ \theta^* θ 是一个鞍点

3. 关键性质

  • 梯度为零:与局部极小值一样,鞍点的梯度也为零。
  • Hessian矩阵不定:Hessian矩阵既有正特征值(对应“下坡”方向),又有负特征值(对应“上坡”方向)。

4. 举个栗子

考虑二元函数 L ( x , y ) = x 2 − y 2 L(x, y) = x^2 - y^2 L(x,y)=x2y2,在 ( 0 , 0 ) (0,0) (0,0) 处是一个鞍点:

  • 梯度 ∇ L = ( 2 x , − 2 y ) \nabla L = (2x, -2y) L=(2x,2y),在 ( 0 , 0 ) (0,0) (0,0) 处为零。
  • Hessian矩阵 H = [ 2 0 0 − 2 ] H = \begin{bmatrix} 2 & 0 \\ 0 & -2 \end{bmatrix} H=[2002],特征值为 + 2 +2 +2 − 2 -2 2

5. 为什么鞍点在神经网络中更常见?

  • 维度诅咒:神经网络参数通常是高维的(百万甚至十亿级)。在低维空间中局部极小值更多,但在高维空间中,鞍点的数量会指数级增长。
  • 对称性:神经网络的结构对称性(如多个神经元初始化相同)会诱导鞍点。

三、局部极小值 vs 鞍点:关键区别

特征局部极小值鞍点
梯度 ∇ L = 0 \nabla L = 0 L=0 ∇ L = 0 \nabla L = 0 L=0
Hessian特征值全为正( H ≻ 0 H \succ 0 H0有正有负( H H H) 不定)
优化方向所有方向都是“上坡”某些方向“上坡”,某些“下坡”
逃离难度难(需要跳出局部区域)较易(沿负曲率方向下降即可)

在这里插入图片描述


四、如何判断一个临界点是哪种类型?

假设你已经找到了一个梯度为零的点 θ ∗ \theta^* θ,接下来需要分析Hessian矩阵:

  1. 计算Hessian矩阵 H H H:即二阶导数矩阵。
  2. 求特征值:计算 H H H 的所有特征值。
  3. 判断特征值符号
    • 全正 → 局部极小值
    • 全负 → 局部极大值
    • 有正有负 → 鞍点

五、实际应用中的问题

  • 计算Hessian矩阵在深度学习中非常昂贵(参数太多)。
  • 替代方案:使用随机扰动观察损失变化。例如,在 θ ∗ \theta^* θ 附近随机采样多个方向 d d d,计算 L ( θ ∗ + ϵ d ) L(\theta^* + \epsilon d) L(θ+ϵd)
    • 如果所有方向 L L L 都增大 → 局部极小值;
    • 如果某些方向 L L L 减小 → 鞍点。

六、为什么高维空间鞍点更多?

假设参数空间维度为 D D D,Hessian矩阵的特征值随机分布。当 D D D 很大时:

  • 所有特征值为正的概率是 2 − D 2^{-D} 2D(指数级下降);
  • 至少有一个正和一个负特征值的概率接近1。

因此,高维优化问题中,梯度为零的点几乎都是鞍点,而非局部极小值。这也是为什么深度学习优化中,鞍点比局部极小值更值得关注。


七、如何直观感受鞍点?

实验1:画一个鞍点函数

尝试画出 L ( x , y ) = x 2 − y 2 L(x, y) = x^2 - y^2 L(x,y)=x2y2 的3D图像,观察 ( 0 , 0 ) (0,0) (0,0) 处的形状。你会发现:

  • 沿x轴方向(正负)是“上坡”;
  • 沿y轴方向(正负)是“下坡”。

实验2:简单神经网络中的鞍点

构造一个单层线性网络 y = W x + b y = Wx + b y=Wx+b,损失函数为均方误差。尝试将权重初始化为全零,此时梯度为零,但Hessian矩阵可能不定(取决于数据),此时可能处于鞍点。


八、总结

  • 局部极小值 是“陷阱”,需要跳出局部区域;
  • 鞍点 是“伪陷阱”,可以通过特定方向逃离;
  • 在高维空间中,鞍点比局部极小值更常见,因此优化算法需要具备逃离鞍点的能力。

理解了这两个概念后,我们就可以进一步讨论如何设计优化算法来逃离鞍点,比如动量法、自适应学习率、二阶方法等。


http://www.mrgr.cn/news/93401.html

相关文章:

  • 深度学习 PyTorch 中 18 种数据增强策略与实现
  • 全新方案80M/S,告别限速!
  • 自定义录制,解锁全部功能!
  • Java面经
  • K8s 1.27.1 实战系列(一)介绍及准备工作
  • Linux 基础入门操作-实验二 cmake使用介绍下
  • 零售交易流程相关知识(top-down拆解)
  • 尚硅谷爬虫note15
  • 使用QT + 文件IO + 鼠标拖拽事件 + 线程 ,实现大文件的传输
  • 运动控制卡--固高实用
  • LLM-初识AI
  • 关于sqlalchemy的使用
  • 浏览器WEB播放RTSP
  • 深度学习PyTorch之13种模型精度评估公式及调用方法
  • 为AI聊天工具添加一个知识系统 之138 设计重审 之2 文章学 引言之2 附加符号学和附属诠释学
  • 前端基础入门-高级
  • WLAN无线组网 WI-FI
  • 如何改变怂怂懦弱的气质(2)
  • 从零构建企业级财务分析数仓 | Hive建模实战
  • Spring(四)先注册后注入