Ch06 神经网络基础
梯度下降 (Gradient Descent)
一句话理解
梯度下降是神经网络训练的”导航系统”——沿着损失函数梯度的反方向走,每一步都让模型离最优解更近一点。2026 年,AdamW 是这个导航系统的默认选择。
零基础理解
你在大雾中下山,看不清整座山的地形,但能感觉到脚下的坡度。你每次都朝最陡的下坡方向迈一小步——虽然不一定走最短路径,但只要坡度在下降,终会到达山谷。梯度下降就是让模型”感觉”损失函数的坡度,朝损失减小的方向更新参数。
核心公式
- :第 t 步的参数
- :学习率 (Learning Rate),每一步的步长
- :损失函数对参数的梯度(反向传播算出)
梯度下降变体
批量梯度下降 (BGD, Batch Gradient Descent)
用全部训练数据计算一次梯度,然后更新一次参数。
随机梯度下降 (SGD, Stochastic Gradient Descent)
每次只用一个样本计算梯度并更新。
小批量梯度下降 (Mini-batch SGD)
每次用 B 个样本(一个 batch)。2026 年深度学习默认使用此方案。
各变体对比
| 变体 | 每次更新用多少数据 | 梯度精度 | 更新频率 | 收敛稳定性 | 内存占用 | 实际使用 |
|---|---|---|---|---|---|---|
| BGD | 全部 N 个 | 精确 | 极低(N 个样本才更新一次) | 稳定 | 极高 | 几乎不用 |
| SGD | 1 个 | 噪声大 | 极高 | 震荡 | 极低 | 在线学习 |
| Mini-batch | B 个(32-512) | 适中 | 中 | 较好 | 适中 | 2026 年默认 |
从 SGD 到 AdamW 的演化
1. SGD (朴素版)
θ = θ - lr * gradient
问题:学习率固定,收敛慢,容易震荡。
2. SGD + Momentum (带动量)
v = β * v - lr * gradient # 动量积累
θ = θ + v # 用动量更新
直觉:把梯度想象成加速度,动量是速度。小球滚下山坡,惯性让它不会在峡谷中剧烈震荡。 通常取 0.9。
3. NAG (Nesterov Accelerated Gradient)
θ_lookahead = θ + β * v # 先看一步
v = β * v - lr * ∇L(θ_lookahead)
θ = θ + v
在动量方向上”提前看一步”再计算梯度,比标准动量更”聪明”。
4. AdaGrad
G = G + gradient² # 累积历史梯度平方和
θ = θ - lr * gradient / √(G + ε)
自适应学习率——频繁更新的参数学习率自动减小,不频繁的参数学习率保持较大。问题:G 单调递增,后期学习率趋近于 0。
5. RMSprop
G = β * G + (1-β) * gradient² # 指数移动平均,非单调
θ = θ - lr * gradient / √(G + ε)
解决 AdaGrad 学习率归零问题,用指数移动平均替代累积和。
6. Adam (Adaptive Moment Estimation)
m = β1 * m + (1-β1) * gradient # 一阶矩(动量)
v = β2 * v + (1-β2) * gradient² # 二阶矩(自适应学习率)
m_hat = m / (1-β1^t) # 偏差修正
v_hat = v / (1-β2^t)
θ = θ - lr * m_hat / (√v_hat + ε)
Adam = Momentum + RMSprop。2014 年提出后迅速成为深度学习最常用的优化器。
7. AdamW (Adam with decoupled Weight Decay)
# AdamW = Adam 的更新方式,但权重衰减与梯度更新解耦
θ = θ - lr * (m_hat / (√v_hat + ε) + λ * θ)
# ^^^^^^^^ 权重衰减加在参数上,而非梯度中
关键改进:Adam 原始实现中 L2 正则化与自适应学习率耦合,导致正则化效果被削弱。AdamW 将权重衰减(Weight Decay)与梯度更新解耦,直接对参数施加衰减。
优化器对比总表
| 优化器 | 年份 | 动量 | 自适应学习率 | 权重衰减 | 默认参数 | 2026 年状态 |
|---|---|---|---|---|---|---|
| SGD | 1951 | 无 | 无 | 可选 | lr=0.01 | 教学/简单任务 |
| SGD+Momentum | 1964 | 有 | 无 | 可选 | lr=0.01, β=0.9 | CV 领域仍用 |
| AdaGrad | 2011 | 无 | 有 | 无 | lr=0.01 | 稀疏特征场景 |
| RMSprop | 2012 | 无 | 有 | 无 | lr=0.001, β=0.9 | RNN 偶尔用 |
| Adam | 2014 | 有 | 有 | L2(耦合) | lr=0.001, β1=0.9, β2=0.999 | 广泛使用 |
| AdamW | 2017 | 有 | 有 | 解耦 | lr=0.001, β1=0.9, β2=0.999, wd=0.01 | 2026 年默认 |
学习率 (Learning Rate)
学习率是最重要的超参数。太大则震荡甚至发散,太小则收敛太慢。
学习率调度策略
| 策略 | 行为 | 适用场景 |
|---|---|---|
| 常数 (Constant) | 固定不变 | 几乎不用 |
| 阶梯衰减 (Step Decay) | 每 N 步 lr 乘以 0.1 | 老式 CNN 训练 |
| 余弦退火 (Cosine Annealing) | lr 按余弦曲线从大到小 | 现代 Transformer 训练 |
| 预热 (Warmup) | 前 N 步从 0 线性增长到目标 lr | LLM 训练标配 |
| 余弦退火 + 预热 | 先预热再余弦衰减 | 2026 年 LLM 训练标配 |
| 循环 (Cyclic) | lr 周期性上下波动 | 探索不同局部最优 |
| 自适应 (ReduceLROnPlateau) | 验证 loss 不再下降时降低 lr | 通用训练 |
lr
^
| /\
| / \
| / \_____________
| / \___
| / \___
+----------------------------------> steps
预热 余弦退火
梯度下降的问题与应对
| 问题 | 表现 | 原因 | 解决方案 |
|---|---|---|---|
| 局部最优 | 停在鞍点或局部极小值 | 损失曲面非凸 | SGD 噪声 + 动量可逃离 |
| 鞍点 (Saddle Point) | 梯度接近 0 但不是极值点 | 高维空间鞍点远多于极值点 | 动量/Adam 可穿过 |
| 病态曲率 | 某一方向梯度极大另一方向极小 | 参数尺度不一致 | 自适应学习率(Adam) |
| 震荡 | 峡谷中来回震荡 | 学习率过大或动量不足 | 动量 + 自适应学习率 |
| 梯度消失/爆炸 | 参数更新极慢或极快 | 深层网络梯度传播问题 | 归一化 + 残差连接 |
2026 年形势
| 结论 | 说明 |
|---|---|
| AdamW 是默认 | 几乎所有 LLM(GPT/LLaMA/Qwen/DeepSeek)训练都用 AdamW |
| 学习率预热不可或缺 | 大模型训练初期不预热直接崩溃 |
| 余弦退火是标准 | 从预热后线性/余弦衰减到接近 0 |
| 混合精度优化 | FP16 梯度 + FP32 优化器状态(Adam 需要) |
| 分布式优化器 | ZeRO 将优化器状态分片到多 GPU |
相关笔记
- 第6章 · 神经网络基础 — 梯度下降在训练循环中的位置
- 反向传播 (Backpropagation) — 反向传播计算梯度,梯度下降使用梯度
- ReLU 与激活函数 (Activation Functions) — 激活函数选择影响梯度流动
- 过拟合与欠拟合 (Overfitting & Underfitting) — 权重衰减(AdamW 的核心)的正则化效果
- 第3章 · AI 需要的数学 — 梯度和偏导数的数学基础
来源
- Kingma & Ba, “Adam: A Method for Stochastic Optimization” (2014) — https://arxiv.org/abs/1412.6980
- Loshchilov & Hutter, “Decoupled Weight Decay Regularization” (2017, AdamW) — https://arxiv.org/abs/1711.05101
- Ruder, “An overview of gradient descent optimization algorithms” (2016) — https://arxiv.org/abs/1609.04747
- Goodfellow et al., “Deep Learning”, Chapter 8 — https://www.deeplearningbook.org/
- 3Blue1Brown, “Gradient descent, how neural networks learn” — https://www.3blue1brown.com/lessons/gradient-descent
关联15
知识图谱反向链接10
局部图谱 · 点节点跳转