一阶方向导数与梯度和方向向量的关系及其应用

   一、基本概念

   1、方向导数(Directional derivative)

   方向导数是指在给定点沿着某个方向的导数,表示函数在该方向上的变化率。 具体而言,对于一个向量场 f ( x , y , z ) f(x,y,z) f(x,y,z)和一个单位向量 u = ( u 1 , u 2 , u 3 ) \mathbf{u}=(u_1,u_2,u_3) u=(u1,u2,u3),方向导数 D u f ( x , y , z ) D_{\mathbf{u}}f(x,y,z) Duf(x,y,z)表示 f ( x , y , z ) f(x,y,z) f(x,y,z)在点 ( x , y , z ) (x,y,z) (x,y,z)沿着方向 u \mathbf{u} u的变化率,即 f ( x , y , z ) f(x,y,z) f(x,y,z)在该方向上的导数。方向导数的公式为:

   D u f ( x , y , z ) = lim ⁡ h → 0 f ( x + h u 1 , y + h u 2 , z + h u 3 ) − f ( x , y , z ) h D_{\mathbf{u}}f(x,y,z) = \lim_{h\to0}\frac{f(x+hu_1,y+hu_2,z+hu_3)-f(x,y,z)}{h} Duf(x,y,z)=h0limhf(x+hu1,y+hu2,z+hu3)f(x,y,z)


   2、梯度(Gradient)

   梯度是一个向量,表示函数在某一点处的最大增长方向,其大小表示函数在该点变化最快的速率, 即它是一个标量函数在该点上的最大方向导数。梯度的公式为:

   ∇ f = ∂ f ∂ x i + ∂ f ∂ y j + ∂ f ∂ z k \nabla f = \frac{\partial f}{\partial x}\mathbf{i} + \frac{\partial f}{\partial y}\mathbf{j} + \frac{\partial f}{\partial z}\mathbf{k} f=xfi+yfj+zfk

   其中 i \mathbf{i} i j \mathbf{j} j k \mathbf{k} k x x x y y y z z z方向上的单位向量。梯度向量的大小表示函数的增加率,方向表示函数的增加最快的方向。

   注:一阶方向导数是指函数在某个点处沿着某个方向上的变化率,而梯度则是函数在某个点处的方向导数最大的方向,也就是函数变化率最大的方向。


   3、方向余弦(Direction cosine)

   方向余弦是一个向量在给定方向上的投影与该向量的模长的比值。 v = ( v 1 , v 2 , . . . , v n ) v=(v_1,v_2,...,v_n) v=(v1,v2,...,vn) 是一个非零向量, u = ( u 1 , u 2 , . . . , u n ) u=(u_1,u_2,...,u_n) u=(u1,u2,...,un) 是一个单位向量,则向量 v v v 在方向 u u u 上的方向余弦为:

