术语表

批量大小

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

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

在机器学习中,尤其是在训练深度学习模型时,批量大小指的是一次迭代中使用的训练实例的数量。一次性处理整个数据集往往在计算上不可行,而将数据分成较小的、可管理的组或批次。在处理完每个批次后,模型的参数都会更新,从而提高了训练效率,尤其是计算机视觉中常见的大型数据集。

批量大小的重要性

选择适当的批量大小是一个关键的超参数,会对模型训练动态、资源利用率和最终性能产生重大影响。

  • 训练速度:更大的批次规模通常能带来更快的训练历时,因为它们能更好地利用GPU 等硬件的并行处理能力。每个计算周期可处理更多数据。
  • 内存消耗:批处理量增大的直接后果是内存消耗增加。批次大小必须符合可用的硬件内存(如GPU VRAM)。超过这一限制将导致错误或大大降低训练速度。有些平台会提供优化内存使用的指导。
  • 模型性能和泛化:通过随机梯度下降(SGD)等技术,较小的批次规模可以在训练过程中为梯度估计引入更多噪声。这种噪声可以起到正则化的作用,有可能帮助模型避免损失景观中的急剧最小值,并更好地泛化到未见过的数据中,从而降低过度拟合的风险。不过,很小的批次会使训练不稳定。较大的批次可以提供更准确的梯度估计,但可能会收敛到不太理想的最小值,因此需要学习率预热等技术来保持稳定。

选择正确的批量大小

选择最佳批处理规模需要在计算效率、内存限制和模型泛化之间进行权衡。并不存在单一的 "最佳 "批处理规模;它通常取决于特定的数据集、模型架构和可用硬件。

  • 实验:通常需要经验测试。由于硬件内存对齐优化,常见的选择是 2 的幂次(如 16、32、64、128)。
  • 硬件限制:主要限制因素通常是GPU 内存。混合精度训练等工具和技术可以帮助适应更大的有效批量。
  • 数据集特征:数据集(如 COCO)的规模和性质会影响选择。
  • 自动批处理大小:有些框架(如Ultralytics YOLO)提供了一些实用工具,可以自动找到适合硬件内存的最大批次大小。您可以在我们的 "机器学习最佳实践和模型训练技巧 "指南中了解更多技巧。微调是更广泛的超参数调整过程的一部分。

批量大小与其他相关术语

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

  • 迭代:代表模型权重的一次更新。在标准训练循环中,一次迭代相当于处理一批数据并执行反向传播
  • 纪元代表对整个训练数据集的一次完整遍历。如果一个数据集有 1000 个样本,批量大小为 100,那么完成一个历元需要 10 次迭代(1000 / 100 = 10)。

实际应用

物体检测

物体检测任务中,例如由 Ultralytics YOLO模型执行的物体检测任务中,批量大小直接影响到训练过程中同时处理的图像数量。例如,在训练 YOLOv8这样的模型时,较大的批量大小(例如 32 或 64)可以显著加快有能力的硬件上每个历元的训练时间。不过,需要仔细监控GPU 内存。可以使用Ultralytics HUB 等平台对训练进行有效管理和跟踪。

图像分类

在训练图像分类模型(也许是在ImageNet 数据集上)时,批量大小会影响训练过程的稳定性和收敛性。研究人员可能会从 256 的批次大小开始,然后根据观察损失函数的行为和验证精度进行调整。对于具有复杂架构的模型,或者使用有限的硬件资源(如Google Colab环境)时,可能需要更小的批次。

阅读全部