最近做的东西需要用到牛顿法和拟牛顿法,前两天自己在思考导数和梯度之间的关系的的时候,发现竟然不能清晰地表述出来。所以趁此机会再次复习一下。时间有限,这个也不是重点,所以主要对知乎上的一个相同问题中大家的解答,做一个总结,写的不够详细,希望不会误导读者,感兴趣的请移步原回答。
Ref:
如何直观形象的理解方向导数与梯度以及它们之间的关系?
导数
导数的概念和运用可以说是贯穿了我们自初中以来的所有数学知识。当自变量和因变量都是一维且定义域和值域都为实数域的情况下,自变量的导数主要用来描述自变量的某点关于因变量的瞬时变化率。
从几何的角度来解释就是自变量该点关于函数的切线的斜率。
注:有一个地方其实我当时迷了一下,当自变量只有一维的时候,该函数的梯度向量一定是和自变量的轴(也就是这里的x轴)平行的,方向和大小则由导数值决定
偏导数
而偏导数则是在因变量(函数值)为一元,自变量为多元的情况下,因变量关于各个自变量单独求导的导数。其中,各个自变量的偏导数分别表征了在某点它们关于函数值的瞬时变化率。从几何角度去解释的话,它们则分别代表了函数值在某点关于各个轴的切线的斜率。
方向导数与梯度
之前谈到的偏导数只能够帮助我们描述函数在各个轴上的变化率,若我们现在想要知道的是函数值关于某点在某个方向上的变化值怎么办。我们知道,当我们拥有两个正交的单位向量时,我们可以根据公式
来表征这两个向量构成的平面内的任一单位向量。同样的道理,当我们得到了函数关于各个自变量的偏导数的时候,我们就可以得到函数空间中任一方向导数的向量。以一个二元函数举例,
经过观察我们不难发现,我们可以将上式写为两个向量点积的形式:
D
u
f
(
x
,
y
)
=
d
o
t
(
(
f
x
(
x
,
y
)
,
f
y
(
x
,
y
)
)
,
(
c
o
s
θ
,
s
i
n
θ
)
)
D_uf(x,y) = dot((f_x(x,y),f_y(x,y)),(cos\theta,sin\theta))
Duf(x,y)=dot((fx(x,y),fy(x,y)),(cosθ,sinθ))
其中,
(
f
x
(
x
,
y
)
,
f
y
(
x
,
y
)
)
(f_x(x,y),f_y(x,y))
(fx(x,y),fy(x,y))为函数的偏导数向量。向量点积,从几何的角度又可以被定义为两个响亮的投影,根据向量投影公式我们可以将上式变换为:
D
u
f
(
x
,
y
)
=
∣
(
f
x
(
x
,
y
)
,
f
y
(
x
,
y
)
∣
∣
(
c
o
s
θ
,
s
i
n
θ
)
∣
c
o
s
α
D_uf(x,y) = |(f_x(x,y),f_y(x,y)||(cos\theta,sin\theta)|cos\alpha
Duf(x,y)=∣(fx(x,y),fy(x,y)∣∣(cosθ,sinθ)∣cosα
其中,
α
\alpha
α表示两个向量之间的夹角,根据该定义我们可以得出当
α
\alpha
α为0是该向量的模值最大。该模值即为偏导数向量的模值,该方向即为偏导数向量的方向,也就是说函数在该方向上拥有最大的瞬时变化率,这也和梯度的定义相契合。
一点个人的想法:
从上面的分析我们可以看出其实梯度就是各个偏导数向量的一个叠加。反过来讲,由于自变量之间的正交性,我们将各个偏导数向量叠加起来能够保证该向量仍然是整个函数变化最快的方向。