【数学和算法】梯度和方向导数

如果不愿意看文字描述的,这里推荐一个视频 方向导数和梯度的直观理解,里面有动态图解,很直观很形象。

--------------------------------------------------------------------

1.什么是梯度??

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


看了上面的定义:我就糊涂了,怎么导数还有最大值最小值之分吗?某点的导数不是一个定值?不是斜率吗?这就是我数学基础不扎实的后果。其实,我的疑问是思维局限于一元函数的导数了,需要好好补习一下多元函数的方向导数梯度的知识。

下面是摘自百度百科对梯度的定义:在这里插入图片描述


2.梯度的直观理解:

可以想象一下,大地平面为 X O Y XOY XOY所在平面( z = 0 z=0 z=0),你现在处于山坡上的某点 P ( x , y , z ) P(x,y,z) P(x,y,z),你怎样才能最快时间跑下山坡呢?
分析一下:假设你的速度v一直都是 5 m / s 5m/s 5m/s不变,这座山假设为一个圆锥型,跑下山坡就是 Z = 0 Z=0 Z=0。很明显,你站在P点有很多方向可以跑,只有山坡朝下的方向可以跑下山坡,但是你从每个方向跑下山坡的时间各不一样,怎样才能最快到达地面呢?

你的直觉和经验告诉你,沿着山顶点和你所站的位置的连线跑下去,就是最快的路线。这条连线的向下方向就是负梯度方向。由于梯度方向是函数值增长最快的方向,所以向下跑最快的方向的就是负梯度方向,向上跑让函数值增大的才是梯度方向。你所在点P的其中某一方向的一阶导数,就是该方向的方向导数【这个一阶导数并不是分别求x和y的偏导 ∂ f ∂ x , ∂ f ∂ y \frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}} xf,yf,而是 f x ∗ c o s A + f y ∗ c o s B \color{red}f_x*cosA+f_y*cosB fxcosA+fycosB,也即 ∂ f ∂ x ∗ c o s A + ∂ f ∂ y ∗ c o s B \color{red}\frac{\partial{f}}{\partial{x}}*cosA+\frac{\partial{f}}{\partial{y}}*cosB xfcosA+yfcosB,其中A和B分别是这个方向与X轴夹角和与Y轴夹角,并且 A + B = 90 ° A+B=90° A+B=90°】,方向导数的方向由A和B共同决定,方向导数的值是一个实数,不是向量,方向导数取得最大值的方向就是梯度方向

  • 上面的 A + B = 90 ° A+B=90° A+B=90°是针对二维 f ( x , y ) f(x,y) f(x,y)来说,是因为每个方向为单位向量 ( c o s A , c o s B ) (cosA , cosB) (cosA,cosB),所以 ( c o s A ) 2 + ( c o s B ) 2 = 1 \color{red}(cosA)^2 + (cosB)^2 = 1 (cosA)2+(cosB)2=1可以推出 A + B = 90 ° A+B=90° A+B=90°
  • 对于三维 f ( x , y , z ) f(x,y,z) f(x,y,z)的话,每个方向为单位向量 ( c o s A , c o s B , c o s C ) (cosA , cosB, cosC) (cosA,cosBcosC),就有 ( c o s A ) 2 + ( c o s B ) 2 + ( c o s C ) 2 = 1 \color{red}(cosA)^2 + (cosB)^2 + (cosC)^2 = 1 (cosA)2+(cosB)2+(cosC)2=1,这A、B、C的角度就不是 90 ° 90° 90°了。

不要简单得把梯度方向理解为某点的斜率或一阶导数(上面360°的每个方向都有一阶导数),因为斜率是一元一次表达式 f ( x ) = 5 x + 7 f(x)=5x+7 f(x)=5x+7在某点的斜率,或一阶导数是在一元表达式如 f ( x ) = 2 x 4 + 5 x + 7 f(x)=2x^4+5x+7 f(x)=2x4+5x+7某点的一阶导数。而梯度不限于一元,它是多个维度的变化最快的方向。

梯度是一个矢量,有大小和方向。

--------------------------------------------------------------------
下面的公式图片源自B站视频 方向导数和梯度的直观理解

3.方向导数定义

在这里插入图片描述

4.偏导数就是方向导数的一个特例:

f ( x , y ) \color{red}f(x,y) f(x,y)在x方向的偏导数 f x ( x , y ) \color{red}f_x(x,y) fx(x,y),就是当y值不变,自变量沿着x方向变化的时候, f ( x , y ) f(x,y) f(x,y)的变化率。
如果x,y都变化, f ( x , y ) f(x,y) f(x,y)的变化率的值就是方向导数
在这里插入图片描述

--------------------------------------------------------------------

5.方向导数证明:

为证明方便,以二维为例:
在这里插入图片描述在这里插入图片描述
同理,三维的方向导数为:
在这里插入图片描述

--------------------------------------------------------------------

6.梯度的定义

在这里插入图片描述

根据方向导数推导梯度:

在这里插入图片描述
当上面的 θ = 0 \color{red}\theta=0 θ=0 时,方向导数最大,等于梯度的模。

偏导数就是方向导数的一个特例,方向导数的有个特殊的方向,在这个特殊的方向下,方向导数会最大,此时方向导数就是后面要讲到的梯度,就是各个维度的偏导数组成。
--------------------------------------------------------------------

7.举例:

下面是求方向导数,不是求梯度,别搞混了。如果是求梯度,题目就不会指定 ( 2 , − 1 , − 2 ) (2,-1,-2) (2,1,2)这个方向了,因为某点的梯度方向是唯一的,不能由你指定方向。
在这里插入图片描述
上面的三维函数 f ( x , y , z ) f(x,y,z) f(x,y,z)的方向导数为梯度向量 ( u x , u y , u z ) \color{red}(u_x, u_y, u_z) (ux,uy,uz) 与方向向量 ( c o s A , c o s B , c o s C ) (cosA , cosB, cosC) (cosA,cosBcosC) 做内积。其中梯度向量 ( u x , u y , u z ) (u_x, u_y, u_z) (ux,uy,uz) 的每个元素是各个方向的偏导数。方向向量 ( c o s A , c o s B , c o s C ) (cosA , cosB, cosC) (cosA,cosBcosC) 满足 ( c o s A ) 2 + ( c o s B ) 2 + ( c o s C ) 2 = 1 \color{red}(cosA)^2 + (cosB)^2 + (cosC)^2 = 1 (cosA)2+(cosB)2+(cosC)2=1

梯度就是方向导数的模取得最大值时的向量。

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值