1. 对于函数: ,假设输入 二、梯度下降法 - 图1,则定义梯度:

      函数的驻点满足: 二、梯度下降法 - 图2

    2. 沿着方向 的方向导数定义为:

      二、梯度下降法 - 图3

      其中 为单位向量。

      方向导数就是 二、梯度下降法 - 图4。根据链式法则,它也等于 。

    1. 为了最小化 二、梯度下降法 - 图5,则寻找一个方向:沿着该方向,函数值减少的速度最快(换句话说,就是增加最慢)。即:

      假设 二、梯度下降法 - 图6 与梯度的夹角为 ,则目标函数等于:二、梯度下降法 - 图7

      考虑到 ,以及梯度的大小与 二、梯度下降法 - 图8 无关,于是上述问题转化为:

      于是: 二、梯度下降法 - 图9,即 沿着梯度的相反的方向。即:梯度的方向是函数值增加最快的方向,梯度的相反方向是函数值减小的最快的方向。

      因此:可以沿着负梯度的方向来降低 二、梯度下降法 - 图10 的值,这就是梯度下降法。

    2. 根据梯度下降法,为了寻找 的最小点,迭代过程为:二、梯度下降法 - 图11 。其中: 为学习率,它是一个正数,决定了迭代的步长。

      迭代结束条件为:梯度向量 二、梯度下降法 - 图12 的每个成分为零或者非常接近零。

      • 一种方法是:选择 为一个小的、正的常数。

      • 另一种方法是:给定多个 二、梯度下降法 - 图13,然后选择使得 最小的那个值作为本次迭代的学习率(即:选择一个使得目标函数下降最大的学习率)。

        这种做法叫做线性搜索 。

      • 第三种方法是:求得使 二、梯度下降法 - 图14 取极小值的 ,即求解最优化问题:

        二、梯度下降法 - 图15

        这种方法也称作最速下降法。

        • 此时迭代的路线是锯齿形的,因此收敛速度较慢。

    3. 某些情况下如果梯度向量 的形式比较简单,则可以直接求解方程:二、梯度下降法 - 图16

      此时不用任何迭代,直接获得解析解。

    4. 梯度下降算法:

      • 输入:

        • 目标函数
        • 梯度函数 二、梯度下降法 - 图17
        • 计算精度
      • 输出: 二、梯度下降法 - 图18 的极小点

      • 算法步骤:

        • 迭代,停止条件为:梯度收敛或者目标函数收敛。迭代步骤为:

          • 计算目标函数 二、梯度下降法 - 图19,计算梯度 。

          • 若梯度 二、梯度下降法 - 图20,则停止迭代, 。

          • 若梯度 二、梯度下降法 - 图21,则令 ,求 二、梯度下降法 - 图22 : 。

          • 二、梯度下降法 - 图23,计算 。

            • 二、梯度下降法 - 图24或者 时,停止迭代,此时 二、梯度下降法 - 图25
            • 否则,令 ,计算梯度 二、梯度下降法 - 图26 继续迭代。

    5. 当目标函数是凸函数时,梯度下降法的解是全局最优的。通常情况下,梯度下降法的解不保证是全局最优的。