梯度下降
梯度下降沿着山坡往下走
梯度下降是机器学习与深度学习中最核心的参数优化算法,通过反复沿损失函数梯度的反方向小步更新模型参数,使训练误差逐渐收敛到极小值。它是几乎所有神经网络训练流程的底层引擎,无论是图像识别还是大语言模型预训练,背后都在运行梯度下降的某种变体。
概述
梯度下降是机器学习与深度学习中最核心的参数优化算法,通过反复沿损失函数梯度的反方向小步更新模型参数,使训练误差逐渐收敛到极小值。它是几乎所有神经网络训练流程的底层引擎,无论是图像识别还是大语言模型预训练,背后都在运行梯度下降的某种变体。
核心思想
梯度下降把「找最优参数」转化为「在损失曲面上一步步下坡」的过程。
- 损失函数(Loss Function):衡量模型预测与真实标签误差的函数,是梯度下降的导航目标。
- 梯度:损失函数对各参数的偏导数向量,指向损失值上升最快的方向;取其反方向即可下降。
- 学习率(η):每次更新的步长大小;过大易震荡发散,过小收敛极慢,是最敏感的超参数之一。
- 更新公式:θ ← θ − η · ∇L(θ),每轮迭代都沿梯度反方向移动一小步。
- 收敛条件:梯度趋近于零、损失不再显著下降或达到预设迭代轮数时视为收敛;对非凸损失面不保证全局最优。
工作原理
每次参数更新经历「前向传播 → 计算损失 → 反向传播 → 参数更新」四个步骤。
- 前向传播:输入数据逐层经过网络,得到预测输出。
- 损失计算:将预测值与标签对比,得到标量损失(如交叉熵、均方误差)。
- 反向传播:利用链式法则从输出层向输入层逐层计算梯度,PyTorch、JAX 等框架通过自动微分自动完成这一步。
- 参数更新:按更新公式调整参数,完成一次迭代。
- 学习率调度:动态调度(如 Warmup + Cosine Decay)通常优于固定学习率,是大模型训练的标配策略。
类型与变体
按每次更新所用数据量和梯度估计方式,梯度下降分为三种基础形态,并衍生出多种自适应优化器。
- 批量梯度下降(Batch GD):用全部训练样本计算梯度,方向精准但内存消耗大、每轮更新慢。
- 随机梯度下降(SGD):每次仅用单条样本,更新频繁但噪声大;随机噪声反而有助于逃离鞍点。
- 小批量梯度下降(Mini-batch GD):取折中,每次使用固定大小的批次(常见 32~512 条),是工业界主流做法。
- Momentum(动量):引入历史梯度的指数加权平均,减少震荡并加速穿越平坦区域。
- Adam:结合 Momentum 与 RMSProp(每参数自适应学习率),收敛快且鲁棒,是深度学习中使用最广泛的优化器;AdamW 在此基础上解耦权重衰减,成为大语言模型预训练首选。
局限与挑战
梯度下降在理论与实践之间存在若干常见陷阱。
- 鞍点问题:高维非凸损失曲面中鞍点比局部极小值更普遍;SGD 的随机噪声有助于逃逸,但仍可拖慢训练。
- 梯度消失与梯度爆炸:深层网络中梯度经多层传播后可能趋近于零或极大;残差连接、层归一化和梯度裁剪是常用缓解手段。
- 学习率敏感性:自适应优化器(Adam、AdaGrad)从根本上缓解了手工调学习率的负担,但仍需为不同任务调整超参数。
- 泛化陷阱:在 CV 任务中,带 Momentum 的 SGD 配合学习率调度往往比 Adam 的泛化性更好(如 ResNet 标准训练基线),不应默认「Adam 总优于 SGD」。
- 内存开销:大模型反向传播的显存占用约为前向的 2~3 倍,直接制约批次大小与模型规模。
应用场景
梯度下降贯穿几乎所有监督学习、自监督学习和强化学习的训练环节。
- 神经网络训练:CNN(ResNet、ViT)、RNN、Transformer 等各类架构的参数优化均依赖梯度下降变体。
- 大语言模型预训练:GPT、LLaMA 等使用 AdamW 在数千亿 token 上进行预训练。
- 微调与对齐:SFT 监督微调、RLHF 中的 PPO 策略梯度、DPO 偏好优化均以梯度下降更新参数。
- 推荐系统:点击率预测等模型通过 mini-batch SGD 高效处理海量用户行为数据。
- 科学计算:物理仿真参数拟合、分子结构预测(如 AlphaFold 训练)也依赖梯度下降求解优化问题。
发展脉络
梯度下降从 19 世纪数学工具演化为现代 AI 核心引擎,历经近两百年。
- 1847:柯西(Cauchy)提出最速下降法,用于求解联立方程,是梯度下降思想的数学雏形。
- 1907:阿达马尔(Hadamard)独立提出类似方法。
- 1951:Robbins & Monro 发表随机近似理论,为随机梯度下降奠定理论基础。
- 1986:Rumelhart、Hinton、Williams 发表反向传播论文,将梯度下降与神经网络系统结合,开启现代神经网络训练范式。
- 2011:Duchi 等提出 AdaGrad,首次引入参数级自适应学习率。
- 2012:Hinton 非正式提出 RMSProp(Coursera 课程讲义),改善 AdaGrad 学习率衰减过快的问题。
- 2015:Kingma & Ba 在 ICLR 发表 Adam(arXiv 预印本为 2014 年),结合 Momentum 与 RMSProp,迅速成为深度学习默认优化器。
- 2017 至今:AdamW、Warmup + Cosine Decay 成为大模型预训练标配;Muon 等新型优化器持续探索更高效的参数更新策略。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「沿着山坡往下走」
- 「机器学习基础概念」
- 「跟 梯度下降 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 初级编码高频查看详解 →
手撕代码:用梯度下降实现线性回归
前向 ŷ=Xw+b,MSE 损失,推导对 w、b 的梯度并用学习率迭代更新参数。
- 中级编码查看详解 →
手撕代码:从零实现逻辑回归
面试里先说:逻辑回归是线性打分接 Sigmoid,用二元交叉熵训练;关键梯度是 p−y,代码重点是数值稳定。
- 初级概念高频查看详解 →
梯度下降的原理是什么?SGD 和 Adam 有什么区别?
沿损失梯度反方向更新参数;SGD 用 mini-batch 估计梯度,Adam 自适应学习率,收敛更快更稳。
- 初级概念高频查看详解 →
什么是机器学习「模型」?训练和推理分别是什么?
模型是从数据学到的输入→输出映射(一组参数);训练用数据调参,推理用训好的模型对新输入预测。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「梯度下降」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
