当前位置: 首页 > news >正文

深度学习(十七):全批量梯度下降 (BGD)、随机梯度下降 (SGD) 和小批量梯度下降 (MBGD)

**梯度下降(Gradient Descent)**是深度学习中用于最小化损失函数(Loss Function)的核心优化算法。它的基本思想是:沿着损失函数对模型参数的梯度(即最陡峭的下降方向)的反方向,迭代地更新参数,直到收敛到局部(或全局)最小值。

在实践中,根据每次参数更新时所使用的训练样本数量,梯度下降算法被划分为三种主要变体,它们在计算效率、收敛速度和稳定性方面各有权衡。

全批量梯度下降 (Batch Gradient Descent, BGD)

1. 原理与方法

全批量梯度下降,通常简称为梯度下降 (GD),在每一次参数更新迭代时,都使用整个训练数据集来计算损失函数的梯度。

  • 数据使用量: N(整个数据集的样本总数)
  • 更新频率: 每一轮 (Epoch) 训练只更新一次参数。

流程:

  1. 将整个训练集输入网络。
  2. 计算所有 N 个样本的损失,并求平均损失。
  3. 计算平均损失对所有参数的梯度。
  4. 根据梯度更新参数,完成一次迭代。

2. 特点与权衡

优点缺点
精确稳定的梯度: 由于使用了全部数据,计算出的梯度是损失函数的真实梯度,方差最小,参数更新方向最准确。训练速度极慢: 对于大型数据集,每次迭代都需要遍历全部样本,计算量巨大,耗时极长。
收敛路径平滑: 损失函数会沿着一个相对平滑的路径单调下降,能够稳定地收敛到局部最小值(对于凸函数可收敛到全局最小值)。内存消耗巨大: 需要将整个训练集加载到内存或显存中进行计算。
适合凸损失函数: 在损失函数是凸函数的情况下,收敛性有理论保证。容易陷入局部最优: 收敛路径过于平稳,缺乏随机性,在非凸的深度学习损失曲面中,容易在“碗底”的局部最优解处停止,缺乏逃逸能力。

3. 应用场景

在现代深度学习中,由于数据集规模庞大,BGD 几乎很少被单独使用,它主要用于以下场景:

  • 数据集非常小(如几百个样本)。
  • 需要精确追踪损失函数随迭代次数的变化。
  • 作为理论分析的基础。

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

1. 原理与方法

随机梯度下降是 BGD 的一个极端版本。它在每一次参数更新迭代时,只随机选取训练集中的 一个样本 来计算梯度。

  • 数据使用量: 1
  • 更新频率: 每处理一个样本就更新一次参数。在一个 Epoch 内,如果数据集大小为 N,则参数更新 N 次。

流程:

  1. 从训练集中随机选取一个样本 (xi,yi)。
  2. 计算该样本的损失。
  3. 计算该样本损失对参数的梯度。
  4. 根据梯度更新参数,完成一次迭代。
  5. 重复 N 次完成一个 Epoch。

2. 特点与权衡

优点缺点
训练速度最快: 每次迭代计算量极小(只需处理一个样本),参数更新频率最高,收敛速度在样本数上非常快。梯度方差大(更新路径“嘈杂”): 单一样本的梯度是对真实梯度的随机近似,噪声大,更新方向波动性强。
内存消耗极低: 每次只需处理一个样本,对内存/显存要求最低。收敛震荡剧烈: 学习路径波动大,不会平稳地收敛到最小值,而是在最小值附近不断震荡
更强的逃逸能力: 梯度中的随机性有助于模型跳出浅层的局部最小值,最终可能找到更好的全局/近似全局最优解。无法充分利用硬件并行计算能力: 现代硬件(GPU/TPU)针对矩阵/向量运算优化,处理单个样本的效率远低于批量处理。

3. 应用场景

虽然 SGD 这个名称在深度学习文献中经常用来泛指所有随机优化器(包括小批量),但纯粹的单样本 SGD在现代深度学习中也很少使用,因为它效率低下且更新路径过于不稳定。

小批量梯度下降 (Mini-Batch Gradient Descent, MBGD)

1. 原理与方法

小批量梯度下降是 BGD 和 SGD 之间的一个最优折衷方案,也是当前深度学习最常用、最推荐的优化算法。它在每次参数更新时,使用训练集中的一个**小批量(Mini-Batch)**样本来计算梯度。

  • 数据使用量: B(批量大小,通常 1<B<N)
  • 更新频率: 每处理 B 个样本就更新一次参数。在一个 Epoch 内,更新 N/B 次。

流程:

  1. 将训练集划分为 M=N/B 个小批量数据块。
  2. 选取第 k 个小批量 {(x(k),y(k))}i=1B 输入网络。
  3. 计算这 B 个样本的平均损失
  4. 计算平均损失对参数的梯度。
  5. 根据梯度更新参数,完成一次迭代。

2. 核心优势与特点

