什么是 梯度下降?

梯度下降是一阶优化方法,通过反复从参数中减去目标函数梯度与正步长的乘积,利用局部斜率信息寻找更低的目标函数值。

快速了解

全称Gradient Descent Optimization Algorithm
创建时间1847 年由 Augustin-Louis Cauchy 提出
规范文档官方规范

工作原理

区分求导与优化

反向传播或自动微分负责计算复合模型与损失的导数,梯度下降负责把导数转换为参数更新。普通梯度下降使用全量梯度,随机和小批量方法则从样本估计梯度。Momentum、Adam 等优化器还会变换梯度历史或按坐标缩放,因此属于相关的一阶方法,不是基本更新公式的同义词。

控制步长、噪声与条件数

学习率过大可能振荡或发散,过小则浪费计算;特征尺度不一致和病态曲率会导致缓慢的之字形轨迹。小批量大小同时影响梯度方差与硬件效率,因此不能脱离批量单独调学习率。Warmup、衰减、归一化、Momentum、裁剪和预条件解决的是不同症状,应依据训练监控选择。

验证优化过程,但不要混淆泛化

持续记录训练损失、验证指标、梯度范数、更新量与参数量之比、非有限值和吞吐。对小型确定性样例使用有限差分核对解析梯度,可以发现求导实现错误。驻点不一定是全局最优,训练损失更低也不保证未见数据表现更好;发布还需独立的留出任务评估。

主要特点

  • 使用一阶导数信息构造局部参数更新
  • 是否下降或收敛取决于步长规则与目标函数几何
  • 可使用全数据、单样本或小批量梯度估计
  • 不同于负责计算梯度的反向传播
  • 可能接近驻点但无法普遍保证全局最优
  • 需要数值、优化过程和留出任务三类诊断

常见用途

  1. 通过最小化经验风险拟合线性或逻辑模型
  2. 使用反向传播梯度更新神经网络参数
  3. 优化向量嵌入与矩阵分解目标
  4. 用确定性凸函数测试优化器实现
  5. 使用分布式小批量梯度训练大模型

示例

loading...
Loading code...

常见问题

沿负梯度更新一定会降低损失吗?

梯度存在时,无穷小的负梯度方向才保证局部下降。有限更新还取决于步长和曲率;使用有噪小批量梯度时,即使算法在期望上改善,全数据损失也可能在某一次更新后升高。

批量、随机和小批量梯度下降有什么区别?

批量梯度下降每次使用全数据,基础 SGD 每次采样一个样本,小批量 SGD 则平均一组样本。三者的单步成本、方差、并行效率和收敛行为不同;小批量方法能高效利用加速器,因此在深度学习中更常见。

梯度下降和反向传播有什么区别?

反向传播负责沿计算图高效求导,梯度下降负责消费这些导数并更新参数。模型可以用反向传播配合 Adam 等其他优化器,梯度下降也可以使用解析推导、自动微分或数值方法得到的梯度。

梯度下降能找到全局最小值吗?

对满足条件的凸目标和步长可以给出较强收敛保证;神经网络损失是非凸的,实践通常只寻找有用的低损失驻点,而不是证明全局最优。初始化、噪声、条件数、调度和架构都会影响结果。

如何排查梯度下降训练异常?

先在小型确定性批次上用中心有限差分核对解析梯度,并确认足够小的步长能降低损失。随后监测非有限值、梯度与更新范数、学习率、训练和验证指标及吞吐,再逐步加入分布式或混合精度复杂度。

相关术语

相关文章