知识点:随机梯度下降算法 (SGD)
知识点概述
随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降法的一个变种,专门用于求解大规模机器学习和随机优化问题。它在每一步迭代中仅使用一个或一小批(mini-batch)样本来估计梯度,从而极大地降低了计算成本,使得处理海量数据成为可能。
详细解释
- 动机: 对于有限和问题 ,当 非常大时,计算一次完整梯度(需要遍历所有 个样本)的成本过高。
- 算法:
- 选择初始点 。
- 在第 步,随机选择一个(或一小批)样本索引 。
- 使用该样本的梯度作为整体梯度的近似:。
- 更新参数:。
- 性质:
- 优点: 迭代成本低,与数据集大小无关;对于大规模冗余数据集,收敛速度可能比批梯度下降更快。
- 缺点: 随机梯度是真实梯度的有偏估计,引入了噪声,导致收敛路径非常不稳定,目标函数值会震荡。
- 学习率: SGD对学习率 的选择非常敏感。通常需要使用一个递减的学习率(如 )来保证收敛。
学习要点
- 理解SGD的核心思想:用随机样本的梯度来近似完整梯度。
- 掌握SGD的迭代公式。
- 区分批梯度下降、小批量梯度下降和随机梯度下降。
- 了解SGD的优缺点:迭代快但收敛不稳定。
实践应用
- 深度学习: 是训练几乎所有深度神经网络的标准算法。现代SGD通常与动量(Momentum)、Adam、RMSProp等自适应学习率方法结合使用。
- 在线学习: 当数据以流的形式出现时,SGD可以用于在线更新模型。
关联知识点
- 前置知识: 45-核心概念-随机优化问题, 57-理论方法-梯度下降法
- 后续知识: 74-理论方法-方差减小技术
- 相关知识: 5-应用案例-深度学习