更新于 2026年8月13日

随机梯度下降#


术语解释#

随机梯度下降(Stochastic Gradient Descent, SGD) 是梯度下降算法的一种变体,在深度学习中它是一种高效求解网络参数梯度的利器。

随机梯度下降在每次更新参数时,只随机选择一个训练样本来计算目标函数关于参数的梯度。 相比于梯度下降算法在所有样本上计算梯度后再取平均,SGD 每次迭代仅依赖单个样本的预测结果与真实值之间的误差。

由于随机梯度下降波动太大而梯度下降计算太慢,实际应用中通常采用小批量梯度下降(Mini-batch Gradient Descent)。它每次选择一小批量样本(Batch Size)来计算梯度,既保证了梯度的相对稳定性(比 SGD 稳),又兼顾了计算效率(比 GD 快),是目前深度学习模型训练的标准配置。

更多相关内容讲解,可参见 「3.6 Softmax分类实战:PyTorch DataLoader与MNIST手写体分类」


出现动机#

  • 解决数据规模挑战:在深度学习中,训练集的数量通常极其巨大,内存和算力难以支持一次性计算所有样本在所有权重参数上的梯度。

  • 提升训练效率:为了在计算资源有限的情况下仍能有效地更新模型参数,研究人员引入了这种每次只处理部分(或单个)数据的策略。


直观示例#

如图所示,环形曲线表示目标函数对应的等高线,左右两边分别为随机梯度下降算法和梯度下降算法求解参数$w_1$和$w_2$的模拟过程,其中箭头方向表示负梯度方向,中间的原点表示目标函数对应的最优解。

从左侧的优化过程可以看出,尽管随机梯度下降算法最终也能近似求解得到最优解,但是在整个迭代优化过程中梯度却不稳定,极有可能导致陷入局部最优解当中。但是对于梯度下降算法来说,由于其梯度是取在多个样本上的均值,因此在每次迭代过程中计算得到的梯度会相对更稳定,从而有更大的几率求解得到全局最优解。

 随机梯度下降与梯度下降模拟结果图
随机梯度下降与梯度下降模拟结果图

优点缺点#

  • 优点:

    • 计算开销极低:由于每次迭代只需处理一个样本,单步参数更新的速度非常快。

    • 适用于在线学习:它能够处理不断流入的新数据,而无需重新加载整个数据集。

    • 有助于逃离局部最优(理论推导):虽然由于梯度的不稳定性可能带来波动,但在某些非凸优化问题中,这种随机性有时能帮助模型跳出浅层的局部极小值。

  • 缺点:

    • 梯度值抖动剧烈:由于是基于单样本计算梯度,优化过程中的梯度方向极不稳定,导致损失函数曲线波动很大。

    • 难以收敛到全局最优:这种不稳定性使得模型极有可能陷入局部最优解,或者在最优解附近震荡而难以精确收敛。

    • 无法利用并行计算:每次只处理一个样本,难以充分发挥 GPU 强大的并行计算能力。

相关术语#

阅读 --

3.6 Softmax回归简洁实现

在本节内容中,我们首先介绍了什么是随机梯度下降和小批量梯度下降,并顺利的引出了PyTorch框架中DataLoader模块;然后介绍了PyTorch中用于计算分类任务模型损失的nn.CrossEntropyLoss()模块及其使用示例;

3.3 梯度下降与反向传播

在本节中,我们首先通过一个跳跃的例子详细地向大家介绍了什么是梯度,以及为什么要沿着梯度的反方向进行跳跃才能最快到底谷底;然后通过图示推导出了梯度下降的更新迭代公式;接着详细介绍了网络模型的前向传播过程和反向传播过程,并推导了整个梯度的求解过 …