本页讲解梯度下降(gradient descent,GD)及其随机变体 SGD——神经网络训练的基本更新规则。
段末注释:SGD(stochastic gradient descent,随机梯度下降)用 mini-batch 上损失梯度的无偏估计代替全数据梯度,计算可行且自带正则化噪声。
1. 批量梯度下降(D2–D3)

$$
\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)

随机梯度:单样本 $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)

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

| 问题 | 对策 |
|---|---|
| 病态条件数 | 预处理、Adam、归一化 |
| 震荡 | 减小 $\eta$、Momentum |
| 不同参数尺度 | 逐参数自适应 lr(Adam) |
| 局部极小非问题 | 深网局部极小常可接受 |
6. PyTorch 示例(D12)
1 | import torch |
7. 小结
GD 是理论基准;mini-batch SGD 是工程默认。下一篇:04 Momentum 与 Adam。