梯度下降

梯度下降

沿着山坡往下走

梯度下降是机器学习与深度学习中最核心的参数优化算法,通过反复沿损失函数梯度的反方向小步更新模型参数,使训练误差逐渐收敛到极小值。它是几乎所有神经网络训练流程的底层引擎,无论是图像识别还是大语言模型预训练,背后都在运行梯度下降的某种变体。

概述

梯度下降是机器学习与深度学习中最核心的参数优化算法,通过反复沿损失函数梯度的反方向小步更新模型参数,使训练误差逐渐收敛到极小值。它是几乎所有神经网络训练流程的底层引擎,无论是图像识别还是大语言模型预训练,背后都在运行梯度下降的某种变体。

核心思想

梯度下降把「找最优参数」转化为「在损失曲面上一步步下坡」的过程。

  • 损失函数(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 至今AdamWWarmup + Cosine Decay 成为大模型预训练标配;Muon 等新型优化器持续探索更高效的参数更新策略。

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「沿着山坡往下走」
  • 「机器学习基础概念」
  • 「跟 梯度下降 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    机器学习基础:从线性模型到决策树

    机器学习入门必读。涵盖线性回归、逻辑回归、决策树、KNN、SVM 等核心算法,从数学原理到 Python 实战,配合对比表格和可视化图解,帮你建立完整的 ML 知识框架。

  2. 2

    反向传播:神经网络如何学习

    深入理解反向传播算法的数学原理、计算图实现和训练中的关键问题

外部参考

维基百科:查看「梯度下降」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。