扫描二维码关注公众号,回复: 14666669 查看本文章

   cos ⁡ θ = u ⋅ v ∣ v ∣ = u 1 v 1 + u 2 v 2 + . . . + u n v n v 1 2 + v 2 2 + . . . + v n 2 \cos \theta = \frac{u\cdot v}{|v|} = \frac{u_1v_1+u_2v_2+...+u_nv_n}{\sqrt{v_1^2+v_2^2+...+v_n^2}} cosθ=vuv=v12+v22+...+vn2 u1v1+u2v2+...+unvn

   其中 θ \theta θ 是向量 v v v 和方向 u u u 之间的夹角。


   4、方向向量(Direction vector)

   方向向量是指连接两点的向量,它的大小表示两点之间的距离,方向表示由起点指向终点的方向。设 P 1 ( x 1 , y 1 ) P_1(x_1,y_1) P1(x1,y1) P 2 ( x 2 , y 2 ) P_2(x_2,y_2) P2(x2,y2) 是定义域内的两个点,则向量 P 1 P 2 → \overrightarrow{P_1P_2} P1P2 的方向为从点 P 1 P_1 P1 指向点 P 2 P_2 P2,其坐标表示为 ( x 2 − x 1 , y 2 − y 1 ) (x_2-x_1,y_2-y_1) (x2x1,y2y1)


   二、关系及应用

   一阶方向导数表示函数在该点处沿着方向d的函数值的变化率,一阶方向导数=梯度点乘方向向量,可表示成如下的形式

   ∂ f ( x ) ∂ d = 1 ∥ d ∥ ∇ f ( x ) T d ; \frac{\partial f\left(x\right)}{\partial d}=\frac{1}{\left\|d\right\|}\nabla f(x)^{T}d; df(x)=d1f(x)Td;

   梯度是一个向量,它表示函数在每个点处变化最快的方向和速率。而方向向量是一个指定的方向,两者的乘积是一个标量,它代表了函数在该方向上的变化速率。因此,梯度乘方向向量的物理意义可以理解为函数在该方向上的变化率,即方向导数。

   例如,假设我们考虑一个二元函数 f ( x , y ) f(x,y) f(x,y),它在 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) 处的梯度是 ∇ f ( x 0 , y 0 ) = ( f x ( x 0 , y 0 ) , f y ( x 0 , y 0 ) ) \nabla f(x_0,y_0) = (f_x(x_0,y_0), f_y(x_0,y_0)) f(x0,y0)=(fx(x0,y0),fy(x0,y0)),其中 f x f_x fx f y f_y fy 分别表示函数 f f f x x x y y y 方向上的偏导数。

   梯度的本质还是一个向量,它的方向代表函数在该点处变化最快的方向,它的大小代表函数在该点处的最大变化率,那么把梯度向量分解到它的各个变量的方向上就可以得到函数在各个自变量方向上的变化率,如例子中的 f x ( x 0 , y 0 ) f_x(x_0,y_0) fx(x0,y0) f y ( x 0 , y 0 ) f_y(x_0,y_0) fy(x0,y0),再将其分别投影到方向向量d的方向上,并进行叠加,即可得到函数在方向向量d的方向上的变化率,即向量d的方向导数。

   表达式如下:

  

   ∂ f ( x 0 , y 0 ) ∂ d = f x ( x 0 , y 0 ) c o s α + f y ( x 0 , y 0 ) c o s β \frac{\partial f\left(x_0,y_0\right)}{\partial d}=f_{x}(x_{0},y_{0})cosα+f_y(x_0,y_0)cosβ df(x0,y0)=fx(x0,y0)cosα+fy(x0,y0)cosβ

   方向余弦 ( c o s α , c o s β ) = ( d x ∣ ∣ d ∣ ∣ , d y ∣ ∣ d ∣ ∣ ) (cosα,cosβ)=(\frac{d_x}{||d||},\frac{d_y}{||d||}) (cosα,cosβ)=(∣∣d∣∣dx,∣∣d∣∣dy),代入上式,并整理成向量形式,即可得到下式:

   ∂ f ( x ) ∂ d = 1 ∥ d ∥ ∇ f ( x ) T d ; \frac{\partial f\left(x\right)}{\partial d}=\frac{1}{\left\|d\right\|}\nabla f(x)^{T}d; df(x)=d1f(x)Td;

   从某种角度来看,梯度与方向导数可以看成一种向量的旋转变换,其本质是向量的分解与合成,即梯度向量沿着自变量方向分解,然后分别投影到方向向量的方向后进行叠加合成。

   因此,就很容易理解,梯度表示函数在某点处最大的变化率,而梯度与单位方向向量点积后,便是函数在该方向向量方向上的变化率了,若不是单位方向向量,则为函数在该方向向量方向上的变化量 ∇ f ( x ) T d \nabla f(x)^{T}d f(x)Td

   假设我们想要计算函数在向量 v ⃗ = ( a , b ) \vec{v}=(a,b) v =(a,b) 所指向的方向上的变化率,那么我们可以将梯度向量 ∇ f ( x 0 , y 0 ) \nabla f(x_0,y_0) f(x0,y0) v ⃗ \vec{v} v 进行点积操作,即:

   ∇ f ( x 0 , y 0 ) ⋅ v ⃗ = f x ( x 0 , y 0 ) a + f y ( x 0 , y 0 ) b \nabla f(x_0,y_0) \cdot \vec{v} = f_x(x_0,y_0)a + f_y(x_0,y_0)b f(x0,y0)v =fx(x0,y0)a+fy(x0,y0)b

   这个点积的结果就代表了函数在向量 v ⃗ \vec{v} v 所指向的方向上的变化率。如果点积结果为正数,表示函数在该方向上增加;如果点积结果为负数,表示函数在该方向上减少;如果点积结果为零,表示函数在该方向上不变。

   应用:在解决极小化问题中,函数在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处的下降方向d需满足 ∇ f ( x 0 , y 0 ) ⋅ d ⃗ < 0 \nabla f(x_0,y_0) \cdot \vec{d} < 0 f(x0,y0)d 0

   梯度乘方向向量等于零蕴含了什么意义?

   梯度乘方向向量等于零通常表示在某个点处函数的斜率(或者梯度)在该方向上为零,也就是说函数在该方向上不再增加或减少。 这个点可能是函数的最小值、最大值或者是一个驻点。

   这个结论是基于微积分中的一个定理:如果一个函数在某个点处的梯度与一个方向向量相乘得到的结果等于零,那么这个方向就是该点处函数的切线或法线方向。

   在机器学习中,梯度通常用来表示损失函数相对于模型参数的变化率,因此在梯度下降算法中,我们会在每个步骤中计算函数在当前参数值处的梯度,并将其乘以一个学习率,从而更新参数的值以使损失函数最小化。如果在某个参数值处梯度乘方向向量等于零,那么在这个方向上进一步更新参数将不再改善模型的性能,此时可以认为已经找到了局部最优解。


猜你喜欢

转载自blog.csdn.net/qq_44339029/article/details/129837891