机器学习数学基础 120 章

梯度下降、步长与收敛直觉

层级:A|必学

1. 基本算法

对可微目标 f(θ)f(\theta)

θt+1=θtηtf(θt).\theta_{t+1} =\theta_t-\eta_t\nabla f(\theta_t).

ηt>0\eta_t>0 为学习率/步长。负梯度是 Euclidean 几何下局部最陡下降方向,步长决定走多远。

2. 一阶下降依据

f(θ+Δ)f(θ)+gTΔ.f(\theta+\Delta) \approx f(\theta)+g^T\Delta.

Δ=ηg\Delta=-\eta g

f(θηg)f(θ)ηg2.f(\theta-\eta g) \approx f(\theta)-\eta\|g\|^2.

所以足够小步长下降。若步长太大,忽略的二阶及高阶项占主导,可能震荡或发散。

3. 二次函数上的精确观察

f(x)=12ax2,a>0.f(x)=\frac12ax^2, \qquad a>0.

更新:

xt+1=(1ηa)xt.x_{t+1}=(1-\eta a)x_t.

收敛要求

1ηa<1    0<η<2a.|1-\eta a|<1 \iff0<\eta<\frac2a.
  • 0<η<1/a0<\eta<1/a:同侧单调接近;
  • 1/a<η<2/a1/a<\eta<2/a:跨越零点震荡但收敛;
  • η=2/a\eta=2/a:等幅震荡;
  • η>2/a\eta>2/a:发散。

曲率 aa 越大,允许步长越小。

4. 多维二次函数与条件数

f(x)=12xTAx,A0.f(x)=\frac12x^TAx, \qquad A\succ0.

在特征向量方向上,各分量按

1ηλi1-\eta\lambda_i

独立变化。稳定常要求 0<η<2/λmax0<\eta<2/\lambda_{\max}。若

κ=λmaxλmin\kappa=\frac{\lambda_{\max}}{\lambda_{\min}}

很大,陡方向限制步长,平坦方向又进展缓慢,产生之字形与慢收敛。

标准化、预条件、动量和 Newton 类方法试图缓解这种各向异性。

5. 固定学习率与衰减

  • 固定学习率:简单,凸光滑问题可收敛到最优或邻域;
  • 分段下降:训练到里程碑时乘常数;
  • 指数衰减:ηt=η0γt\eta_t=\eta_0\gamma^t
  • 余弦退火:平滑降至小值;
  • 反比/平方根衰减:随机优化理论常见;
  • warmup:初期从小学习率升高,避免不稳定。

计划没有普适最优,需结合批量、归一化、优化器和训练预算。

6. 线搜索

沿下降方向 dtd_t 选择步长:

ηtargminη>0f(θt+ηdt).\eta_t\approx\arg\min_{\eta>0} f(\theta_t+\eta d_t).

精确线搜索通常太贵,常用回溯线搜索:从初始步长开始按因子缩小,直到满足 Armijo 充分下降:

f(θ+ηd)f(θ)+cηgTd,f(\theta+\eta d) \le f(\theta)+c\eta g^Td,

0<c<10<c<1。深度学习小批量噪声使线搜索较难,但在确定性凸优化很常用。

7. 收敛率的基本语言

对凸光滑函数,梯度下降常有目标误差

f(xt)f=O(1/t).f(x_t)-f^*=O(1/t).

若还强凸,可线性/几何收敛:

f(xt)fCρt,0<ρ<1.f(x_t)-f^*\le C\rho^t, \qquad0<\rho<1.

“线性收敛”不是误差按直线下降,而是每步乘固定小于 1 的比例。非凸光滑问题常保证平均梯度范数或找到近似驻点,而非全局最优。

8. 初始化

凸问题的最终全局解通常与初始化无关(若算法收敛且解唯一),但速度受影响。非凸问题初始化可决定落入哪个吸引域。神经网络若所有同层权重初始化相同,会保持对称、学到相同特征,因此需随机破坏对称。

9. 特征缩放

若某特征尺度大,损失等高线可能细长,梯度在不同方向尺度差异大。标准化可让 Hessian 条件数更好,使单一学习率更适合各方向。对距离与正则化,缩放还改变模型定义,需在 pipeline 中固定。

10. 诊断训练曲线

  • 损失爆炸/NaN:学习率过大、数值溢出、梯度爆炸或数据异常;
  • 大幅周期震荡:步长过大或批量噪声;
  • 损失很慢但稳定:步长过小、条件差、梯度饱和;
  • 训练降、验证升:过拟合,不是优化失败;
  • 两者都不降:表达不足、实现/数据错误或优化配置差。

优先检查简单基线、梯度、数据范围和稳定损失,再调复杂计划。

11. 停止与最优性

有限精度和预算下只得到近似解。报告:最终训练/验证指标、梯度或参数变化、迭代/时间预算和随机种子。单一“optimizer converged”日志不足以证明业务效果。

易错点

  1. 负梯度是局部方向,步长过大仍可能上升。
  2. 学习率越小不一定越好,可能在预算内几乎不动。
  3. 损失收敛不保证参数收敛或泛化良好。
  4. “线性收敛”是几何衰减术语。
  5. 特征缩放会影响优化与正则化含义。

常见问答

Q1:梯度下降与最速下降完全相同吗?

在 Euclidean 范数下是负梯度方向。一般范数下最速下降方向不同,步长选择也可不同。

Q2:为什么训练后期常降低学习率?

靠近谷底时需要更细步长;随机梯度噪声在固定步长下形成波动邻域,降低步长可减小波动。

Q3:学习率能按 batch size 线性放大吗?

有经验规则但非无条件定理。大 batch 降低梯度均值方差,模型、优化器、warmup 和归一化都会影响可用尺度。

练习

  1. f(x)=x2/2f(x)=x^2/2 写出固定学习率更新。
  2. 哪些 η\eta 使其收敛?
  3. AA 最大特征值为 20,二次目标稳定步长上限大约是什么?
  4. 为什么条件数大导致之字形?
  5. 训练损失降、验证损失升应优先判断什么?

答案与提示

  1. xt+1=(1η)xtx_{t+1}=(1-\eta)x_t
  2. 0<η<20<\eta<2
  3. 2/20=0.12/20=0.1(严格小于)。
  4. 陡方向限制小步长并引发横向震荡,平缓方向推进慢。
  5. 过拟合或训练/验证分布与泄漏问题,而非单纯继续优化。