为什么说梯度的反方向是函数下降最快的方向

    梯度在机器学习和深度学习中是一个高频词汇,弄懂梯度的概念对梯度下降,反向传播的理解有很大帮助。这里我根据个人理解,对梯度的反方向是函数下降最快的方向这一观点进行解释。限于作者水平,难免有错误之处,欢迎批评指正。

导数

    说到梯度,就不可避免的要谈导数。对于单变量函数f(x)f(x)在点x0x_0处连续,则函数f(x)f(x)在点x0x_0处的导数为:
f(x0)=limΔx>0ΔyΔx=limΔx>0f(x0+Δx)f(x0)Δx \begin{aligned} f^{'}(x_0) &=\lim_{\Delta x->0}\frac{\Delta y}{\Delta x}\\ &=\lim_{\Delta x->0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x} \end{aligned}

为什么说梯度的反方向是函数下降最快的方向
图片来源:*

偏导

    对于多个自变量的函数,就需要求偏导数。这里用两个自变量的函数为例,多个自变量的函数类似 。
    假设函数f(x,y)f(x, y)在点(x0,y0)(x_0, y_0)处连续,则函数f(x,y)f(x, y)在点(x0,y0)(x_0, y_0)处的偏导为:
fx(x0,y0)=limΔx>0f(x0+Δx,y0)f(x0,y0)Δxfy(x0,y0)=limΔy>0f(x0,y0+Δy)f(x0,y0)Δy \begin{aligned} & f_{x}(x_0, y_0) = \lim_{\Delta x->0} \frac {f(x_0+\Delta x, y_0)-f(x_0, y_0)} {\Delta x} \\ & f_{y}(x_0, y_0) = \lim_{\Delta y->0} \frac {f(x_0, y_0+\Delta y) - f(x_0, y_0)} {\Delta y} \end{aligned}
函数f(x,y)f(x, y)在点(x0,y0)(x_0, y_0)处的偏导可以记作:f(x0,y0)=fx(x0,y0)+fy(x0,y0)\nabla f(x_0, y_0) = f_x(x_0, y_0) + f_y(x_0, y_0)

梯度

    由于偏导不能直接表示方向,所以这里选用单位方向向量u=cosθi+sinθju=\cos\theta i+\sin\theta j,其中θ\theta为单位向量与xx轴的夹角,此时带有方向的偏导可以表示为:
D(x0,y0)=fx(x0,y0)cosθ+fy(x0,y0)sinθ D(x_0, y_0)= f_x(x_0, y_0)\cos\theta + f_y(x_0, y_0)\sin\theta 此时,就可以表示任意方向的偏导了。
    这里对该表达式DD做一下变换:A=(fx(x0,y0),fy(x0,y0))A=(f_x(x_0, y_0), f_y(x_0, y_0))I=(cosθ,sinθ)I=(\cos\theta, \sin\theta),则表达式DD的模为:D=AIcosα|D|=|A|\cdot|I|\cos\alpha,其中α\alpha为向量AA与向量II的夹角。
    这里我们可以很明显的看到,当AAII的方向相同时表达式DD的模最大,同理,当方向相反时,梯度最小,也就是梯度的反方向是函数下降最快的方向。