证明:梯度方向是变化最快的方向
为什么梯度方向是变化最快的方向?
首先,回顾我们怎么在代码中求梯度的(梯度的数值定义):
1)对向量的梯度
以n×1实向量x为变元的实标量函数f(x)相对于x的梯度为一n×1列向量x,定义为
2)对矩阵的梯度
实标量函数 $ {\displaystyle {\boldsymbol {f}}({\boldsymbol {A}})} $相对于m×n实矩阵A的梯度为一m×n矩阵,简称梯度矩阵,定义为
然后我们回顾一下导数和方向导数:
1)导数和偏导
导数是函数在某一点的变化率,在一元函数中,就是沿着x轴在某一点的变化率;在二元函数中,就有了偏导,在x方向上的偏导,就是函数在某一点沿着x轴方向的变化率,在y方向上的偏导同理;在更多元函数中以此类推。
2)方向导数
上一点只涉及到坐标轴方向的变化率,那如果我想要知道任意方向的变化率呢?这就引出了方向导数的概念,方向导数是偏导数的概念的推广。
现在我们回到梯度:
梯度方向就是方向导数值最大的那个方向,那根据上面梯度的数值定义,“为什么梯度方向是变化最快的方向”这个问题就等价于“为什么多元函数各个轴方向的变化率(这里指向量)的合方向就是整个函数值变化率最大的方向?”
以二元函数为例:
已知:\(\vec{x},\vec{y}\)分别是二元函数\(f(x,y)\)在点\((x_0,y_0)\)处沿\(x,y\)轴的偏导数,\(\vec{l}\)是任意方向的方向导数。
求证:\(\vec{l_2}\)的方向是二元函数\(f(x,y)\)在点\((x_0,y_0)\)处变化最快的方向。
证明:
函数\(f(x,y)\)在点\((x_0,y_0)\)处沿方向\(\vec{l}\)的变化率为\(|\vec{l}|=|\vec{x}|cos\theta+|\vec{y}|sin\theta\),
\(|\vec{l}|\)最大等价于点\((|\vec{x}|, |\vec{y}|)\)与点\((cos\theta,sin\theta)\)的内积最大(内积的坐标定义),
将上面的内积化为向量形式:记\(\vec{A}=(|\vec{x}|, |\vec{y}|),\vec{B}=(cos\theta,sin\theta)\),则\(\vec{A} \cdot \vec{B}=|\vec{A}| \cdot |\vec{B}|\cdot cos\alpha\),其中\(\alpha\)是\(\vec{A},\vec{B}\)的夹角;
则\(|\vec{l}|\)最大等价于\(\vec{A} \cdot \vec{B}\)最大,在问题的设定下\(\theta\)是变量,于是等价于\(\vec{A},\vec{B}\)方向平行,而\(\vec{A}\)的方向就是\(\vec{l_2}\)的方向,故\(\vec{B}\)的方向取\(\vec{l_2}\)的方向时,取到最大变化率。
于是由梯度的数值化定义出发,可以证明梯度方向就是方向导数值最大的那个方向,这个方向就是\(\vec{A}\)的方向(注意看它的坐标)。
以上都是在二元函数的情况下进行证明的,同理可以证明多元函数的情况:
比如三元函数\(f(x,y,z)\),沿\(\vec{l}\)方向的方向导数的大小为\(|\vec{l}|=|\vec{x}|cos\theta_1+|\vec{y}|cos\theta_2+|\vec{z}|cos\theta_3 (1)\),其中\(\theta_1,\theta_2,\theta_3\)分别是x,y,z轴和任意方向向量\(\vec{l}\)的夹角;于是又可以\(|\vec{l}|=\vec{A} \cdot \vec{B}\),其中\(\vec{A}=(|\vec{x}|, |\vec{y}|,|\vec{z}|),\vec{B}=(cos\theta_1,cos\theta_2,cos\theta_3)\),接下来就是同理可证了。
因为(1)处用的是几何观点,更多元的情况从几何角度就想象不出来了,但讲道理是一样的,于是证明结束。
参考链接: