参考博客https://blog.csdn.net/baishuo8/article/details/81408369和知乎https://www.zhihu.com/question/36301367
导数,是我们最早接触的一元函数中定义的,可以在 xy 平面直角坐标系中方便的观察。当 Δx→0时,P0处的导数就是因变量y在x0处的变化率,反映因变量随自变量变化的快慢;从几何意义来讲,函数在一点的导数值就是过这一点切线的斜率。
偏导数对应多元函数的情况,对于一个 n元函数 y=f(x1,x2,…,xn),在 ℝn 空间内的直角坐标系中,函数沿着某一条坐标轴方向的导数,就是偏导数。在某一点处,求 xi轴方向的导数,就是将其他维的数值看做常数,去截取一条曲线出来,这条曲线的导数可以用上面的导数定义求。求出来就是此点在这条轴方向上的偏导数。
很多时候,仅仅有了坐标轴方向上的偏导数是不够的,我们还想知道任意方向上的导数。函数在任意方向上的导数就是方向导数。而空间中任意方向,是一定可以用坐标轴线性组合来表示的,这就架起了偏导数和方向导数的桥梁:
令 ,
其中,α是由偏导数定义的向量A 与 我们自己找的单位方向向量 I之间的夹角。
现在我们来讨论函数在一点沿某一方向的变化率问题.
定义 设函数在点的某一邻域内有定义.自点引射线.设轴正向到射线的转角为(逆时针方向:0;顺时针方向:0),并设'(+△,+△)为上的另一点且'∈.我们考虑函数的增量(+△,+△)-与、'两点间的距离的比值.当'沿着趋于时,如果这个比的极限存在,则称这极限为函数在点沿方向的方向导数,记作,即
(1)
从定义可知,当函数在点的偏导数x、y存在时,函数在点沿着轴正向=,轴正向=的方向导数存在且其值依次为x、y,函数在点沿轴负向=,轴负向=的方向导数也存在且其值依次为-x、-y.
关于方向导数的存在及计算,我们有下面的定理.
定理 如果函数在点是可微分的,那末函数在该点沿任一方向的方向导数都存在,且有
(2)
其中为轴到方向的转角.
证 根据函数在点可微分的假定,函数的增量可以表达为
两边各除以,得到
所以
这就证明了方向导数存在且其值为
在训练神经网络时,我们都是通过定义一个代价函数(cost function),然后通过反向传播更新参数来最小化代价函数,深度神经网络可能有大量参数,因此代价函数是一个多元函数,多元函数与一元函数的一个不同点在于,过多元函数的一点,可能有无数个方向都会使函数减小。引申到数学上,我们可以把山这样的曲面看作一个二元函数z=f(x,y),二元函数是多元函数里最简单的情形,也是易于可视化直观理解的。前面提到一元函数导数的几何意义是切线的斜率,对于二元函数,曲面上的某一点(x0,y0,z0)会有一个切平面,切平面上的无数条直线都是过这一点的切线,这些切线的斜率实际上就是过这一点的无数个方向导数的值,和一元函数一样,方向导数的值实际反映了多元函数在这一点沿某个方向的变化率。
在上面的方向导数中,
当 I与 A 同向的时候,方向导数取得最大,此时我们定义一个向量 ,其方向就是 A的方向,大小就是 A的模长,我们称这个向量就是此点的梯度。沿着梯度方向,就是函数增长最快的方向,那么逆着梯度方向,自然就是函数下降最快的方向。由此,我们可以构建基于梯度的优化算法。正如下山必然有一条最陡峭、最快的路径,方向导数也有一个最小值,在最小值对应的方向上,函数下降最快,而这个方向其实就是梯度的反方向。对于神经网络,在方向导数最小的方向更新参数可以使代价函数减小最快,因此梯度下降法也叫最速下降法。
向量(fx(x0,y0),fy(x0,y0))就是函数f(x,y)在点P0(x0,y0)的梯度,由此引出梯度的概念,梯度就是一个向量,这个向量的每个元素分别是多元函数关于每个自变量的偏导数。方向导数的值最大,多元函数增加最快,也就是说梯度的方向就是函数增加最快的方向,方向导数的值最小,多元函数减小最快,也就是在梯度相反的方向上,方向导数最小。
1.梯度的定义
与方向导数有关联的一个概念是函数的梯度.
定义 设函数在平面区域内具有一阶连续偏导数,则对于每一点,都可定出一个向量
这向量称为函数=在点的梯度,记作,即
=
如果设是与方向同方向的单位向量,则由方向导数的计算公式可知
这里,(^,e)表示向量与的夹角.由此可以看出,就是梯度在射线上的投影,当方向与梯度的方向一致时,有
(^,) 1,
从而有最大值.所以沿梯度方向的方向导数达到最大值,也就是说,梯度的方向是函数在这点增长最快的方向.因此,我们可以得到如下结论:
函数在某点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值.
由梯度的定义可知,梯度的模为
当不为零时,那么轴到梯度的转角的正切为
我们知道,一般说来二元函数在几何上表示一个曲面,这曲面被平面z=c(c是常数)所截得的曲线的方程为
这条曲线在面上的投影是一条平面曲线(图8―10),它在平面直角坐标系中的方程为
对于曲线上的一切点,已给函数的函数值都是,所以我们称平面曲线为函数的等高线.
由于等高线上任一点处的法线的斜率为
为等高线上点处的法向量,因此我们可得到梯度与等高线的下述关系:函数在点的梯度的方向与过点的等高线在这点的法线的一个方向相同,且从数值较低的等高线指向数值较高的等高线(图8―10),而梯度的模等于函数在这个法线方向的方向导数.这个法线方向就是方向导数取得最大值的方向.
2、解释方向导数只有一个最小值:
具有一阶连续偏导数,意味着可微。可微意味着函数 在各个方向的切线都在同一个平面上,也就是切平面。所有的切线都在一个平面上,就好像光滑的笔直的玻璃上,某一点一定有且只有一个最陡峭的地方,因为方向导数是切线的斜率,方向导数最大也就意味着最陡峭。
3、解释最大值在哪个方向?
最大值的方向是梯度的方向。演示参照https://www.matongxue.com/madocs/222.html