梯度在机器学习和深度学习中是一个高频词汇,弄懂梯度的概念对梯度下降,反向传播的理解有很大帮助。这里我根据个人理解,对梯度的反方向是函数下降最快的方向这一观点进行解释。限于作者水平,难免有错误之处,欢迎批评指正。
导数
说到梯度,就不可避免的要谈导数。对于单变量函数f(x)f(x)f(x)在点x0x_0x0处连续,则函数f(x)f(x)f(x)在点x0x_0x0处的导数为:
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′(x0)=Δx−>0limΔxΔy=Δx−>0limΔxf(x0+Δx)−f(x0)

偏导
对于多个自变量的函数,就需要求偏导数。这里用两个自变量的函数为例,多个自变量的函数类似 。
假设函数f(x,y)f(x, y)f(x,y)在点(x0,y0)(x_0, y_0)(x0,y0)处连续,则函数f(x,y)f(x, y)f(x,y)在点(x0,y0)(x_0, y_0)(x0,y0)处的偏导为:
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}
fx(x0,y0)=Δx−>0limΔxf(x0+Δx,y0)−f(x0,y0)fy(x0,y0)=Δy−>0limΔyf(x0,y0+Δy)−f(x0,y0)
函数f(x,y)f(x, y)f(x,y)在点(x0,y0)(x_0, y_0)(x0,y0)处的偏导可以记作:∇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)∇f(x0,y0)=fx(x0,y0)+fy(x0,y0)。
梯度
由于偏导不能直接表示方向,所以这里选用单位方向向量u=cosθi+sinθju=\cos\theta i+\sin\theta ju=cosθi+sinθj,其中θ\thetaθ为单位向量与xxx轴的夹角,此时带有方向的偏导可以表示为:
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
D(x0,y0)=fx(x0,y0)cosθ+fy(x0,y0)sinθ此时,就可以表示任意方向的偏导了。
这里对该表达式DDD做一下变换:A=(fx(x0,y0),fy(x0,y0))A=(f_x(x_0, y_0), f_y(x_0, y_0))A=(fx(x0,y0),fy(x0,y0)),I=(cosθ,sinθ)I=(\cos\theta, \sin\theta)I=(cosθ,sinθ),则表达式DDD的模为:∣D∣=∣A∣⋅∣I∣cosα|D|=|A|\cdot|I|\cos\alpha∣D∣=∣A∣⋅∣I∣cosα,其中α\alphaα为向量AAA与向量III的夹角。
这里我们可以很明显的看到,当AAA与III的方向相同时表达式DDD的模最大,同理,当方向相反时,梯度最小,也就是梯度的反方向是函数下降最快的方向。
本文深入浅出地解析了梯度的概念,从导数到偏导数,再到梯度的定义,详细阐述了梯度反方向为何是函数下降最快的方向。通过数学公式和直观解释,帮助读者理解梯度在机器学习和深度学习中的核心作用。

1万+

被折叠的 条评论
为什么被折叠?



