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

局部最小值与鞍点

文章目录

  • 局部最小值与鞍点
    • 1. Optimization 没有做好是因为什么?
    • 2. Local Minima or Saddle Point?
    • 3. 如何解决 Saddle Point?

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

观察下图,随着 update 的次数增加, 蓝色曲线代表的 Loss 越来越小,但是停下来的时候,Loss 依然还是比较大,而橙色曲线代表的 Loss 始终没有下降,这两种情况是 optimization 失败的典型例子。
那是什么原因导致的 optimization 失败呢?
李宏毅ML-局部最小值与鞍点_第1张图片
归根结底,是在计算参数对 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?
李宏毅ML-局部最小值与鞍点_第2张图片
θ − θ ′ = 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 的.

李宏毅ML-局部最小值与鞍点_第3张图片
举个例子判断某个点是否 saddle point?
李宏毅ML-局部最小值与鞍点_第4张图片
李宏毅ML-局部最小值与鞍点_第5张图片

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(θ)<L(θ),此时在 θ \theta θ 处为 Local maxima,还有更新参数的可能。
θ − θ ′ = u \theta-\theta^{\prime}=u θθ=u,则 θ ′ + u \theta^{\prime}+u θ+u θ \theta θ 更新参数的方向。
李宏毅ML-局部最小值与鞍点_第6张图片
还是以刚刚的例子来解决 saddle point.
李宏毅ML-局部最小值与鞍点_第7张图片
当一个模型的参数有很多时,求 H 需要很大的计算量,使得效率比较低,因此很少被用于实际应用中。
现实中的实际应用,需要的参数是高维的,在低维中的 local minima 到了高维中也就变成了 saddle point,所以能遇到 local minima 的机会还是很少的。
李宏毅ML-局部最小值与鞍点_第8张图片
根据经验来说,参数在不断更新的过程中,会越来越有可能遇到 local minima,但不过也从来没有遇到 local minima. 多数时候,训练模型停下来时,都是因为遇到了 saddle point.
李宏毅ML-局部最小值与鞍点_第9张图片

在训练模型时,参数不断地更新,但假如说卡在了 saddle point, local minima, plateau 会有什么样的解决方案?请看下一篇笔记。
李宏毅ML-局部最小值与鞍点_第10张图片

你可能感兴趣的:(深度学习,机器学习,线性代数,深度学习)