新手上路,小心晕车
前言
导数、方向导数、梯度这些概念是理解神经网络算法的基础,这里做一个小结。
1.导数
导数(Derivative)是微积分中的重要基础概念,当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx,其公式如下。
在多元函数里有偏导数的概念,偏导数反映的是函数沿坐标轴正方向的变化率,是方向导数的特殊形式(个人理解),设有二元函数 z=f(x,y) ,点(x0,y0)是其定义域D 内一点。把 y 固定在 y0而让 x 在 x0有增量△x ,相应地函数 z=f(x,y)有增量(称为对 x 的偏增量)△z=f(x0+△x,y0)-f(x0,y0)。如果△z 与△x 之比当△x→0 时的极限存在,那么此极限值称为函数z=f(x,y)在(x0,y0)处对x的偏导数,记作f'x(x0,y0),函数 z=f(x,y)在(x0,y0)处对 x 的偏导数,实际上就是把 y 固定在 y0看成常数后,一元函数 z=f(x,y0)在 x0处的导数。同样,把 x 固定在 x0,让 y 有增量 △y ,如果极限存在那么此极限称为函数 z=(x,y) 在 (x0,y0)处对 y 的偏导数。记作f'y(x0,y0)。
2.方向导数
在函数定义域的内点,对某一方向求导得到的导数。一般为二元函数和三元函数的方向导数,方向导数可分为沿直线方向和沿曲线方向的方向导数。
设函数z=f(x,y) 在点P(x,y)的某一领域U(P)内有定义,自点P引射线,自x轴的正向到射线
的转角为
,
为
上的另一点,若
存在,则称此极限值为
在点P沿方向
的方向导数,记作
,其计算公式为
,三元函数u=f(x,y,z)在点P(x,y,z)沿着方向
(方向角
)的方向导数的定义为
。
3.梯度
梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
设二元函数 在平面区域D上具有一阶连续偏导数,则对于每一个点P(x,y)都可定出一个向量
,该函数就称为函数
在点P(x,y)的梯度,记作gradf(x,y)或
设 是方向l上的单位向量,则
由于当方向l与梯度方向一致时,有
所以当l与梯度方向一致时,方向导数 有最大值,且最大值为梯度的模,即
因此说,函数在一点沿梯度方向的变化率最大,最大值为该梯度的模。
4.曲率
曲率的定义如下图所示,数学上表明曲线在某一点的弯曲程度的数值,曲率越大,表明曲线的弯曲程度越大。
曲率的计算公式如下图所示,由最后得到的数学计算公式可以看出,曲率和曲线的一阶导数、二阶导数有关,在一阶导数属于[-1,1]区间上,曲率可以近似看做二阶导数的绝对值。
5.总结
所谓导数就是函数在某一点处的变化方向的数值度量,某一点处不同方向导数(广义上讲偏导数可以用方向导数描述,个人理解),描述的是函数在这一点处各个方向的变化率,方向导数越大,变化率越大,函数在这个方向越快接近最大值,而方向导数最大的时候就是梯度方向。
理论上来说,按方向导数最小的方向,函数能到达最小值或局部最小值,但是方向导数最小方向不易获取,而方向导数最大值容易求取(梯度),因此梯度下降法采用的是取梯度的相反数来表示损失函数最小化过程中的函数下降方向。所以上式是个减号,学习率(下降步长)乘以梯度,表示参数w和b的更新量,可以看出来一个梯度是没有意义的,它需要乘以学习率才能表示更新量。