李宏毅ML-局部最小值与鞍点

文章讨论了优化过程中遇到的局部最小值和鞍点问题,解释了它们如何影响参数更新和损失函数的降低。通过泰勒公式分析,区分了局部最小值和鞍点的关键在于Hessian矩阵的特征值。对于鞍点,可以通过调整参数沿着负特征值对应的特征向量方向来逃脱。实际应用中,由于计算复杂性,解决鞍点问题更具挑战性,尤其是在高维参数空间中。
摘要由CSDN通过智能技术生成

局部最小值与鞍点

1. Optimization 没有做好是因为什么?

观察下图,随着 update 的次数增加, 蓝色曲线代表的 Loss 越来越小,但是停下来的时候,Loss 依然还是比较大,而橙色曲线代表的 Loss 始终没有下降,这两种情况是 optimization 失败的典型例子。
那是什么原因导致的 optimization 失败呢?
在这里插入图片描述
归根结底,是在计算参数对 L 的微分时,也就是在计算曲线的斜率时,gradient 接近 0,参数更新结束,而这其实是在参数更新时遇到了 critical point.
critical point 有两种,一种是 local minima,一种是 saddle point.
local minima(局部最小值):遇到 local minima 时,其四周的地形都比它高,无路可走了。
saddle point(鞍点):遇到 saddle point 时,其左右两侧的地形都比较低,前后两侧的地形都比较高,这时候可以往左右两侧逃离,以更新参数,使得 Loss 变小。

2. Local Minima or Saddle Point?

我们可以用泰勒公式来近似推导 Loss。
θ ′ \theta^{\prime} θ 是参数现在所处的位置,而 θ \theta θ 是其周围的任意一点。
L ( θ ) L(\theta) L(θ) 有 3 项,第 2 项在参数遇到 critical point 时为0,可以消去,第 3 项则告诉了我们 critical point 的特性,根据不同的特性,我们可来判断 critical point 是 local minima or local maxima or saddle point?
在这里插入图片描述
θ − θ ′ = v \theta-\theta^{\prime}=v θθ=v,而原来的第三项可以简写为 v T H v v^THv vTHv
v T H v v^THv vTHv > 0,说明 L ( θ ) > L ( θ ′ ) L(\theta) > L(\theta^{\prime}) L(θ)>L(θ),即在 θ ′ \theta^{\prime} θ 处的 Loss 要比 θ ′ \theta^{\prime} θ 周围的任意一点 θ \theta θ 处的 Loss 都要来得小,所以参数更新停下的点是 Local minima,同时 v T H v v^THv vTHv > 0 也说明了 H 是一个正定矩阵,即 H 所有的特征值都 > 0;
v T H v v^THv vTHv < 0,说明 L ( θ ) < L ( θ ′ ) L(\theta) < L(\theta^{\prime}) L(θ)<L(θ),即在 θ ′ \theta^{\prime} θ 处的 Loss 要比 θ ′ \theta^{\prime} θ 周围的任意一点 θ \theta θ 处的 Loss 都要来得大,所以参数更新停下的点是 Local maxima,同时 v T H v v^THv vTHv < 0 也说明了 H 是一个负定矩阵,即 H 所有的特征值都 < 0;
有时 v T H v v^THv vTHv > 0,有时 v T H v v^THv vTHv < 0,说明在 θ ′ \theta^{\prime} θ 处的 Loss 要比 θ ′ \theta^{\prime} θ 周围的任意一点 θ \theta θ 处的 Loss 要么来得大、要么来得小,所以参数更新停下的点是 saddle point,同时也说明了 H 的有些特征值是 > 0 的,有些特征值是 < 0 的.

在这里插入图片描述
举个例子判断某个点是否 saddle point?
在这里插入图片描述
在这里插入图片描述

3. 如何解决 Saddle Point?

如果遇到了 Local minima,无路可走,无法再更新参数了;而如果遇到了 Saddle point,根据 H 还可以判断参数继续更新的方向,还是可以解决的。
u u u 是特征向量, λ \lambda λ 是特征向量中的一个负的特征值,令 v = u v = u v=u u T H u = u T ( λ u ) = λ ∣ ∣ u ∣ ∣ 2 < 0 u^{T}Hu=u^{T}(\lambda u) = \lambda ||u||^{2} <0 uTHu=uT(λu)=λ∣∣u2<0,则 L ( θ ) < L ( θ ′ ) L(\theta)<L(\theta^{\prime}) L(θ)<L(θ),此时在 θ \theta θ 处为 Local maxima,还有更新参数的可能。
θ − θ ′ = u \theta-\theta^{\prime}=u θθ=u,则 θ ′ + u \theta^{\prime}+u θ+u θ \theta θ 更新参数的方向。
在这里插入图片描述
还是以刚刚的例子来解决 saddle point.
在这里插入图片描述
当一个模型的参数有很多时,求 H 需要很大的计算量,使得效率比较低,因此很少被用于实际应用中。
现实中的实际应用,需要的参数是高维的,在低维中的 local minima 到了高维中也就变成了 saddle point,所以能遇到 local minima 的机会还是很少的。
在这里插入图片描述
根据经验来说,参数在不断更新的过程中,会越来越有可能遇到 local minima,但不过也从来没有遇到 local minima. 多数时候,训练模型停下来时,都是因为遇到了 saddle point.
在这里插入图片描述

在训练模型时,参数不断地更新,但假如说卡在了 saddle point, local minima, plateau 会有什么样的解决方案?请看下一篇笔记。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值