李宏毅2021春机器学习课程笔记——Tips for training:Critical Point

本文作为自己学习李宏毅老师2021春机器学习课程所做笔记,记录自己身为入门阶段小白的学习理解,如果错漏、建议,还请各位博友不吝指教,感谢!!

Critical Point

当我们观察训练集上的Loss出现如下两种形式时:

  1. 蓝色线:当Loss下降到一定程度后,便不再减小。但此时的Loss并不能满足我们对模型的要求。
  2. 橙色线:Loss一直没有下降。

在这里插入图片描述出现上述两种情况的原因可能是:损失函数的梯度(gradient)非常接近零,导致损失函数更新后不会下降。在训练过程中如果损失函数陷入局部最小值(Local minima)鞍点(saddle point)都会出现上述优化失败的情况,这两种情况统称为critical point
在这里插入图片描述

Local Minima

对于很多非线性优化问题,会存在若干个局部最小值(Local Minima),其对应的解称为局部最小解(Local Minimizer)。

局部最小解定义

存在一个 δ > 0 \delta>0 δ>0,对于所有的满足 ∣ ∣ x − x ∗ ∣ ∣ ≤ δ ||x-x^*|| \le \delta xxδ x x x,都有 f ( x ∗ ) ≤ f ( x ) f(x^*) \le f(x) f(x)f(x)。也就是说,在 x ∗ x^* x的邻域内,所有的函数值都大于等于 f ( x ∗ ) f(x^*) f(x)

PS:此处的 x x x指的是模型中的未知参数,即 θ \theta θ

判断局部最小值

要确定一个点 x ∗ x^* x是否为局部最小解,通过比较它的邻域内有没有更小的函数值是不现实的。如果函数 f ( x ) f(x) f(x)是二次连续可微的,我们可以通过检查目标函数在 x ∗ x^* x的梯度 ∇ f ( x ∗ ) \nabla f(x^*) f(x)和Hessian矩阵 ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) 2f(x)来判断。

局部最小解的一阶必要条件:如果 x ∗ x^* x为局部最小解并且函数 f f f x ∗ x^* x的邻域内一阶可微,则在 ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0.

证明
如果函数 f ( x ) f(x) f(x)是连续可微的,根据泰勒公式(Taylor‘s Formula),函数 f ( x ) f(x) f(x)的一阶展开可以近似为:
f ( x ∗ + Δ x ) = f ( x ∗ ) + Δ x T ∇ f ( x ∗ ) f(x^*+\Delta x) =f(x^*)+\Delta x^T \nabla f(x^*) f(x+Δx)=f(x)+ΔxTf(x)
假设 ∇ f ( x ∗ ) ≠ 0 \nabla f(x^*) \ne 0 f(x)=0,则可以找到一个 Δ x \Delta x Δx(比如 Δ x = − α ∇ f ( x ∗ ) \Delta x=-\alpha \nabla f(x^*) Δx=αf(x), α \alpha α为很小的正数),使得
f ( x ∗ + Δ x ) − f ( x ∗ ) = Δ x T ∇ f ( x ∗ ) ≤ 0. f(x^*+\Delta x) -f(x^*) = \Delta x^T \nabla f(x^*) \le 0. f(x+Δx)f(x)=ΔxTf(x)0.
这和局部最小的定义矛盾。

局部最小解的二阶必要条件:如果 x ∗ x^* x为局部最小解并且函数 f f f x ∗ x^* x的邻域内二阶可微,则在 ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0, ∇ 2 f ( x ∗ ) \nabla^2 f(x^*) 2f(x)为半正定矩阵。

证明
如果函数 f ( x ) f(x) f(x)是二次连续可微,函数 f ( x ) f(x) f(x)的二阶展开可以近似为:
f ( x ∗ + Δ x ) = f ( x ∗ ) + Δ x T ∇ f ( x ∗ ) + 1 2 Δ x T ( ∇ 2 f ( x ∗ ) ) Δ x f(x^* + \Delta x) = f(x^*) + \Delta x^T \nabla f(x^*) + \frac{1}{2}\Delta x^T (\nabla^2 f(x^*) )\Delta x f(x+Δx)=f(x)+ΔxTf(x)+21ΔxT(2f(x))Δx
由一阶必要定理可知 ∇ f ( x ∗ ) = 0 \nabla f(x^*)=0 f(x)=0,则:
f ( x ∗ + Δ x ) − f ( x ∗ ) = 1 2 Δ x T ( ∇ 2 f ( x ∗ ) ) Δ x ≥ 0. f(x^* + \Delta x) - f(x^*) = \frac{1}{2} \Delta x^T(\nabla^2f(x^*))\Delta x \ge 0. f(x+Δx)f(x)=21ΔxT(2f(x))Δx0.
∇ 2 f ( x ∗ ) \nabla^2f(x^*) 2f(x)为半正定矩阵。

