三、二阶导数与海森矩阵

3.1 海森矩阵

  1. 二阶导数 三、二阶导数与海森矩阵 - 图1 刻画了曲率。假设有一个二次函数(实际任务中,很多函数不是二次的,但是在局部可以近似为二次函数):

    • 如果函数的二阶导数为零,则它是一条直线。如果梯度为 1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图2 时,函数值减少 三、二阶导数与海森矩阵 - 图3
    • 如果函数的二阶导数为负,则函数向下弯曲。如果梯度为1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图4 时,函数值减少的量大于 三、二阶导数与海森矩阵 - 图5
    • 如果函数的二阶导数为正,则函数向上弯曲。如果梯度为1,则当沿着负梯度的步长为 三、二阶导数与海森矩阵 - 图6 时,函数值减少的量少于 三、二阶导数与海森矩阵 - 图7curvature.PNG
  2. 当函数输入为多维时,定义海森矩阵:

    三、二阶导数与海森矩阵 - 图9

    即海森矩阵的第 三、二阶导数与海森矩阵 - 图10三、二阶导数与海森矩阵 - 图11 列元素为:三、二阶导数与海森矩阵 - 图12

  3. 当二阶偏导是连续时,海森矩阵是对称阵,即有: 三、二阶导数与海森矩阵 - 图13

    在深度学习中大多数海森矩阵都是对称阵。

  4. 对于特定方向 三、二阶导数与海森矩阵 - 图14 上的二阶导数为:三、二阶导数与海森矩阵 - 图15

    • 如果 三、二阶导数与海森矩阵 - 图16 是海森矩阵的特征向量,则该方向的二阶导数就是对应的特征值。
    • 如果 三、二阶导数与海森矩阵 - 图17 不是海森矩阵的特征向量,则该方向的二阶导数就是所有特征值的加权平均,权重在 (0,1)之间。且与 三、二阶导数与海森矩阵 - 图18 夹角越小的特征向量对应的特征值具有更大的权重。
    • 最大特征值确定了最大二阶导数,最小特征值确定最小二阶导数。

3.2 海森矩阵与学习率

  1. 三、二阶导数与海森矩阵 - 图19三、二阶导数与海森矩阵 - 图20 处泰勒展开:三、二阶导数与海森矩阵 - 图21 。其中: 三、二阶导数与海森矩阵 - 图22三、二阶导数与海森矩阵 - 图23 处的梯度; 三、二阶导数与海森矩阵 - 图24三、二阶导数与海森矩阵 - 图25 处的海森矩阵。

    根据梯度下降法:三、二阶导数与海森矩阵 - 图26

    应用在点 三、二阶导数与海森矩阵 - 图27,有:三、二阶导数与海森矩阵 - 图28

    • 第一项代表函数在点 三、二阶导数与海森矩阵 - 图29 处的值。
    • 第二项代表由于斜率的存在,导致函数值的变化。
    • 第三项代表由于曲率的存在,对于函数值变化的矫正。
  2. 注意:如果 三、二阶导数与海森矩阵 - 图30 较大,则很有可能导致:沿着负梯度的方向,函数值反而增加!

    • 如果 三、二阶导数与海森矩阵 - 图31 ,则无论 三、二阶导数与海森矩阵 - 图32 取多大的值, 可以保证函数值是减小的。

    • 如果 三、二阶导数与海森矩阵 - 图33, 则学习率 三、二阶导数与海森矩阵 - 图34 不能太大。若 三、二阶导数与海森矩阵 - 图35 太大则函数值增加。

      • 根据 三、二阶导数与海森矩阵 - 图36 ,则需要满足:三、二阶导数与海森矩阵 - 图37 。若 三、二阶导数与海森矩阵 - 图38 ,则会导致沿着负梯度的方向函数值在增加。

      • 考虑最速下降法,选择使得 三、二阶导数与海森矩阵 - 图39 下降最快的 三、二阶导数与海森矩阵 - 图40 ,则有:三、二阶导数与海森矩阵 - 图41 。求解 三、二阶导数与海森矩阵 - 图42 有:三、二阶导数与海森矩阵 - 图43

        根据 三、二阶导数与海森矩阵 - 图44 ,很明显有: 三、二阶导数与海森矩阵 - 图45

  3. 由于海森矩阵为实对称阵,因此它可以进行特征值分解。假设其特征值从大到小排列为:三、二阶导数与海森矩阵 - 图46

    海森矩阵的瑞利商为: 三、二阶导数与海森矩阵 - 图47 。可以证明:

    三、二阶导数与海森矩阵 - 图48

    根据 三、二阶导数与海森矩阵 - 图49 可知:海森矩阵决定了学习率的取值范围。最坏的情况下,梯度 三、二阶导数与海森矩阵 - 图50 与海森矩阵最大特征值 三、二阶导数与海森矩阵 - 图51 对应的特征向量平行,则此时最优学习率为 三、二阶导数与海森矩阵 - 图52

3.3 驻点与全局极小点

  1. 满足导数为零的点(即 三、二阶导数与海森矩阵 - 图53 )称作驻点。驻点可能为下面三种类型之一:

    • 局部极小点:在 三、二阶导数与海森矩阵 - 图54 的一个邻域内,该点的值最小。
    • 局部极大点:在 三、二阶导数与海森矩阵 - 图55 的一个邻域内,该点的值最大。
    • 鞍点:既不是局部极小,也不是局部极大。

    critical_point.PNG

  2. 全局极小点:三、二阶导数与海森矩阵 - 图57

    • 全局极小点可能有一个或者多个。

    • 在深度学习中,目标函数很可能具有非常多的局部极小点,以及许多位于平坦区域的鞍点。这使得优化非常不利。

      因此通常选取一个非常低的目标函数值,而不一定要是全局最小值。 deeplearning_optimization.PNG

  3. 二阶导数可以配合一阶导数来决定驻点的类型:

    • 局部极小点:三、二阶导数与海森矩阵 - 图59
    • 局部极大点:三、二阶导数与海森矩阵 - 图60
    • 三、二阶导数与海森矩阵 - 图61 :驻点的类型可能为任意三者之一。
  4. 对于多维的情况类似有:

    • 局部极小点:三、二阶导数与海森矩阵 - 图62,且海森矩阵为正定的(即所有的特征值都是正的)。

      当海森矩阵为正定时,任意方向的二阶偏导数都是正的。

    • 局部极大点:三、二阶导数与海森矩阵 - 图63,且海森矩阵为负定的(即所有的特征值都是负的)。

      当海森矩阵为负定时,任意方向的二阶偏导数都是负的。

    • 三、二阶导数与海森矩阵 - 图64,且海森矩阵的特征值中至少一个正值、至少一个负值时,为鞍点。

    • 当海森矩阵非上述情况时,驻点类型无法判断。

    下图为 三、二阶导数与海森矩阵 - 图65 在原点附近的等值线。其海森矩阵为一正一负。

    • 沿着 三、二阶导数与海森矩阵 - 图66 方向,曲线向上弯曲;沿着 三、二阶导数与海森矩阵 - 图67 方向,曲线向下弯曲。
    • 鞍点就是在一个横截面内的局部极小值,另一个横截面内的局部极大值。

    saddle.PNG