加载中...
梯度下降是训练神经网络的核心优化算法,沿着损失函数梯度的反方向迭代更新参数,逐步找到让损失最小的权重组合。Adam、SGD 等都是梯度下降的变体,每天都在数据中心的 GPU 集群上运行数以亿计的迭代。

| 类型 | 优化算法 |
| 主流变体 | SGD、Adam、AdamW、RMSProp |
| 关键超参数 | 学习率、batch size、动量系数 |
梯度下降的直觉:想象你蒙着眼睛站在一座多维山丘上,目标是找到最低点(最小损失)。你感知当前脚下地面的坡度(梯度),然后朝最陡的下坡方向迈一步,步长由学习率(learning rate)控制。重复这个过程直到坡度接近零(收敛到局部最小值)。
纯梯度下降(batch GD)每次用全部训练数据计算梯度,方向最准但计算极慢。随机梯度下降(SGD)每次只用一个样本,速度快但方向噪声大,收敛路径像醉汉走路。Mini-batch SGD取中间路线,每次用 32-512 个样本,是实际训练神经网络的默认选择。[1]
原始 SGD 的问题:不同参数的梯度尺度差异大,同一个学习率对有些参数太大(震荡),对另一些又太小(收敛慢)。Adam(Adaptive Moment Estimation,2014) 为每个参数维护独立的学习率,基于梯度的一阶矩(均值)和二阶矩(方差)自适应调整,是目前最广泛使用的优化器。
但 Adam 也有问题:在某些任务上泛化性能不如调好的 SGD,因为 Adam 倾向于找比较「平坦」的极小值,有时那里并不是最优解。训练大语言模型一般用 AdamW(Adam + 权重衰减解耦,2017),学习率通常采用 warmup + cosine decay 调度策略:训练开始时从小学习率线性增大(防止早期不稳定),然后余弦曲线衰减到接近零。

| 类型 | 优化算法 |
| 主流变体 | SGD、Adam、AdamW、RMSProp |
| 关键超参数 | 学习率、batch size、动量系数 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