ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

机器学习10:梯度下降算法分类

机器学习10:梯度下降算法分类

前言

本文面向正在入门机器学习与深度学习优化算法的读者,尤其是希望把「梯度下降」从公式真正落到工程实践的同学。我们将围绕一个核心问题展开:如何在可接受的计算成本下,稳定、高效地求出损失函数的最小值。读完本文,你将能分清四大梯度下降变体的适用边界,并在正规方程法与梯度下降法之间做出合理选型。

目录

  • 一、 梯度下降算法的四大分类
    • 2.1 全梯度下降 (Full Gradient Descent, FGD)
    • 2.2 随机梯度下降 (Stochastic Gradient Descent, SGD)
    • 2.3 小批量梯度下降 (Mini-batch Gradient Descent)
    • 2.4 随机平均梯度下降 (Stochastic Average Gradient, SAG)
  • 二、 损失函数与模型优化策略
    • 3.1 损失函数的核心定义
    • 3.2 求解损失函数最小值的两种路径
      • 3.2.1 正规方程法 (Normal Equation)
      • 3.2.2 梯度下降法 (Gradient Descent)
    • 3.3 两种方法的对比与选型指南
  • 三、 梯度的数学本质与更新机制

一、 梯度下降算法的四大分类

梯度下降(Gradient Descent, GD)根据每次迭代所使用的样本数量,主要分为以下四种变体:

2.1 全梯度下降 (Full Gradient Descent, FGD)

  • 机制:每次迭代使用全部样本计算梯度并更新参数。
  • 特点:利用全局信息,方向精准;但单次迭代计算量极大,收敛速度极慢。

2.2 随机梯度下降 (Stochastic Gradient Descent, SGD)

  • 机制:每次迭代随机选择 1 个样本计算梯度并更新。
  • 特点:计算极快,但高度依赖单个样本。若抽中异常值(噪声),会导致梯度方向偏离,结果不稳定。适用于数据已充分清洗、无异常值的场景。

2.3 小批量梯度下降 (Mini-batch Gradient Descent)

  • 机制:每次迭代随机选择一小批样本(Batch Size 记为m mm)进行计算。
  • 数学边界:设总样本数为M MM。当m = 1 m=1m=1时为 SGD;当m = M m=Mm=M时为 FGD;当1 < m < M 1 < m < M1<m<M时即为小批量梯度下降。
  • 特点:兼顾了速度与稳定性,避免了极端情况。是目前工业界与深度学习中最主流的选择。

2.4 随机平均梯度下降 (Stochastic Average Gradient, SAG)

  • 机制:维护一个梯度列表。每次随机选样计算梯度并存入列表,更新时使用列表中历史梯度的均值。若再次抽中同一样本,则用新计算的梯度替换旧值后再求均值。
  • 特点:初期表现不佳、优化速度慢(因初始梯度常设为0);但随着训练轮次增加,精度逐渐提升,呈现“越老越吃香”的特性(类比中医或资深财会从业者)。因整体效率不如小批量下降,实际使用较少。

二、 损失函数与模型优化策略

3.1 损失函数的核心定义

  • 别名:代价函数 (Cost Function)、目标函数 (Objective Function)。
  • 作用:量化模型预测值与真实值之间的差异(误差),用于评估模型的好坏。
  • 核心原则:损失函数值越小,模型效果越好。线性回归常用均方误差 (MSE) 衡量,即1 N ∑ ( y ^ − y ) 2 \frac{1}{N}\sum(\hat{y}-y)^2N1​∑(y^​−y)2。

3.2 求解损失函数最小值的两种路径

3.2.1 正规方程法 (Normal Equation)
  • 原理:通过解析解一步直接求出最优参数向量W WW。
  • 前提条件:特征矩阵的转置乘积( X T X ) (X^TX)(XTX)必须可逆。若存在强相关性或维度灾难导致奇异矩阵,则无法求解。
  • 缺点:计算复杂度高达O ( n 3 ) O(n^3)O(n3),计算量极大;对噪声和特征共线性敏感。
3.2.2 梯度下降法 (Gradient Descent)
  • 原理:通过迭代逐步逼近损失函数的最小值。
  • 核心超参数:学习率 (Learning Rate,α \alphaα)。通常取值范围为0.001 ~ 0.01。
    • 过大:参数震荡甚至爆炸,无法收敛。
    • 过小:收敛速度极慢,浪费时间。
  • 优势:无需矩阵求逆,计算资源消耗低,普适性强。尤其适用于参数量达百亿级(如 671B)的深度模型,此时正规方程在算力上完全不可行。

3.3 两种方法的对比与选型指南

维度正规方程法梯度下降法
适用数据规模小数据集大数据集 / 高维特征
数据质量要求需干净、无强共线性可容忍一定噪声
求解方式一次解析计算多次迭代逼近
是否需要学习率否是
工程落地建议仅当数据量小且干净时考虑默认首选,实战核心

三、 梯度的数学本质与更新机制

  • 梯度的方向:指向函数值上升最快的方向。
  • 单变量 vs 多变量:
    • 单变量函数:梯度 =导数
    • 多变量函数:梯度 =偏导数(每个特征/权重列都有独立的梯度)
  • 下降原理:为了寻找最小值,需沿梯度的反方向移动,因此公式前带负号。
  • 参数更新公式:
    θ n e w = θ o l d − α ⋅ ∇ J ( θ ) \theta_{new} = \theta_{old} - \alpha \cdot \nabla J(\theta)θnew​=θold​−α⋅∇J(θ)
    • θ o l d \theta_{old}θold​:当前参数点
    • α \alphaα:学习率(决定步长大小)
    • ∇ J ( θ ) \nabla J(\theta)∇J(θ):梯度(决定下降方向)
    • 负号-:确保沿下降最快方向移动

总结

  • 四大 GD 变体:FGD 用全量样本、方向准但极慢;SGD 单样本更新、快但受噪声影响大;Mini-batch GD 在速度与稳定性之间取得平衡,是工业界与深度学习的主流选择;SAG 用历史梯度均值,后期精度提升但整体效率不及小批量下降,实际使用较少。
  • 两种求解路径的选型:数据量小且干净、X T X X^TXXTX可逆时可用正规方程法一步求解;数据规模大、特征维度高或存在噪声时,梯度下降法是默认首选,它无需矩阵求逆,能支撑百亿级参数模型。
  • 学习率调参要点:常用范围0.001 ~ 0.01;过大导致震荡甚至发散,过小则收敛缓慢。实践中建议从较小值起步,结合损失曲线观察,必要时配合学习率衰减策略逐步收紧步长。
  • 更新机制回顾:梯度指向函数值上升最快的方向,参数沿负梯度方向更新,即θ n e w = θ o l d − α ⋅ ∇ J ( θ ) \theta_{new} = \theta_{old} - \alpha \cdot \nabla J(\theta)θnew​=θold​−α⋅∇J(θ)。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进