知识点:随机梯度下降算法 (SGD)

知识点概述

随机梯度下降(Stochastic Gradient Descent, SGD)是梯度下降法的一个变种,专门用于求解大规模机器学习和随机优化问题。它在每一步迭代中仅使用一个或一小批(mini-batch)样本来估计梯度,从而极大地降低了计算成本,使得处理海量数据成为可能。

详细解释

  • 动机: 对于有限和问题 ,当 非常大时,计算一次完整梯度(需要遍历所有 个样本)的成本过高。
  • 算法:
    1. 选择初始点
    2. 在第 步,随机选择一个(或一小批)样本索引
    3. 使用该样本的梯度作为整体梯度的近似:
    4. 更新参数:
  • 性质:
    • 优点: 迭代成本低,与数据集大小无关;对于大规模冗余数据集,收敛速度可能比批梯度下降更快。
    • 缺点: 随机梯度是真实梯度的有偏估计,引入了噪声,导致收敛路径非常不稳定,目标函数值会震荡。
    • 学习率: SGD对学习率 的选择非常敏感。通常需要使用一个递减的学习率(如 )来保证收敛。

学习要点

  • 理解SGD的核心思想:用随机样本的梯度来近似完整梯度。
  • 掌握SGD的迭代公式。
  • 区分批梯度下降、小批量梯度下降和随机梯度下降。
  • 了解SGD的优缺点:迭代快但收敛不稳定。

实践应用

  • 深度学习: 是训练几乎所有深度神经网络的标准算法。现代SGD通常与动量(Momentum)、Adam、RMSProp等自适应学习率方法结合使用。
  • 在线学习: 当数据以流的形式出现时,SGD可以用于在线更新模型。

关联知识点