机器学习数学基础 120 章

梯度、方向导数与等高线

层级:A|必学

1. 梯度把所有偏导装成一个方向

对标量函数 f:RdRf:\mathbb R^d\to\mathbb R,梯度是

f(x)=[f/x1f/xd].\nabla f(x)= \begin{bmatrix} \partial f/\partial x_1\\ \vdots\\ \partial f/\partial x_d \end{bmatrix}.

它与输入向量同形状,指向函数在该点上升最快的局部方向;负梯度指向下降最快方向。几乎所有基于一阶信息的训练算法都围绕它展开。

2. 方向导数

沿单位向量 uu 的方向导数:

Duf(x)=limh0f(x+hu)f(x)h.D_uf(x) =\lim_{h\to0}\frac{f(x+hu)-f(x)}h.

ff 可微:

Duf(x)=f(x)Tu.D_uf(x)=\nabla f(x)^Tu.

uu 不是单位向量,结果还混入移动速度;讨论纯方向时应先单位化。

3. 为什么梯度是最陡上升方向

由 Cauchy–Schwarz:

fTuf2u2=f2\nabla f^Tu \le\|\nabla f\|_2\|u\|_2 =\|\nabla f\|_2

uu 为单位向量)。等号在

u=ffu=\frac{\nabla f}{\|\nabla f\|}

时取得。因此最大方向导数等于梯度范数,方向为梯度;最小方向导数为其负值,方向为负梯度。

这里的“最陡”依赖 Euclidean 范数。换用不同的距离/几何,最陡方向也会改变,自然梯度和镜像下降就是这种推广。

4. 二维例子

f(x,y)=x2+4y2.f(x,y)=x^2+4y^2. f=(2x,8y)T.\nabla f=(2x,8y)^T.

(1,1)(1,1),梯度为 (2,8)T(2,8)^T,函数对 yy 方向更陡。沿单位方向 u=(1,0)Tu=(1,0)^T 的方向导数为 2;沿 v=(0,1)Tv=(0,1)^T 为 8。

负梯度一步为

(x,y)(x,y)η(2x,8y),(x,y)\leftarrow(x,y)-\eta(2x,8y),

两个坐标使用同一学习率,但因曲率/尺度不同,移动幅度差异很大。

5. 等高线

等高集合

{x:f(x)=c}\{x:f(x)=c\}

由相同函数值的点组成。二维是等高线,高维是等值面。

沿等高线切向量 vv 移动,函数一阶不变:

fTv=0.\nabla f^Tv=0.

所以梯度垂直于等高线。优化图中负梯度箭头横穿损失等高线,指向更低层。

6. 梯度为零意味着什么

f(x)=0\nabla f(x^*)=0

称驻点。它可能是:

  • 局部极小;
  • 局部极大;
  • 鞍点;
  • 更高阶平坦点。

例如 f(x,y)=x2y2f(x,y)=x^2-y^2 在原点梯度为零,但沿 xx 方向上升、沿 yy 方向下降,是鞍点。需结合 Hessian、凸性或其他分析判断。

7. 梯度下降的一阶依据

一阶近似:

f(x+Δx)f(x)+f(x)TΔx.f(x+\Delta x) \approx f(x)+\nabla f(x)^T\Delta x.

Δx=ηf\Delta x=-\eta\nabla f

f(xηf)f(x)ηf22.f(x-\eta\nabla f) \approx f(x)-\eta\|\nabla f\|_2^2.

η\eta 足够小时,右侧降低。若步长过大,高阶项不可忽略,实际函数可能上升。

8. 梯度与尺度

把变量重新参数化会改变梯度数值。若 zj=cjxjz_j=c_jx_j,对 zjz_j 的偏导与对 xjx_j 的偏导相差尺度因子。因此:

  • 特征标准化改善等高线形状;
  • 每个参数组可能需要不同学习率;
  • 梯度分量大不自动表示对应特征“重要”;
  • 自适应优化器尝试按历史梯度缩放坐标。

9. 梯度范数与停止条件

常用

f(xt)<ε\|\nabla f(x_t)\|<\varepsilon

作为近似驻点条件。但应结合:

  • 损失变化;
  • 参数变化;
  • 验证集表现;
  • 最大迭代数;
  • 随机梯度噪声。

在饱和激活或平坦高损失区,梯度小不表示解好。

10. 梯度裁剪

全局范数裁剪常写为

ggmin(1,cg2).g\leftarrow g\cdot \min\left(1,\frac{c}{\|g\|_2}\right).

当梯度范数超过阈值 cc 时缩放到长度 cc,方向保持。逐元素裁剪则改变方向。裁剪缓解爆炸但不能修复错误损失、极端学习率或根本数值不稳定。

易错点

  1. 梯度只对标量输出定义为同形状向量;向量输出使用 Jacobian。
  2. 最陡方向依赖所选范数/内积。
  3. 梯度为零不是全局最优证明。
  4. 梯度方向是上升,最小化要取负号。
  5. 梯度大小受单位与参数化影响。

常见问答

Q1:为什么损失等高线细长时梯度下降会之字形?

梯度垂直于等高线,陡方向分量很大,更新容易在谷底两侧来回跨越,而沿平缓方向进展慢。缩放、动量和二阶预条件可改善。

Q2:随机梯度不是完整梯度,还能叫下降吗?

单步可能上升,但若是无偏或偏差受控估计,长期平均可朝有利方向前进。学习率需随噪声调整。

Q3:梯度能直接用于离散参数吗?

不能直接做无穷小连续变化,需松弛、策略梯度、直通估计或组合搜索。

练习

  1. f(x,y)=x2+xy+2y2f(x,y)=x^2+xy+2y^2 的梯度。
  2. (1,1)(1,1) 求沿 u=(3,4)T/5u=(3,4)^T/5 的方向导数。
  3. 说明该点最陡上升方向。
  4. f(x,y)=x2y2f(x,y)=x^2-y^2 判断原点类型。
  5. 写出范数阈值 5、原梯度 (6,8)(6,8) 的裁剪结果。

答案与提示

  1. (2x+y,x+4y)T(2x+y,x+4y)^T
  2. 梯度 (3,5)(3,5),方向导数 (3,5)(3/5,4/5)=29/5(3,5)\cdot(3/5,4/5)=29/5
  3. 梯度单位方向 (3,5)/34(3,5)/\sqrt{34}
  4. 鞍点。
  5. 原范数 10,缩放一半得 (3,4)(3,4)