什么是随机梯度下降?

随机梯度下降(SGD)是机器学习中常用的优化算法,通过逐个样本更新模型参数而非全部数据集,显著提升计算效率。它常用于大规模数据训练,是批量梯度下降(BGD)的变体。

核心原理

  1. 单样本梯度计算
    每次迭代仅使用一个训练样本计算梯度,更新参数: $$ \theta_{t+1} = \theta_t - \eta \nabla_\theta J(\theta; x_i, y_i) $$ 其中 $\eta$ 为学习率,$x_i, y_i$ 为单个样本。

  2. 与批量梯度下降的区别

    • BGD:计算完整数据集梯度(计算量大,收敛慢)
    • SGD:计算单个样本梯度(计算快,噪声大)
    • Mini-batch GD:折中方案,使用小批量数据(常用实践)
  3. 优点

    • 实时性:适合在线学习场景
    • 内存友好:无需存储全部数据
    • 收敛速度快:尤其在数据量大的情况下

应用场景

  • 线性回归、逻辑回归等模型的参数优化
  • 神经网络训练(如深度学习)
  • 高维数据特征选择

注意事项

  • 学习率调整:需动态调整(如使用学习率衰减)
  • 随机性影响:可能导致参数波动,需通过多次迭代收敛
  • 实现细节:可结合动量法(Momentum)或自适应学习率(Adam)改进

扩展阅读

如需深入了解 SGD 的数学推导或实际代码实现,可访问 梯度下降详解 页面。

随机梯度下降
Stochastic Gradient Descent