梯度下降(Gradient Descent)是机器学习和深度学习中最常用的优化算法之一,其核心目标是通过不断调整模型参数,最小化损失函数(Loss Function),从而使模型能够更好地拟合训练数据。
损失函数 L(θ) 衡量模型预测值与真实值之间的差距,其中 θ 是模型的参数(如权重、偏置等)。梯度下降的基本思路是:
沿着损失函数梯度的反方向更新参数,逐步找到损失函数的最小值(或局部最小值)。
- 梯度(Gradient):损失函数对参数的偏导数组成的向量,反映了参数变化对损失值的影响方向和幅度。
- 反方向:梯度指向损失函数增大最快的方向,因此沿着梯度的反方向调整参数,能使损失值下降最快。
- 初始化参数:随机设定模型参数 θ 的初始值(如随机赋值)。
- 计算梯度:求损失函数 L(θ) 对当前参数 θ 的梯度 ∇θL(θ)。
- 更新参数:根据梯度和学习率(步长)调整参数,公式为:θ=θ−η⋅∇θL(θ)
其中,η 是学习率(Learning Rate),控制每次参数更新的幅度(需手动设定,过大会导致震荡,过小会收敛缓慢)。
- 重复迭代:直到梯度接近 0(损失函数不再明显下降)或达到预设迭代次数,停止更新。
根据每次计算梯度时使用的样本量不同,梯度下降可分为以下几类:
类型 |
计算方式 |
优点 |
缺点 |
批量梯度下降(BGD) |
每次使用全部训练样本计算梯度 |
收敛稳定,能找到全局最优(凸函数中) |
计算量大,不适合大数据集,内存消耗高 |
随机梯度下降(SGD) |
每次随机选择单个样本计算梯度 |
速度快,适合大数据集,能跳出局部最优 |
梯度波动大,收敛路径震荡,可能不收敛到最优 |
小批量梯度下降(MBGD) |
每次使用一小批样本(如 32、64、128 个)计算梯度 |
平衡速度和稳定性,实际中最常用 |
需要手动设定批量大小(Batch Size) |
梯度下降是训练神经网络、线性回归、逻辑回归等模型的核心算法,尤其在深度学习中,与反向传播(Backpropagation)结合,可高效更新复杂网络的参数。
梯度下降通过 “沿着梯度反方向逐步调整参数” 的策略,实现损失函数的最小化。其性能依赖于学习率、批量大小等超参数的选择,实际应用中常结合自适应优化算法(如 Adam)提升效率和稳定性。