梯度下降法是用梯度的反方向作为下降方向,那么为什么函数在梯度的反方向上下降是最快的呢?
4个回答
先以一个二元函数为例,$f(x,y)$
我们知道梯度是函数在各坐标轴方向上的变化率,比如梯度$\nabla f(x_0,y_0)$是函数在$(x_0,y_0)$上关于$x$轴和$y$轴的变化率
$$\nabla f(x,y)=\begin{pmatrix}f_x(x,y) \\ f_y(x,y)\end{pmatrix}$$
对于一个任意单位方向$u$,假设$\alpha$是$u$和$x$轴的夹角,那么函数$f(x,y)$在$u$这个方向上的变化率为
$$f_x(x,y) \cos \alpha + f_y(x,y) \sin \alpha=\nabla f(x,y)^T\begin{pmatrix}f_x(x,y) \\ f_y(x,y)\end{pmatrix}=\nabla f(x,y)^Tu$$
也就是两个向量的点积。我们知道向量点积的结果和向量本身的大小以及两者夹角相关,假设$\nabla f(x,y)$和$u$的夹角为$\theta$,那么函数$f(x,y)$在$u$这个方向上的变化率可以写成
$$\nabla f(x,y)^Tu=\|\nabla f(x,y)\|_2 \|u\|_2 \cos \theta=\|\nabla f(x,y)\|_2\cos \theta$$
$\cos \theta$的取值范围为$[-1, 1]$。当$\cos \theta = 1$时,函数变化率最大(上升最快),此时$u$和梯度$\nabla f(x,y)$同方向;当$\cos \theta = -1$时,函数变化率最小(下降最快),此时$u$是梯度$\nabla f(x,y)$的反方向。
推广到$n$元函数,函数$f$在单位方向$u$的变化率为
$$\nabla f^T u$$
假设$\nabla f(x,y)$和$u$的夹角为$\theta$,同样函数$f$在$u$这个方向上的变化率可以写成
$$\nabla f^Tu=\|\nabla f\|_2\|u\|_2 \cos \theta=\|\nabla f\|_2\cos \theta$$
变化率由$\cos \theta$决定。$u$和梯度$\nabla f(x,y)$同方向,上升最快;$u$和梯度$\nabla f(x,y)$反方向,下降最快。
假设$v$为任意方向的单位向量,$f(x)$在$x$可导,沿$v$的方向导数是
$$\nabla_vf(x)=\lim_{h\to 0} \frac{f(x+hv)-f(x)}{h}=\nabla f(x) \cdot v=|\nabla f(x)|cos\theta$$
$\theta$是$\nabla f(x)$和$v$夹角。左边表示当$x$变化$hv$时,$f(x+hv)-f(x)$的变化量,它等于梯度$\nabla f(x)$和$v$的内积。当二者方向相反时, $\theta=\pi$,此时$f(x)$改变的绝对值最大。
也可以从泰勒级数展开来看$f(x+\delta v)=f(x)+\delta \nabla f(x) \cdot v+\cdots$ , $\delta$是很小的步长。第二项就是一阶增量,正比于方向导数。
SofaSofa数据科学社区DS面试题库 DS面经