跳转至

P2-4.5 梯度补充学习:从高中微分到多变量微分

Section ID: P2-4.5 Version: v2026.09.15

单变量函数的微分沿一条输入轴求变化率。多变量函数的变化率则取决于同时改变两个输入的比例。即使移动距离相同,函数值也可能增加、减少,两个输入的影响还可能相互抵消。

沿坐标轴与对角方向的变化率

下面的函数根据两个输入计算一个数值。

\[ F(x,y)=3x+4y,\qquad \nabla F=[3,4] \]

固定 y 改变 x,变化率为3;固定 x 改变 y,变化率为4。这两个偏导数分别以坐标轴正方向为基准。同时改变两个输入时,要根据移动方向组合这些分量。

当前位置 [1,1] 的函数值为7。把方向向量 u=[u₁,u₂] 的长度归一化为1,移动距离 h 时,输入变化就是 [hu₁,hu₂]。使用单位向量,是为了避免在比较方向时连移动距离也改变。

对于可微函数,沿方向 u 的瞬时变化率等于梯度与 u 的点积,称为方向导数。

\[ D_{\mathbf u}F=\nabla F\cdot\mathbf u=3u_1+4u_2 \]
单位方向 u 移动距离0.1后的位置 新函数值 变化量 方向导数
[1,0] [1.1,1] 7.3 +0.3 3
[0,1] [1,1.1] 7.4 +0.4 4
[0.6,0.8] [1.06,1.08] 7.5 +0.5 5
[-0.6,-0.8] [0.94,0.92] 6.5 −0.5 −5
[0.8,-0.6] [1.08,0.94] 7 0 0

这个函数是线性的,因此即使位移有限,变化量 = 方向导数 × 距离 也精确成立。对于一般的曲线函数,这只是小位移下的近似。

两个输入的变化相互抵消

方向 [0.8,-0.6] 的长度为 √(0.8²+(-0.6)²)=1。沿此方向移动,x 增加带来的 3×0.8=2.4,与 y 减少带来的 4×(-0.6)=−2.4 相互抵消。两个偏导数都不为0,但这个方向的变化率为0。

F=3x+4y的等高线,以及当前位置增加、减少和不变的方向。

等高线连接函数值相同的点。本例中,满足 3x+4y=7 的直线经过当前点。绿色的零变化率方向沿着这条线,而梯度方向垂直穿过等高线,指向更大的函数值。

梯度 [3,4] 的长度为5,因此同方向的单位向量为 [0.6,0.8]。比较所有单位方向时,这个方向的瞬时增加率5最大。这里按 √(Δx²+Δy²) 度量坐标距离。

一个点的向量与向量场

F=3x+4y 的梯度处处为 [3,4]。但换一个函数,梯度可能随位置变化。下面的函数可以直接计算这种变化。

\[ L(x,y)=x^2+2y^2,\qquad \nabla L(x,y)=[2x,4y] \]
位置 函数值 L 梯度
[1,0] 1 [2,0]
[0,1] 2 [0,4]
[1,1] 3 [2,4]
[-1,1] 3 [-2,4]
[0,0] 0 [0,0]

为空间中每个位置赋予一个数值的函数称为标量场。在标量场 L 的各位置放置它的梯度向量,就得到向量场。一个梯度描述一个位置,梯度向量场则同时展示多个位置的信息。

L=x²+2y²的等高线与各位置的梯度向量,所有箭头按相同比例缩短。

箭头指向各点函数值增加的方向。所有箭头按同一比例缩短,长度仍与梯度大小成比例,因此不同于比较方向时使用的单位向量。原点的梯度为0,没有方向箭头。这个函数在原点取得最小值,但其他函数中梯度为0并不总意味着最小值。

零变化率与保持数值不变的区别

上述函数在 [1,1] 处的梯度为 [2,4]。方向 [2/√5,-1/√5] 的长度为1,与梯度的点积为0。这个方向的瞬时变化率为0,但沿该方向直行并不能使函数值精确保持不变。

\[ L\left(1+\frac{2h}{\sqrt5},1-\frac{h}{\sqrt5}\right) =3+\frac65h^2 \]

移动距离 h=0.1,函数值从3增加到3.012。因为在瞬时变化率中消失的平方项,在有限位移中仍然存在。前面的线性函数等高线是直线,所以沿抵消方向一直直行也能保持数值不变;这个函数的等高线是曲线,要保持数值相同,就必须沿线不断改变方向。

参数位移与损失变化

学习更新式中的 −η∇L 是参数空间中的位移。若把它与损失图上的斜向箭头当成同一件事,就容易混淆移动的坐标轴。单变量损失 Q(w)=(w−3)² 可以清楚地区分两者。

w=4 时导数为2。以学习率0.1更新,Δw=−0.1×2=−0.2,新参数为3.8。损失从1下降到0.64,所以损失变化 ΔQ=−0.36 与参数变化 Δw=−0.2 是不同的数值。

参数w沿其坐标轴从4移到3.8,损失则从1降到0.64。

下方的水平箭头表示实际参数位移,曲线上的两点表示更新前后的损失。新位置的斜率不同,因此下次移动前要重新计算。反复更新和学习率选择与前一节的计算相连接。

练习:计算方向与位移

第一,求 F=3x+4y 沿方向 [-0.8,0.6] 的变化率。第二,在 L=x²+2y² 的 [-1,1] 处,以学习率0.1更新一次,计算新位置和损失。第三,检查第二个计算是否把两个参数都减小了。

计算与解释

第一题为 3×(-0.8)+4×0.6=0。第二题梯度为 [-2,4],新位置是 [-1,1]−0.1×[-2,4]=[-0.8,0.6]。损失从3降到 0.8²+2×0.6²=1.36。x增大、y减小,因此下降并不意味着把每个坐标的数值都减小。

检查清单

  • 能否把坐标轴方向的偏导数与任意方向的方向导数联系起来?
  • 能否在比较方向时统一移动距离?
  • 能否用点积确认两个输入的影响相互抵消的方向?
  • 能否区分一个点的梯度与各位置组成的向量场?
  • 能否说明瞬时变化率为0为什么不保证有限位移后数值不变?
  • 能否区分参数变化量与损失变化量?

来源与参考资料