梯度下降

梯度下降(Gradient Descent)是机器学习和深度学习中最常用的优化算法之一,其核心目标是通过不断调整模型参数,最小化损失函数(Loss Function),从而使模型能够更好地拟合训练数据。

核心思想

损失函数  衡量模型预测值与真实值之间的差距,其中  是模型的参数(如权重、偏置等)。梯度下降的基本思路是:
沿着损失函数梯度的反方向更新参数,逐步找到损失函数的最小值(或局部最小值)。

  • 梯度(Gradient):损失函数对参数的偏导数组成的向量,反映了参数变化对损失值的影响方向和幅度。
  • 反方向:梯度指向损失函数增大最快的方向,因此沿着梯度的反方向调整参数,能使损失值下降最快

算法步骤

  1. 初始化参数:随机设定模型参数  的初始值(如随机赋值)。
  2. 计算梯度:求损失函数  对当前参数  的梯度 
  3. 更新参数:根据梯度和学习率(步长)调整参数,公式为:
    其中, 是学习率(Learning Rate),控制每次参数更新的幅度(需手动设定,过大会导致震荡,过小会收敛缓慢)。
  4. 重复迭代:直到梯度接近 0(损失函数不再明显下降)或达到预设迭代次数,停止更新。

常见变种

根据每次计算梯度时使用的样本量不同,梯度下降可分为以下几类:

类型 计算方式 优点 缺点
批量梯度下降(BGD) 每次使用全部训练样本计算梯度 收敛稳定,能找到全局最优(凸函数中) 计算量大,不适合大数据集,内存消耗高
随机梯度下降(SGD) 每次随机选择单个样本计算梯度 速度快,适合大数据集,能跳出局部最优 梯度波动大,收敛路径震荡,可能不收敛到最优
小批量梯度下降(MBGD) 每次使用一小批样本(如 32、64、128 个)计算梯度 平衡速度和稳定性,实际中最常用 需要手动设定批量大小(Batch Size)

关键超参数

  • 学习率(:决定参数更新的步长。
    • 过大:可能跳过最小值,导致损失函数震荡甚至发散。
    • 过小:收敛速度慢,可能陷入局部最小值。
    • 改进:可使用学习率衰减(如随迭代次数减小)或自适应学习率算法(如 Adam、RMSprop)。
  • 批量大小(Batch Size):仅针对小批量梯度下降,影响模型收敛速度和泛化能力。

应用场景

梯度下降是训练神经网络、线性回归、逻辑回归等模型的核心算法,尤其在深度学习中,与反向传播(Backpropagation)结合,可高效更新复杂网络的参数。

总结

梯度下降通过 “沿着梯度反方向逐步调整参数” 的策略,实现损失函数的最小化。其性能依赖于学习率、批量大小等超参数的选择,实际应用中常结合自适应优化算法(如 Adam)提升效率和稳定性。
posted @ 2025-07-11 09:44  姚春辉  阅读(25)  评论(0)    收藏  举报