术语表

批量标准化

利用批量规范化提升深度学习性能!了解这项技术如何提高人工智能模型的训练速度、稳定性和准确性。

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

了解更多

批量归一化(Batch Normalization是一种用于训练深度神经网络(DNN)的技术,可稳定学习过程并显著减少所需的训练历元数。由 Sergey Ioffe 和 Christian Szegedy 在 2015 年的论文《批量归一化》中提出Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift》一文中提出的,它解决了网络深层输入分布在训练过程中发生变化,从而导致收敛速度减慢的问题。通过对每一层的输入进行归一化,批量归一化有助于保持更稳定的分布,从而实现更快、更可靠的训练。

批量规范化如何工作

在训练过程中,"批量归一化 "会对每个小批量输入层的数据进行标准化处理。这意味着要调整数据,使其均值为零,标准差为一。具体来说,对于迷你批次中的每个特征,它都会计算出平均值和方差,并以此对特征进行归一化处理。然而,简单的归一化可能会限制图层的表征能力。为了解决这个问题,批归一化为每个特征引入了两个可学习的参数:比例参数(gamma)和移动参数(beta)。这些参数允许网络学习归一化输入的最佳比例和平均值,从而有效地让网络决定归一化是否有益以及有益的程度。在推理过程中,批量归一化会使用在训练过程中收集的汇总统计数据(如均值和方差的移动平均值),从而确保输出的确定性。

批量标准化的优势

批量归一化为训练深度学习模型提供了几个关键优势:

  • 更快的训练:它允许使用更高的学习率,大大加快了模型训练过程中的收敛速度
  • 稳定学习:通过减少内部协变量偏移(层输入分布的变化),可使学习过程更稳定、更可预测。这对深度网络尤其有帮助。
  • 正则化效果:批量归一化增加了轻微的正则化效果,有时可以减少对其他正则化技术(如Dropout)的需求。小批量统计引入的噪声起到了正则化的作用。
  • 降低对初始化的敏感度:采用批量归一化的网络通常对初始权重的敏感度较低,从而使初始化过程变得更容易。

应用与实例

批量归一化技术被广泛应用,尤其是在涉及卷积神经网络(CNN)的 计算机视觉任务中。

  1. 图像分类: ResNet 等架构在ImageNet 等基准测试中达到了最先进的准确度,这些架构在很大程度上依赖于卷积层后的批量归一化(Batch Normalization),以实现对深度网络的训练。Ultralytics 模型支持图像分类任务,在这些任务中,批量归一化有助于提高性能。
  2. 物体检测:模型,如 Ultralytics YOLO等模型在其骨干和颈部结构中采用了批量归一化技术。这有助于稳定训练,提高模型准确、快速检测物体的能力,这对自动驾驶汽车和实时监控等应用至关重要。

考虑因素和替代方案

批量归一化虽然非常有效,但其性能可能取决于批量大小;批量太小可能导致对批量统计数据的估计不准确。它在训练和推理阶段的表现也不尽相同,需要谨慎处理运行统计数据。层归一化(Layer Normalization)、实例归一化(Instance Normalization)和组归一化(Group Normalization)等替代方法可以解决其中的一些局限性,并在不同情况下使用,尤其是在递归神经网络(RNN)中或批量较小时。在一些流行的框架中可以找到实现方法,如 PyTorchTensorFlow.

总之,批量归一化仍是一项基本且被广泛采用的技术,它对现代深度学习模型的训练动态和性能产生了重大影响。

阅读全部