Saddle Point

鞍点的叫法是因为其形状像马鞍.鞍点的特征是一阶梯度为 0,但是二阶梯度的 Hessian矩阵不是半正定矩阵

在这里插入图片描述
如上图所示:鞍点处,参数关于损失函数的一阶梯度为0。但鞍点在一些维度上是最小值,在另一些维度上又是最大值。通过某些方法是可以让优化方法逃离鞍点的

判断Critical Point类型

当目标函数处于Critical Point时,可能是有Local min、Local max和Saddle point三种情况,如下图所示:
在这里插入图片描述
具体判断是哪一种情况,我们可以采用和判断是否为局部最小解一样的方法。

  1. 首先使用泰勒公式近似的表示Critical Point周围的点 θ \theta θ
    L ( θ ) ≈ L ( θ ′ ) + ( θ − θ ′ ) T g + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta) \approx L(\theta') + (\theta - \theta')^Tg + \frac{1}{2}(\theta-\theta')^TH(\theta-\theta') L(θ)L(θ)+(θθ)Tg+21(θθ)TH(θθ)
    其中 g g g是一个向量,即:
    g = ∇ L ( θ ′ ) g i = ∂ L ( θ ′ ) ∂ θ i g = \nabla L(\theta') \qquad g_i=\frac{\partial L(\theta')}{\partial \theta_i} g=L(θ)gi=θiL(θ)
    H H H是一个Hessian矩阵:
    H i j = ∂ 2 L ( θ ′ ) ∂ θ i ∂ θ j H_{ij}=\frac{\partial^2L(\theta')}{\partial \theta_i \partial \theta_j} Hij=θiθj2L(θ)
    如下图所示,其中 ( θ − θ ′ ) T g (\theta - \theta')^Tg (θθ)Tg表示绿线部分, 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) \frac{1}{2}(\theta-\theta')^TH(\theta-\theta') 21(θθ)TH(θθ)表示红线部分(同时表示critical points处的性质),两者同时来弥补 L ( θ ) L(\theta) L(θ) L ( θ ′ ) L(\theta') L(θ)之间的差异。
    在这里插入图片描述
  2. 因为目标函数处于Critical Point,所以此处的梯度 g g g为0,所以上面的公式可以表示为:
    L ( θ ) ≈ L ( θ ′ ) + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta) \approx L(\theta') + \frac{1}{2}(\theta-\theta')^TH(\theta-\theta') L(θ)L(θ)+21(θθ)TH(θθ)
    从该公式中,我们可以看出 θ ′ \theta' θ处是何种critical point是取决于 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) \frac{1}{2}(\theta-\theta')^TH(\theta-\theta') 21(θθ)TH(θθ)的符号。
  3. ( θ − θ ′ ) = v (\theta - \theta') = v (θθ)=v,有:
    1)当 H H H是正定矩阵(所有的特征值是正的),有 v T H v > 0 v^THv>0 vTHv>0,也就是 L ( θ ) > L ( θ ′ ) L(\theta)>L(\theta') L(θ)>L(θ),即 θ ′ \theta' θ处是Local minima。
    2)当 H H H是负定矩阵(所有的特征值是负的),有 v T H v < 0 v^THv<0 vTHv<0,也就是 L ( θ ) < L ( θ ′ ) L(\theta)<L(\theta') L(θ)<L(θ),即 θ ′ \theta' θ处是Local maxima。
    3)当 H H H是半正定矩阵(特征值有正、有负),有时 v T H v > 0 v^THv>0 vTHv>0,有时 v T H v < 0 v^THv < 0 vTHv<0,也就是即 θ \theta θ处是Saddle Point。

以一个简单的例子来看
Function: y = w 1 w 2 x y=w_1w_2x y=w1w2x,如下图所示:
在这里插入图片描述
这里令 x = 1 y ^ = 1 x=1 \quad \hat{y}=1 x=1y^=1
在这里插入图片描述
根据 g = 0 g=0 g=0可以求得 w 1 = 0 和 w 2 = 0 w_1=0 和 w_2=0 w1=0w2=0,由此得到hessian,并解出特征值 λ 1 = 2 \lambda_1=2 λ1=2 λ 2 = − 2 \lambda_2=-2 λ2=2,所以 x x x位于Saddle Point处。


参考资料:

  1. 《神经网络与深度学习》 邱锡鹏
  2. 有关正定矩阵知识:https://blog.csdn.net/asd136912/article/details/79146151
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值