Math-04.优化-03.梯度下降与SGD

本页讲解梯度下降(gradient descent,GD)及其随机变体 SGD——神经网络训练的基本更新规则。

段末注释SGD(stochastic gradient descent,随机梯度下降)用 mini-batch 上损失梯度的无偏估计代替全数据梯度,计算可行且自带正则化噪声。

系列入口00.系列规划 | 前置:01 总论


1. 批量梯度下降(D2–D3)

图 1 沿负梯度下山

$$
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta , \nabla L(\boldsymbol{\theta}_t)
$$

  • $\eta > 0$:学习率(learning rate)
  • $\nabla L \in \mathbb{R}^d$:与参数同维向量(Math-03

全批量 GD:$L(\boldsymbol{\theta}) = \frac{1}{N}\sum_{i=1}^N \ell_i(\boldsymbol{\theta})$,每步用全部 $N$ 个样本算梯度。

优点 缺点
梯度准确、稳定 $N$ 大时每步贵
确定性轨迹 易陷 sharp 极小
无法在线学习

2. SGD 与 mini-batch(D3)

图 2 GD vs SGD 轨迹

随机梯度:单样本 $i_t$ 每步:

$$
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}t - \eta , \nabla \ell{i_t}(\boldsymbol{\theta}_t)
$$

Mini-batch SGD(实践标准):batch $B_t$,$|B_t|=B$:

$$
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}t - \eta , \frac{1}{B}\sum{i \in B_t} \nabla \ell_i(\boldsymbol{\theta}_t)
$$

batch size 行为
$B=1$ 噪声最大、泛化有时更好
$B$ 中等(32–256) 平衡速度与稳定性
$B=N$ 退化为全批量 GD

无偏性:$\mathbb{E}[\nabla \ell_i] = \nabla L$,但单步方差大 → 需调 $\eta$ 或用 Adam(04)。


3. 收敛直觉(D5)

凸、Lipschitz 梯度($|\nabla L(\mathbf{u})-\nabla L(\mathbf{v})| \le L|\mathbf{u}-\mathbf{v}|$)下,适当 $\eta$ 时 GD 收敛。

非凸 DL:

  • SGD 噪声帮助逃离鞍点/浅极小
  • 学习率衰减 后期精细收敛(05 调度
  • 无统一收敛保证,靠经验与验证曲线

4. ML 场景(D7)

图 3 SGD 在训练中的位置

场景 说明
PyTorch optim.SGD 最简 baseline
大 batch 预训练 需 linear lr scaling 或 warmup
酶学/ tabular 小数据 小 $B$ + 强正则
在线学习 流式样本,天然 SGD
与 Adam 对比 同 lr 下 Adam 常更快收敛

5. 局限(D8)

图 4 局限

问题 对策
病态条件数 预处理、Adam、归一化
震荡 减小 $\eta$、Momentum
不同参数尺度 逐参数自适应 lr(Adam)
局部极小非问题 深网局部极小常可接受

6. PyTorch 示例(D12)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import torch
import torch.nn as nn

model = nn.Sequential(nn.Linear(10, 5), nn.ReLU(), nn.Linear(5, 1))
opt = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.0)

x, y = torch.randn(64, 10), torch.randn(64, 1)
opt.zero_grad()
loss = nn.functional.mse_loss(model(x), y)
loss.backward()
opt.step()

# 不同 batch:DataLoader 控制
from torch.utils.data import DataLoader, TensorDataset
loader = DataLoader(TensorDataset(x, y), batch_size=16, shuffle=True)

7. 小结

GD 是理论基准;mini-batch SGD 是工程默认。下一篇:04 Momentum 与 Adam

系列导航01 总论 | 05 学习率

-------------本文结束感谢您的阅读-------------