优点缺点
平衡了稳定性和速度: 梯度方差小于 SGD(更稳定),更新频率高于 BGD(更快)。需要调参: 批量大小 B 是一个需要优化的超参数。
高效利用硬件: 小批量数据可以高效地进行向量化和并行计算,充分利用 GPU/TPU 的矩阵运算能力,这是其核心优势。收敛路径仍有波动: 相比 BGD,收敛路径仍有轻微波动,但比 SGD 平稳得多。
适中的逃逸能力: 适度的梯度噪声使其能有效避免陷入局部最优解。

3. 批量大小(Batch Size, B)的选择

批量大小 B 是一个关键超参数,它直接影响训练的效率泛化能力

批量大小 B影响适用场景
小批量 (e.g., B=16,32,64)泛化能力更好,收敛速度更快,内存效率高。梯度噪声略大。大多数深度学习任务的标准选择,如 CV 和 NLP。
大批量 (e.g., B=256,512,1024)梯度估计更准确,收敛更稳定,但可能牺牲泛化能力(大批量可能导致泛化能力下降)。硬件资源充足,或需要更精确梯度的场景。

三种方法的详细对比与总结

下表从多个维度对这三种梯度下降变体进行总结比较:

特性全批量梯度下降 (BGD)随机梯度下降 (SGD)小批量梯度下降 (MBGD)
数据量/次更新整个数据集 N1 个样本B 个样本 (1<B<N)
更新频率/Epoch1 次N 次N/B 次
梯度方差/噪声最低 (真实梯度)最高 (随机噪声)中等
收敛路径平稳,单调下降剧烈震荡,最终在最小值附近徘徊平稳且快速,有轻微震荡
收敛速度 (迭代次数)慢(迭代次数少,但单次耗时长)(更新频繁)最快(平衡了效率和更新频率)
计算效率(单次计算成本高)低(无法并行计算)(可高度并行化)
内存/显存中等
深度学习应用几乎不用理论基石,但纯粹的单样本很少用工业界和研究中最常用的方法

总结

小批量梯度下降(MBGD)在现代深度学习中占据主导地位,但它仍然是梯度下降优化器家族的一个基础版本。为了进一步提升训练效率、加速收敛,并在非凸损失曲面上表现更好,研究人员在 MBGD 的基础上加入了动量(Momentum)、**自适应学习率(Adaptive Learning Rate)**等机制,从而发展出了更先进的优化器:

  1. 带动量的 SGD (SGD with Momentum): 使用梯度的历史信息来平滑更新路径,减少震荡,加速收敛,尤其是沿着平坦方向。
  2. 自适应学习率优化器:
    • Adagrad/Adadelta/RMSprop: 根据参数的历史梯度平方和,为每个参数设置不同的学习率,对不常更新的参数给予更大的学习率。
    • Adam (Adaptive Moment Estimation): 结合了动量和 RMSprop 的优点,同时使用梯度的一阶矩(均值)和二阶矩(非中心方差)来调整每个参数的学习率,是当前最流行的优化器之一。

核心总结: 深度学习中的优化技术,无论是早期的 SGD,还是现代的 Adam,其基础计算框架都是小批量梯度下降 (MBGD)。MBGD 巧妙地利用了现代硬件的并行计算能力,同时在梯度稳定性和逃逸局部最优的能力之间找到了完美的平衡,是实现高效深度学习训练的基石。

http://www.dtcms.com/a/449271.html

相关文章:

  • 实验十九 GaussDB三权分立实验
  • C++微基础备战蓝桥杯string篇10.5
  • 基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装
  • 网站建设需求登记表 免费下载软件开发公司企业简介
  • 北京城乡建设网站网站建设都是用什么软件
  • C++分布式语音识别服务实践
  • 轻松理解智能体设计模式(1/6):提示链(Prompt Chaining)
  • ARM TrustZone技术如何守护你的隐私
  • 北京恒伟网站建设wordpress 新页面打开空白
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 8--基础知识 4--常用函数 2
  • 在 Python 项目中构建可靠的 CI/CD 流水线:从设计到实战(面向开发与运维的实用指南)
  • Linux基本指令(中)
  • 郑州服装网站建设公司php做电商网站安全性如何
  • 响应式网站 翻译网站关键词排名如何提升
  • python爬虫(二) ---- JS动态渲染数据抓取
  • 国庆回来的css
  • 廊坊做网站的电话公司网站外包
  • 八股文:计算机网络-20250925
  • MySql速成笔记5(多表关系)
  • 如何设计和建立一个公司的网站佛山网站优化有
  • 开源 C++ QT QML 开发(六)自定义控件--波形图
  • excel-mcp-server 安装
  • Axios快速上手
  • 中国建网站报价电子商务网站的建设流程图
  • 某单位固态硬盘站点备份至固态硬盘的站点备份方案
  • 高级经济师资源合集
  • 【数据结构】数据结构考研核心:树形查找算法对比与应用场景全指南
  • 做公司网站需要了解哪些东西体育网站的制作哪里可以做
  • 【Docker】解决Docker中“exec format error”错误:架构不匹配的完整指南
  • 如何自己开个网站平台成立网站建设公司要求