什么是随机梯度下降?
随机梯度下降(SGD)是机器学习中常用的优化算法,通过逐个样本更新模型参数而非全部数据集,显著提升计算效率。它常用于大规模数据训练,是批量梯度下降(BGD)的变体。
核心原理
单样本梯度计算
每次迭代仅使用一个训练样本计算梯度,更新参数: $$ \theta_{t+1} = \theta_t - \eta \nabla_\theta J(\theta; x_i, y_i) $$ 其中 $\eta$ 为学习率,$x_i, y_i$ 为单个样本。与批量梯度下降的区别
- BGD:计算完整数据集梯度(计算量大,收敛慢)
- SGD:计算单个样本梯度(计算快,噪声大)
- Mini-batch GD:折中方案,使用小批量数据(常用实践)
优点
- 实时性:适合在线学习场景
- 内存友好:无需存储全部数据
- 收敛速度快:尤其在数据量大的情况下
应用场景
- 线性回归、逻辑回归等模型的参数优化
- 神经网络训练(如深度学习)
- 高维数据特征选择
注意事项
- 学习率调整:需动态调整(如使用学习率衰减)
- 随机性影响:可能导致参数波动,需通过多次迭代收敛
- 实现细节:可结合动量法(Momentum)或自适应学习率(Adam)改进
扩展阅读
如需深入了解 SGD 的数学推导或实际代码实现,可访问 梯度下降详解 页面。