ML: 导数、方向导数、曲率小结

新手上路,小心晕车

前言

      导数、方向导数、梯度这些概念是理解神经网络算法的基础,这里做一个小结。

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引射线https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=dd4c8446682762d0843ea0bca1ec9ea5/91ef76c6a7efce1be9b6f3afa451f3deb48f6531.jpg,自x轴的正向到射线https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=dbea23a0ebfe9925cf0c6d5335a8314a/f636afc379310a5552dae591bc4543a9832610dc.jpg的转角为https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D14/sign=181ea4a85966d0167a199a2c962b4d48/472309f79052982253cb1ea6dcca7bcb0b46d4de.jpghttps://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D180/sign=a3aaf891bc4543a9f11bfec42e168a7b/622762d0f703918fb05f1baf5a3d269758eec4cc.jpghttps://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=4f30a26038fa828bd52399e0fd1f1a17/dbb44aed2e738bd440129454aa8b87d6277ff9a0.jpg上的另一点,若

 https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D359/sign=069827af898ba61edbeece2a783597cc/d31b0ef41bd5ad6e6a69458f8acb39dbb7fd3cc6.jpg 存在,则称此极限值为https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D47/sign=ff021e13f91fbe09185ec2136a60e550/48540923dd54564e1691c55cb8de9c82d0584fda.jpg在点P沿方向https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=0126b93bd6c451daf2f608e8b7fd727b/b3fb43166d224f4a3a57527602f790529922d18c.jpg的方向导数,记作https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D36/sign=2a275c010223dd542573a16ed109083e/42a98226cffc1e176bb6ac544190f603738de94e.jpg,其计算公式为 https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D184/sign=3c8f1c71a018972ba73a04c2d2cc7b9d/b21bb051f8198618dae3cfe141ed2e738bd4e62b.jpg,三元函数u=f(x,y,z)在点P(x,y,z)沿着方向https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=ff05a604f31986184547eb874aedbe27/902397dda144ad34159ca4e2dba20cf431ad85b7.jpg(方向角https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D43/sign=cab6478f8acb39dbc5c06655d11670f4/54fbb2fb43166d22583836f14d2309f79052d203.jpg)的方向导数的定义为https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D313/sign=09816cdc95510fb37c197196ea32c893/dbb44aed2e738bd45c509054aa8b87d6277ff966.jpg

3.梯度

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

设二元函数https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D72/sign=2b0bc4b63aadcbef05347c04adafd79f/c2fdfc039245d6882f964fd6afc27d1ed21b2428.jpg 在平面区域D上具有一阶连续偏导数,则对于每一个点P(x,y)都可定出一个向量https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D226/sign=4d4296223fa85edffe8cf9217f5509d8/d000baa1cd11728bb6637350c3fcc3cec3fd2c72.jpg,该函数就称为函数 https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D72/sign=2b0bc4b63aadcbef05347c04adafd79f/c2fdfc039245d6882f964fd6afc27d1ed21b2428.jpg 在点P(x,y)的梯度,记作gradf(x,y)或 https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D58/sign=072973434190f60300b09c4f3812a5a7/342ac65c10385343765978539813b07eca80882a.jpg

https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D110/sign=04f65ead7dc6a7efbd26ac27cdfbafe9/d0c8a786c9177f3e84ee077f7bcf3bc79e3d56ee.jpg 是方向l上的单位向量,则

https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D362/sign=2c40c19da2ec8a13101a51e6c5029157/2934349b033b5bb5b286c58c3dd3d539b600bc6b.jpg

https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D361/sign=9d33d37950b5c9ea66f305e5e438b622/37d12f2eb9389b50e66a05208e35e5dde7116e2f.jpg

由于当方向l与梯度方向一致时,有

https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D157/sign=a4bb7891f61f4134e437017b121e95c1/38dbb6fd5266d0160b817b5a9c2bd40735fa3523.jpg

所以当l与梯度方向一致时,方向导数 https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D36/sign=58ac4251bb7eca8016053fe19023c3b7/d000baa1cd11728badad6850c3fcc3cec2fd2cc4.jpg 有最大值,且最大值为梯度的模,即

https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D232/sign=9109a1b289025aafd73279c8c9edab8d/1e30e924b899a9010c12bc4416950a7b0208f599.jpg

因此说,函数在一点沿梯度方向的变化率最大,最大值为该梯度的模。

4.曲率

曲率的定义如下图所示,数学上表明曲线在某一点的弯曲程度的数值,曲率越大,表明曲线的弯曲程度越大。

曲率的计算公式如下图所示,由最后得到的数学计算公式可以看出,曲率和曲线的一阶导数、二阶导数有关,在一阶导数属于[-1,1]区间上,曲率可以近似看做二阶导数的绝对值。

5.总结

所谓导数就是函数在某一点处的变化方向的数值度量,某一点处不同方向导数(广义上讲偏导数可以用方向导数描述,个人理解),描述的是函数在这一点处各个方向的变化率,方向导数越大,变化率越大,函数在这个方向越快接近最大值,而方向导数最大的时候就是梯度方向。

梯度下降参数更新公式:https://img-blog.csdnimg.cn/img_convert/de8d2055f05aeb0909493fd0699617c4.png;wxfrom=5&wx_lazy=1

理论上来说,按方向导数最小的方向,函数能到达最小值或局部最小值,但是方向导数最小方向不易获取,而方向导数最大值容易求取(梯度),因此梯度下降法采用的是取梯度的相反数来表示损失函数最小化过程中的函数下降方向。所以上式是个减号,学习率(下降步长)乘以梯度,表示参数w和b的更新量,可以看出来一个梯度是没有意义的,它需要乘以学习率才能表示更新量。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
导数在数学中是一个非常重要的概念,其在机器学习和深度学习中也扮演着至关重要的角色。TensorFlow作为一款流行的深度学习框架,在其2.x版本中提供了丰富的导数计算函数,本文将对TensorFlow 2.x中的导数计算进行详细的解析。 首先,TensorFlow中导数计算的核心就是“tf.GradientTape”函数,该函数记录执行的操作,并自动构建一个对应的计算图。在计算图中,我们可以根据需要定义一系列输入张量或者变量,并用这些对象进行复杂的计算。之后,再通过“tape.gradient”函数来计算导数。比如,在线性回归的例子中,我们可以将设计矩阵X和标签向量y作为输入张量,然后定义参数张量w,并对其进行计算。最后,我们用“tape.gradient”函数对w进行求导,即可得到损失对其的梯度。 除了上述基本实现之外,TensorFlow 2.x中还提供了丰富的导数计算函数,比如“tf.gradients”函数、自动微分工具“tf.autodiff”、高阶导数函数“tf.hessians”、方向导数函数“tf.custom_gradient”等等。这些函数可以根据用户的需要实现对导数的计算、控制求导的方式、实现高阶导数计算等等。在实际使用中,我们可以根据具体的需求选择使用不同的导数计算函数,比如在求解梯度下降法的过程中,我们可以根据需要计算一阶或二阶导数,也可以选择自动微分工具来实现快速又可靠的导数计算。 总之,TensorFlow 2.x中的导数计算是一个非常重要的功能,在深度学习的应用中起着至关重要的作用。通过使用不同的导数计算方法,我们可以实现对复杂模型参数的优化、实现高阶导数计算、实现特殊的导数控制等等功能。因此,熟练掌握TensorFlow 2.x中的导数计算函数是每一位深度学习从业者必备的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值