一、梯度的基本概念
在多元函数的分析中,梯度是一个核心概念,它为我们提供了一种描述函数在不同方向上变化情况的有力工具。
对于二元函数 z = f ( x , y ) z = f(x, y) z=f(x,y),假设它在平面区域内具有连续的一阶偏导数,这是一个重要的前提条件,因为只有在这个条件下,我们才能使用梯度的概念来准确地描述函数的变化特性。
那么,对于平面区域内的任意一点 P ( x , y ) P(x, y) P(x,y),梯度 g r a d f ( x , y ) grad f(x, y) gradf(x,y) 被定义为向量 ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ \frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} ∂x∂fi+∂y∂fj。这里的 i ⃗ \vec{i} i 是 x x x 轴正方向的单位向量, j ⃗ \vec{j} j 是 y y y 轴正方向的单位向量。
(一)偏导数的直观理解
-
对 x x x 的偏导数 ∂ f ∂ x \frac{\partial f}{\partial x} ∂x∂f:
- 想象一下,你站在一个由函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 所描述的曲面上,如果你只沿着 x x x 轴的方向移动,而保持 y y y 的值不变,函数值 z z z 随 x x x 的变化率就是 ∂ f ∂ x \frac{\partial f}{\partial x} ∂x∂f。
- 例如,对于函数 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2,当我们对 x x x 求偏导数时,根据求导的基本规则(对于 x n x^n xn 的导数是 n x n − 1 nx^{n - 1} nxn−1,对于 a x ax ax 的导数是 a a a,其中 a a a 是常数),将 y y y 看作常数,我们得到:
- ∂ f ∂ x = 2 x + 2 y \frac{\partial f}{\partial x}=2x + 2y ∂x∂f=2x+2y。这意味着当你站在曲面上,仅在 x x x 方向移动时,函数值的变化速度由 2 x + 2 y 2x + 2y 2x+2y 决定。
-
对 y y y 的偏导数 ∂ f ∂ y \frac{\partial f}{\partial y} ∂y∂f:
- 类似地,当你只沿着 y y y 轴的方向移动,而保持 x x x 的值不变时,函数值 z z z 随 y y y 的变化率就是 ∂ f ∂ y \frac{\partial f}{\partial y} ∂y∂f。
- 对于函数 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2,对 y y y 求偏导数,将 x x x 看作常数,得到:
- ∂ f ∂ y = 2 x + 2 y \frac{\partial f}{\partial y}=2x + 2y ∂y∂f=2x+2y。
二、梯度的推导过程
(一)梯度向量的构成
- 梯度将
x
x
x 和
y
y
y 方向上的变化信息结合起来,形成一个向量。对于函数
z
=
f
(
x
,
y
)
z = f(x, y)
z=f(x,y),它的梯度
g
r
a
d
f
(
x
,
y
)
grad f(x, y)
gradf(x,y) 就是由
x
x
x 方向的变化率
∂
f
∂
x
\frac{\partial f}{\partial x}
∂x∂f 和
y
y
y 方向的变化率
∂
f
∂
y
\frac{\partial f}{\partial y}
∂y∂f 共同构成的向量,即:
- g r a d f ( x , y ) = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ grad f(x, y)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} gradf(x,y)=∂x∂fi+∂y∂fj。
- 继续以 f ( x , y ) = x 2 + 2 x y + y 2 f(x, y)=x^{2}+2xy + y^{2} f(x,y)=x2+2xy+y2 为例,在任意一点 ( x , y ) (x, y) (x,y) 的梯度为:
- g r a d f ( x , y ) = ( 2 x + 2 y ) i ⃗ + ( 2 x + 2 y ) j ⃗ grad f(x, y)=(2x + 2y)\vec{i}+(2x + 2y)\vec{j} gradf(x,y)=(2x+2y)i+(2x+2y)j。
(二)梯度的计算示例
- 让我们更具体地计算函数
f
(
x
,
y
)
=
3
x
2
−
4
x
y
+
5
y
2
f(x, y)=3x^{2}-4xy + 5y^{2}
f(x,y)=3x2−4xy+5y2 在点
(
2
,
3
)
(2, 3)
(2,3) 处的梯度:
- 首先,对 x x x 求偏导数: ∂ f ∂ x = 6 x − 4 y \frac{\partial f}{\partial x}=6x - 4y ∂x∂f=6x−4y。
- 然后,对 y y y 求偏导数: ∂ f ∂ y = − 4 x + 10 y \frac{\partial f}{\partial y}=-4x + 10y ∂y∂f=−4x+10y。
- 在点
(
2
,
3
)
(2, 3)
(2,3) 处:
- ∂ f ∂ x ∣ ( 2 , 3 ) = 6 × 2 − 4 × 3 = 12 − 12 = 0 \frac{\partial f}{\partial x}\big|_{(2,3)}=6\times2 - 4\times3=12 - 12 = 0 ∂x∂f (2,3)=6×2−4×3=12−12=0。
- ∂ f ∂ y ∣ ( 2 , 3 ) = − 4 × 2 + 10 × 3 = − 8 + 30 = 22 \frac{\partial f}{\partial y}\big|_{(2,3)}=-4\times2 + 10\times3=-8 + 30 = 22 ∂y∂f (2,3)=−4×2+10×3=−8+30=22。
- 所以 g r a d f ( 2 , 3 ) = 0 i ⃗ + 22 j ⃗ grad f(2, 3)=0\vec{i}+22\vec{j} gradf(2,3)=0i+22j。
三、梯度的几何意义
(一)方向的含义
- 梯度的方向具有重要的几何意义。它是函数在该点处方向导数取得最大值的方向,简单来说,就是函数在该点增长最快的方向。
- 想象你站在一个由函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 所描绘的三维曲面上,就像站在一座山上,梯度的方向就是从你所在位置出发,最陡峭的上山路径的方向。
- 以 f ( x , y ) = x 2 + y 2 f(x, y)=x^{2}+y^{2} f(x,y)=x2+y2 为例,在点 ( 1 , 2 ) (1, 2) (1,2) 处,梯度为 g r a d f ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad f(1, 2)=2\vec{i}+4\vec{j} gradf(1,2)=2i+4j。这个向量所指的方向就是从点 ( 1 , 2 ) (1, 2) (1,2) 出发,让函数值增加最快的方向。
(二)模的含义
- 梯度的模
∣
g
r
a
d
f
(
x
,
y
)
∣
=
(
∂
f
∂
x
)
2
+
(
∂
f
∂
y
)
2
\vert grad f(x, y)\vert=\sqrt{(\frac{\partial f}{\partial x})^{2}+(\frac{\partial f}{\partial y})^{2}}
∣gradf(x,y)∣=(∂x∂f)2+(∂y∂f)2 表示函数在梯度方向上的变化速率。
- 对于上面 f ( x , y ) = x 2 + y 2 f(x, y)=x^{2}+y^{2} f(x,y)=x2+y2 在点 ( 1 , 2 ) (1, 2) (1,2) 的例子,梯度的模为:
- ∣ g r a d f ( 1 , 2 ) ∣ = 2 2 + 4 2 = 4 + 16 = 20 = 2 5 \vert grad f(1, 2)\vert=\sqrt{2^{2}+4^{2}}=\sqrt{4 + 16}=\sqrt{20}=2\sqrt{5} ∣gradf(1,2)∣=22+42=4+16=20=25。
- 这意味着,如果你沿着梯度方向走一小段距离 h h h,函数值大约会增加 2 5 h 2\sqrt{5}h 25h。这就像你沿着最陡峭的山路走一小段距离,高度的增加量大约是 2 5 h 2\sqrt{5}h 25h。
四、梯度与方向导数的关系
(一)方向导数的定义
- 方向导数是用来描述函数在某一指定方向上的变化率的。设 e ⃗ = cos φ i ⃗ + sin φ j ⃗ \vec{e}=\cos\varphi\vec{i}+\sin\varphi\vec{j} e=cosφi+sinφj 是一个单位向量,表示一个方向 L L L( φ \varphi φ 是这个方向与 x x x 轴正方向的夹角),函数 z = f ( x , y ) z = f(x, y) z=f(x,y) 在点 ( x , y ) (x, y) (x,y) 处沿方向 L L L 的方向导数为 ∂ f ∂ l \frac{\partial f}{\partial l} ∂l∂f。
(二)关系推导
- 根据向量的点积公式
a
⃗
⋅
b
⃗
=
∣
a
⃗
∣
∣
b
⃗
∣
cos
θ
\vec{a}\cdot\vec{b}=\vert\vec{a}\vert\vert\vec{b}\vert\cos\theta
a⋅b=∣a∣∣b∣cosθ(这里
a
⃗
\vec{a}
a 和
b
⃗
\vec{b}
b 是两个向量,
θ
\theta
θ 是它们之间的夹角),我们可以推导出方向导数与梯度的关系。
- 首先, ∂ f ∂ l \frac{\partial f}{\partial l} ∂l∂f 可以表示为:
- ∂ f ∂ l = ∂ f ∂ x cos φ + ∂ f ∂ y sin φ \frac{\partial f}{\partial l}=\frac{\partial f}{\partial x}\cos\varphi+\frac{\partial f}{\partial y}\sin\varphi ∂l∂f=∂x∂fcosφ+∂y∂fsinφ(这是因为我们将 x x x 和 y y y 方向上的变化率根据方向向量的分量 cos φ \cos\varphi cosφ 和 sin φ \sin\varphi sinφ 进行了组合)。
- 又因为 g r a d f ( x , y ) = ∂ f ∂ x i ⃗ + ∂ f ∂ y j ⃗ grad f(x, y)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j} gradf(x,y)=∂x∂fi+∂y∂fj 和 e ⃗ = cos φ i ⃗ + sin φ j ⃗ \vec{e}=\cos\varphi\vec{i}+\sin\varphi\vec{j} e=cosφi+sinφj,所以:
- ∂ f ∂ l = g r a d f ( x , y ) ⋅ e ⃗ \frac{\partial f}{\partial l}=grad f(x, y)\cdot\vec{e} ∂l∂f=gradf(x,y)⋅e。
- 由于 e ⃗ \vec{e} e 是单位向量, ∣ e ⃗ ∣ = 1 \vert\vec{e}\vert = 1 ∣e∣=1,根据向量点积公式可得:
- ∂ f ∂ l = ∣ g r a d f ( x , y ) ∣ cos θ \frac{\partial f}{\partial l}=\vert grad f(x, y)\vert\cos\theta ∂l∂f=∣gradf(x,y)∣cosθ,其中 θ \theta θ 是梯度向量 g r a d f ( x , y ) grad f(x, y) gradf(x,y) 和方向向量 e ⃗ \vec{e} e 的夹角。
(三)方向导数的计算示例
- 继续以
f
(
x
,
y
)
=
x
2
+
y
2
f(x, y)=x^{2}+y^{2}
f(x,y)=x2+y2 在点
(
1
,
2
)
(1, 2)
(1,2) 为例,我们已经知道
g
r
a
d
f
(
1
,
2
)
=
2
i
⃗
+
4
j
⃗
grad f(1, 2)=2\vec{i}+4\vec{j}
gradf(1,2)=2i+4j,现在求在与
x
x
x 轴正方向夹角为
π
3
\frac{\pi}{3}
3π 的方向上的方向导数(此时
cos
π
3
=
1
2
\cos\frac{\pi}{3}=\frac{1}{2}
cos3π=21,
sin
π
3
=
3
2
\sin\frac{\pi}{3}=\frac{\sqrt{3}}{2}
sin3π=23):
- ∂ f ∂ l = g r a d f ( 1 , 2 ) ⋅ e ⃗ \frac{\partial f}{\partial l}=grad f(1, 2)\cdot\vec{e} ∂l∂f=gradf(1,2)⋅e。
- 这里 g r a d f ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad f(1, 2)=2\vec{i}+4\vec{j} gradf(1,2)=2i+4j, e ⃗ = 1 2 i ⃗ + 3 2 j ⃗ \vec{e}=\frac{1}{2}\vec{i}+\frac{\sqrt{3}}{2}\vec{j} e=21i+23j。
- 所以 ∂ f ∂ l = ( 2 i ⃗ + 4 j ⃗ ) ⋅ ( 1 2 i ⃗ + 3 2 j ⃗ ) = 2 × 1 2 + 4 × 3 2 = 1 + 2 3 \frac{\partial f}{\partial l}=(2\vec{i}+4\vec{j})\cdot(\frac{1}{2}\vec{i}+\frac{\sqrt{3}}{2}\vec{j})=2\times\frac{1}{2}+4\times\frac{\sqrt{3}}{2}=1 + 2\sqrt{3} ∂l∂f=(2i+4j)⋅(21i+23j)=2×21+4×23=1+23。
五、案例分析
(一)案例:山坡高度函数
- 假设我们用函数 h ( x , y ) = x 2 + y 2 h(x, y)=x^{2}+y^{2} h(x,y)=x2+y2 来表示一个山坡的高度( x x x 和 y y y 是平面上的位置坐标, h h h 是高度)。
(二)计算梯度
-
首先求偏导数:
- ∂ h ∂ x = 2 x \frac{\partial h}{\partial x}=2x ∂x∂h=2x。
- ∂ h ∂ y = 2 y \frac{\partial h}{\partial y}=2y ∂y∂h=2y。
-
考虑在点 ( 3 , 4 ) (3, 4) (3,4) 处的梯度:
- 在点 ( 3 , 4 ) (3, 4) (3,4) 处, ∂ h ∂ x ∣ ( 3 , 4 ) = 2 × 3 = 6 \frac{\partial h}{\partial x}\big|_{(3,4)}=2\times3 = 6 ∂x∂h (3,4)=2×3=6, ∂ h ∂ y ∣ ( 3 , 4 ) = 2 × 4 = 8 \frac{\partial h}{\partial y}\big|_{(3,4)}=2\times4 = 8 ∂y∂h (3,4)=2×4=8。
- 所以 g r a d h ( 3 , 4 ) = 6 i ⃗ + 8 j ⃗ grad h(3, 4)=6\vec{i}+8\vec{j} gradh(3,4)=6i+8j。
(三)几何解释
-
梯度方向:梯度向量 6 i ⃗ + 8 j ⃗ 6\vec{i}+8\vec{j} 6i+8j 的方向就是从点 ( 3 , 4 ) (3, 4) (3,4) 出发,最陡峭的上山方向。
-
梯度模长: ∣ g r a d h ( 3 , 4 ) ∣ = 6 2 + 8 2 = 36 + 64 = 10 \vert grad h(3, 4)\vert=\sqrt{6^{2}+8^{2}}=\sqrt{36 + 64}=10 ∣gradh(3,4)∣=62+82=36+64=10。这意味着在这个最陡峭的上山方向上,高度的变化率是 10 10 10。也就是说,如果你沿着这个方向走一小段距离 d d d,高度大约会增加 10 d 10d 10d。
-
方向导数:假设你想知道在与 x x x 轴正方向夹角为 π 4 \frac{\pi}{4} 4π 的方向上的山坡陡峭程度(即方向导数), cos π 4 = sin π 4 = 2 2 \cos\frac{\pi}{4}=\sin\frac{\pi}{4}=\frac{\sqrt{2}}{2} cos4π=sin4π=22。
- 则方向导数为:
- ∂ h ∂ l = g r a d h ( 3 , 4 ) ⋅ e ⃗ \frac{\partial h}{\partial l}=grad h(3, 4)\cdot\vec{e} ∂l∂h=gradh(3,4)⋅e。
- 这里 g r a d h ( 3 , 4 ) = 6 i ⃗ + 8 j ⃗ grad h(3, 4)=6\vec{i}+8\vec{j} gradh(3,4)=6i+8j, e ⃗ = 2 2 i ⃗ + 2 2 j ⃗ \vec{e}=\frac{\sqrt{2}}{2}\vec{i}+\frac{\sqrt{2}}{2}\vec{j} e=22i+22j。
- 所以 ∂ h ∂ l = ( 6 i ⃗ + 8 j ⃗ ) ⋅ ( 2 2 i ⃗ + 2 2 j ⃗ ) = 6 × 2 2 + 8 × 2 2 = 7 2 \frac{\partial h}{\partial l}=(6\vec{i}+8\vec{j})\cdot(\frac{\sqrt{2}}{2}\vec{i}+\frac{\sqrt{2}}{2}\vec{j})=6\times\frac{\sqrt{2}}{2}+8\times\frac{\sqrt{2}}{2}=7\sqrt{2} ∂l∂h=(6i+8j)⋅(22i+22j)=6×22+8×22=72。
六、更多维度的梯度
(一)三元函数的梯度
- 对于三元函数
u
=
f
(
x
,
y
,
z
)
u = f(x, y, z)
u=f(x,y,z),梯度的概念可以自然地推广。其梯度为
g
r
a
d
f
(
x
,
y
,
z
)
=
∂
f
∂
x
i
⃗
+
∂
f
∂
y
j
⃗
+
∂
f
∂
z
k
⃗
grad f(x, y, z)=\frac{\partial f}{\partial x}\vec{i}+\frac{\partial f}{\partial y}\vec{j}+\frac{\partial f}{\partial z}\vec{k}
gradf(x,y,z)=∂x∂fi+∂y∂fj+∂z∂fk,其中
k
⃗
\vec{k}
k 是
z
z
z 轴正方向的单位向量。
- 例如,对于函数 f ( x , y , z ) = x 2 + y 2 + z 2 f(x, y, z)=x^{2}+y^{2}+z^{2} f(x,y,z)=x2+y2+z2:
- 对 x x x 求偏导数: ∂ f ∂ x = 2 x \frac{\partial f}{\partial x}=2x ∂x∂f=2x。
- 对 y y y 求偏导数: ∂ f ∂ y = 2 y \frac{\partial f}{\partial y}=2y ∂y∂f=2y。
- 对 z z z 求偏导数: ∂ f ∂ z = 2 z \frac{\partial f}{\partial z}=2z ∂z∂f=2z。
- 所以 g r a d f ( x , y , z ) = 2 x i ⃗ + 2 y j ⃗ + 2 z k ⃗ grad f(x, y, z)=2x\vec{i}+2y\vec{j}+2z\vec{k} gradf(x,y,z)=2xi+2yj+2zk。
七、梯度的实际应用
(一)物理学中的应用:电场强度
- 在静电场中,电势
U
(
x
,
y
,
z
)
U(x, y, z)
U(x,y,z) 是一个三元函数,电场强度
E
⃗
\vec{E}
E 与电势的关系是
E
⃗
=
−
g
r
a
d
U
\vec{E}=-grad U
E=−gradU。
- 例如,对于简单的电势函数 U ( x , y , z ) = x 2 + y 2 + z 2 U(x, y, z)=x^{2}+y^{2}+z^{2} U(x,y,z)=x2+y2+z2,根据上述梯度公式可得:
- g r a d U = 2 x i ⃗ + 2 y j ⃗ + 2 z k ⃗ grad U = 2x\vec{i}+2y\vec{j}+2z\vec{k} gradU=2xi+2yj+2zk。
- 那么电场强度 E ⃗ = − 2 x i ⃗ − 2 y j ⃗ − 2 z k ⃗ \vec{E}=-2x\vec{i}-2y\vec{j}-2z\vec{k} E=−2xi−2yj−2zk。这意味着电场强度的方向是电势下降最快的方向,其大小反映了电势下降的速率,这对于理解电场的分布和电荷在电场中的运动至关重要。
(二)机器学习中的应用:梯度下降算法
- 在机器学习中,我们常常需要最小化一个代价函数
J
(
θ
)
J(\theta)
J(θ)(这里
θ
\theta
θ 可以是多个参数组成的向量)。
- 梯度下降算法的核心思想是沿着代价函数的负梯度方向更新参数,因为梯度的反方向是函数下降最快的方向。
- 假设我们有代价函数 J ( θ ) = θ 1 2 + θ 2 2 J(\theta)=\theta_{1}^{2}+\theta_{2}^{2} J(θ)=θ12+θ22,它的梯度为 g r a d J ( θ ) = 2 θ 1 i ⃗ + 2 θ 2 j ⃗ grad J(\theta)=2\theta_{1}\vec{i}+2\theta_{2}\vec{j} gradJ(θ)=2θ1i+2θ2j。
- 在迭代过程中,我们会根据公式 θ n e w = θ o l d − α g r a d J ( θ ) \theta^{new}=\theta^{old}-\alpha grad J(\theta) θnew=θold−αgradJ(θ) 更新参数( α \alpha α 是学习率,是一个很小的正数,用于控制更新的步长)。
- 例如,初始参数 θ = ( 1 , 2 ) \theta=(1, 2) θ=(1,2),学习率 α = 0.1 \alpha = 0.1 α=0.1:
- 首先计算梯度 g r a d J ( 1 , 2 ) = 2 i ⃗ + 4 j ⃗ grad J(1, 2)=2\vec{i}+4\vec{j} gradJ(1,2)=2i+4j。
- 然后更新参数:
- θ n e w = ( 1 , 2 ) − 0.1 × ( 2 i ⃗ + 4 j ⃗ ) = ( 1 − 0.2 , 2 − 0.4 ) = ( 0.8 , 1.6 ) \theta^{new}=(1, 2)-0.1\times(2\vec{i}+4\vec{j})=(1 - 0.2, 2 - 0.4)=(0.8, 1.6) θnew=(1,2)−0.1×(2i+4j)=(1−0.2,2−0.4)=(0.8,1.6)。
- 通过多次迭代,我们可以逐步找到使代价函数最小的参数值,从而优化模型。