名字解释

梯度下降法又叫最速下降法,它只使用目标函数的一阶导数信息,从“梯度法”这个名字也可见一斑。并且,它的本意就是取目标函数值“最快下降”的方向作为搜索方向。于是我们就想知道这个问题的答案:沿着什么方向,目标函数 $f(x)$ 的值下降最快呢?

## 为什么负梯度方向下降最快

先说结论:沿着负梯度 $d=-g_k$,函数值下降最快

下面就来推导一下:

  • 由于目标函数 $f(x)$ 具有一阶连续偏导数,若第k次迭代值为 $x_k$,则可将目标函数 $f(x_k)$ 在点 $x_k$ 处 一阶泰勒展开(由于我们讨论的是: n维空间中的一个点移动到另一个点后,目标函数值的改变情况),因此我们展开的是改变后的函数值($f(x_k+ad)$)
    $$
    \begin{align} f(x_k+ad) = f(x_k) +g_k^Td +o(\alpha) \end{align}
    $$
    $d$:单位方向(一个向量),即 |d| = 1;
    $\alpha$: 步长(一个实数)。
    $g_k^T = \nabla f(x_k) $ : 目标函数在 $x_k$ 这一点的梯度(一个向量).

  • 显然,这个数学表达式用泰勒公式展开得到的,样子有点难看,所以对比一下自变量为一维的情况下的泰勒展开式:
    $$ \begin{align} f(x+h) = f(x) + f’(x)h +o(h) \end{align} $$
    就知道多维情况下的泰勒展开式是怎么回事了。

  • 在[1] 式中,高阶无穷小可以忽略,因此,要使[1]式取到最小值,应使$g_k^T d$取到最小——这是两个向量的点积(数量积),何种情况下其值最小呢?来看两向量$\vec a ,\vec b$的夹角θ的余弦是如何定义的:
    $$ cos \theta = \frac{a \cdot b}{ \vert a \vert \vert b \vert } $$
    假设向量 d 与 负梯度 $ -g_k$ 夹角为 $\theta$ , 我们便可以求出点积 $g_k^T \cdot d $ 的值为:
    $$ g_k^T \cdot d = - \vert g_k \vert \vert d \vert cos\theta $$
    可见,θ为0时,上式取得最小值。也就是说,direction取negative gradient时,目标函数值下降得最快,这就是称负梯度方向为“最速下降”方向的由来了。

Comments

⬆︎TOP