如何简便理解梯度向量的计算公式?

什么是梯度向量

在定义域为n维的空间中,给定一个函数F:RnR,梯度向量这个向量为n-1维的向量,代表着函数F在某一点pp应该往哪个方向走,使得函数F的增长最快。即,那个方向,函数F的定义域内,从点p出发的那个向量,为梯度。

the vector points in the initial direction that takes the greatest increase on z value when x moves with this direction.

看一个例子

函数F=f(x,y)(x,y)的关系如下:


假设我们需要计算函数F在点(3,5)的梯度F(3,5),我们可以这样算:
首先计算该点在x方向上,附近的值的变化情况,计算过程如下:

(1)F(x,5)=F(3,5)F(2,5)32+F(4,5)F(3,5)432=3(2)F(3,y)=F(3,5)F(3,4)54+F(3,6)F(3,5)652=4

上面第一个式子的值说明:在点(3,5)附近,x方向的增长率为-3,即减少的幅度为3.
上面第二个式子的值说明:在点(3,5)附近,y方向的增长率为4.
那么,从x方向来说,我只有两个移动方向,要么向左,要么向右,很明显,如果想增加函数的值,那么只能向左,那么-3的这个‘-’号,是否可以理解为方向,即与x轴的方向相反?,-3是否可以理解为梯度向量(虽然这个向量只有一个维度,但是其有方向,正负号表示方向),表示:x方向上,要想函数值增加,只能向着x轴的反方向走,如果向着x轴的反方向走,那么增长幅度为3?我认为是可以的,同样的y方向上的梯度向量为4

我们知道,上述函数F的增长由其在x方向和y方向上的增长相加决定(后面会证明),那么我先在x方向上朝着增大的方向走,然后y方向上也在朝着增大的方向,注意,走的长度不能变,不然合成的时候,方向会不同(向量(-3,4)和向量(-2.9,4)是不一样的)。

在上面的例子中,向量<3,4>的图像如下:


从图中也可以看到,这个向量指向了函数增长最快的方向,所以,如果梯度向量计算公式为:F=<Fx1,Fx2,...,Fxn>,那么其确实是指向了函数增加的最快的方向,因为其的每个元素代表了函数在该维度上准备用多少的增长率且没有超过上限,而上述公式恰好全部都是每个维度在该点的增长幅度上限。

关于“函数F的增长由其在x方向和y方向上的增长相加决定”的证明:
假设F=f(x,y),那么F从点(a,b)到点(c,d)的增长值可表示为:

(3)=F(c,d)F(a,b)(4)=F(c,b)F(a,b)+F(c,d)F(c,b)

参考文献:

https://ximera.osu.edu/mooculus/calculus3/interpretingTheGradient/digInGradient

posted @   Hisi  阅读(2390)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示