术语表

批量大小

了解批量大小对深度学习的影响。有效优化训练速度、内存使用和模型性能。

批量大小是机器学习中的一个基本超参数,它定义了模型内部参数更新前所处理的训练样本数量。一次性处理整个训练数据集可能会导致计算量过大,而不是将数据分成较小的子集或 "批次"。批次大小的选择是一个关键决策,会直接影响模型的学习动力、训练速度和最终性能。它代表了计算效率与用于更新模型权重的梯度估计精度之间的权衡。

批量大小在模型训练中的作用

在训练过程中,神经网络 (NN)通过根据误差调整权重来学习。这种调整是在梯度下降优化算法的指导下进行的。批量大小决定了模型在计算梯度和执行权重更新之前 "看到 "多少个示例。

  • 随机梯度下降(SGD):当批次大小为 1 时,该过程称为随机梯度下降。梯度是针对每个样本计算的,因此更新频繁但噪声较大。
  • 批量梯度下降当批量大小等于训练数据集的样本总数时,就称为批量梯度下降。这种方法能提供非常精确的梯度估计,但计算成本高且需要大量内存。
  • 小批量梯度下降法:这是最常见的方法,批量大小设置在 1 和总数据集大小(如 32、64、128)之间。它兼顾了批量梯度下降的稳定性和随机梯度下降的效率。

批量大小的选择对训练过程影响很大。批量越大,梯度估计越准确,但每次更新的计算成本也越高。相反,批次规模越小,梯度估计越不准确,但更新速度越快。

选择正确的批量大小

寻找最佳批次大小是超参数调整的关键部分,取决于数据集、模型架构和可用硬件。

  • 批量大:一次处理更多数据可以充分发挥GPU 的并行处理能力,从而加快每个历元的训练时间。然而,研究表明,超大批量有时会导致 "泛化差距",即模型在训练数据上表现良好,但在未见数据上表现不佳。它们还需要大量内存,这可能是一个限制因素。
  • 批量小:这需要更少的内存,通常能带来更好的模型泛化效果,因为梯度更新中的噪声能帮助模型摆脱局部最小值,找到更稳健的解决方案。这有助于防止过度拟合。主要缺点是训练速度较慢,因为权重更新更频繁,而且并行处理的数据较少。

对于许多应用而言,建议使用 2 的幂次(如 32、64、128、256)的批量大小,因为它们通常与GPU 内存架构非常匹配。Ultralytics HUB等工具可以在训练模型时轻松尝试不同的批次大小。

训练与推理的批量大小

批量大小是训练的核心概念,它也适用于推理,但目的不同。在推理过程中,批处理用于同时处理多个输入(如图像或句子),以最大限度地提高吞吐量。这通常被称为批量推理

对于需要立即得到结果的应用,如自动驾驶汽车的实时推理,批量大小为 1,以尽量减少推理延迟。在离线情况下,比如在一夜之间处理大量图像,可以使用更大的批次规模来提高效率。

实际应用

  1. 医学影像分析:在医学图像中训练肿瘤检测 YOLO11模型时,图像通常都是高分辨率的。由于GPU 的内存限制,通常使用较小的批量(如 4 或 8)。这样就可以在不超出可用内存的情况下对模型进行高细节数据训练,确保训练的稳定性。
  2. 制造质量控制:在制造业的人工智能环境中,可能需要训练一个模型来检测装配线上的缺陷。对于包含数百万张产品图像的大型数据集,可以在功能强大的分布式训练集群上使用更大的批量(如 256 或 512)。这样可以加快训练过程,从而加快模型的迭代和部署。

批量大小与相关术语

重要的是要将批量大小与其他相关概念区分开来:

  • 批量大小与时间和迭代的关系迭代是模型权重的一次更新。一个 是对整个训练数据集的一次完整遍历。一个历元的迭代次数是训练样本总数除以批量大小。
  • 批大小与批归一化批归一化(BatchNorm)是一种在神经网络层中使用的技术,用于标准化每个迷你批次的输入。虽然它的效果会受到批量大小的影响(批量越大,效果越好),但它是模型架构中的一个独立层,而不是训练循环参数。大多数现代深度学习框架(如PyTorchTensorFlow)都提供了强大的实现功能。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、合作和成长

立即加入
链接复制到剪贴板