1. 梯度下降简介

在本教程中,我们将深入探讨梯度下降(Gradient Descent,GD) 及其三种主要变体:随机梯度下降(Stochastic Gradient Descent,SGD)标准梯度下降小批量梯度下降(Mini Batch Gradient Descent)

梯度下降是一种广泛使用的迭代优化算法,用于寻找任意可微函数的最小值。在机器学习中,我们通常用它来最小化损失函数,从而更好地拟合训练数据。每一步迭代中,我们根据当前点的梯度方向更新参数,朝着函数下降最快的方向前进。

2. 梯度下降(Gradient Descent)

核心思想:
每次迭代使用整个训练集来计算损失函数的梯度,并据此更新模型参数。

优点:

  • 梯度估计无偏
  • 每次更新方向稳定,标准误差小
  • 理论上保证收敛到全局最小值(在凸函数中)

缺点:

  • 每次迭代计算量大,训练慢
  • 内存占用高
  • 容易陷入局部最小值(在非凸问题中)

数学公式:

权重更新公式如下:

$$ w_{i+1} = w_i - \alpha \cdot \nabla_{w_i} J(w_i) $$

其中:

  • $ w $:模型权重
  • $ \alpha $:学习率(Learning Rate)
  • $ J $:损失函数
  • $ i $:迭代步数

可视化示意图:

Gradient Descent technique to find global minimum

3. 随机梯度下降(Stochastic Gradient Descent, SGD)

核心思想:
每次迭代只使用一个随机选择的训练样本进行梯度计算和参数更新。

优点:

  • 计算效率高
  • 可以跳出局部最小值
  • 更适合大规模数据

缺点:

  • 更新过程噪声大,收敛路径不稳定
  • 收敛速度慢,容易震荡
  • 易过拟合,泛化能力弱

数学公式:

$$ w_{i+1} = w_i - \alpha \cdot \nabla_{w_i} J(x^{(i)}, y^{(i)}; w_i) $$

其中:

  • $ x^{(i)} $:第 $ i $ 个样本
  • $ y^{(i)} $:对应的真实标签

4. 小批量梯度下降(Mini Batch Gradient Descent)

核心思想:
介于 GD 与 SGD 之间。每次迭代使用一个小批量(mini-batch)的样本计算梯度并更新参数。

优点:

  • 平衡了计算效率与稳定性
  • 收敛更快、更稳定
  • 利用向量化计算,提升性能

缺点:

  • 需要调参 mini-batch 大小
  • 噪声仍高于标准 GD

数学公式:

$$ w_{i+1} = w_i - \alpha \cdot \nabla_{w_i} J(x^{i:i+b}, y^{i:i+b}; w_i) $$

其中:

  • $ b $:mini-batch 的大小

5. 算法实现对比

我们以线性回归为例,展示三种方法在实现上的差异。

模型定义:

  • 假设函数:$ h_\omega(x) = \omega_0 + \omega_1 x $
  • 参数:$ \omega_0, \omega_1 $
  • 损失函数:
    $$ J(\omega_0, \omega_1) = \frac{1}{2m} \sum_{i=1}^m (h_\omega(x^{(i)}) - y^{(i)})^2 $$

目标:最小化 $ J(\omega_0, \omega_1) $

伪代码对比:

✅ 5.1 梯度下降伪代码:

Repeat until convergence {
    Compute gradients using all m samples
    Update weights
}

✅ 5.2 随机梯度下降伪代码:

Shuffle dataset
Repeat until convergence {
    For each sample (x_i, y_i) {
        Compute gradient
        Update weights
    }
}

✅ 5.3 小批量梯度下降伪代码:

Shuffle dataset
Split into batches of size b
Repeat until convergence {
    For each batch (X_b, Y_b) {
        Compute gradient
        Update weights
    }
}

6. 实际应用场景

这些梯度下降变体广泛应用于机器学习和神经网络中,尤其是在反向传播(Backpropagation)过程中用于训练模型参数。它们通过不断调整模型权重,使损失函数逐步下降,最终达到一个局部或全局最小值。

7. 三种方法对比总结

方法 优点 缺点
GD 无偏估计、稳定 计算开销大、收敛慢
SGD 快速、适合大数据 噪声大、收敛不稳定
Mini-Batch GD 折中方案、效率与稳定性兼顾 需调参 mini-batch size

推荐使用: 小批量梯度下降是目前深度学习中最常用的优化策略。

8. 总结

本文系统地介绍了梯度下降及其主要变体:标准 GD、SGD 和 Mini-Batch GD。我们分析了它们的工作原理、数学公式、实现伪代码以及优缺点。最后得出结论:

Mini-Batch Gradient Descent 在性能、效率和稳定性之间取得了最佳平衡,因此在实际应用中最受青睐。

掌握这三种方法的区别和适用场景,有助于我们在训练模型时做出更合理的优化选择。


原始标题:Differences Between Gradient, Stochastic and Mini Batch Gradient Descent