术语表

批量标准化

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

批量归一化(Batch Normalization)通常缩写为 BatchNorm,是深度神经网络中用于稳定和加速训练过程的一种技术。该技术由 Sergey Ioffe 和 Christian Szegedy 在2015 年的论文中提出,其工作原理是针对每个小批量数据对每一层的输入进行归一化。这样做的效果是减少所谓的 "内部协变量偏移",即在训练过程中,随着前几层参数的变化,每一层输入的分布也会发生变化。通过保持更稳定的输入分布,批归一化可以更快、更稳定地训练深度网络。

批量规范化如何工作

模型训练过程中,数据以称为批次的小组形式通过网络。批次归一化层通常插入卷积层或全连接层之后、激活函数之前,对每个批次执行两个主要步骤:

  1. 归一化:它计算当前批次中激活的平均值和方差。然后,它会使用这些统计数据对激活进行归一化处理,使其均值为 0,方差为 1。这一步骤可确保下一层的输入具有一致的规模。
  2. 缩放和移动:激活的正常化可能会限制该层的表达能力。为了解决这个问题,该层引入了两个可学习的参数--缩放因子(gamma)和移动因子(beta)。这些参数允许网络学习下一层输入的最佳比例和平均值,如果网络认为这样做是最好的,就可以有效地取消归一化。

推理过程中,模型处理的是单个示例而不是批次。因此,无法获得特定批次的均值和方差。取而代之的是,模型使用从整个训练数据集计算出的总均值和方差,这些均值和方差是在训练阶段计算并存储的。这确保了模型输出的确定性和一致性。

批量标准化的优势

深度学习模型中实施批量归一化具有几个关键优势:

  • 更快的训练:通过稳定输入分布,BatchNorm 可以使用更高的学习率,从而大大加快模型的收敛速度
  • 减少内部变量偏移:这是批量归一化设计要解决的主要问题。它可以缓解前几层参数变化导致后几层输入分布偏移,从而增加训练难度的问题。
  • 正则化效果:由于批量归一化是基于批量统计的,因此会给每个层的激活增加少量噪声。这种噪音是一种正则化,有助于防止过度拟合,并可减少对其他技术(如Dropout)的需求。
  • 减少对初始化的依赖:它降低了网络对初始权重的敏感度,使训练过程更加稳健。

实际应用

批量归一化是现代计算机视觉模型中几乎无处不在的组件,包括像Ultralytics YOLO 这样的先进架构。

  • 图像分类:ImageNet 等大型数据集上训练的模型中,批量归一化对于训练ResNet 等深度网络至关重要,它可以防止梯度消失等问题。这样就能在对照片中的物体进行分类等任务中获得更高的准确性
  • 医学图像分析:在训练肿瘤检测模型或从 MRI 或 CT 扫描中分割器官时,批量归一化可确保不同机器和患者的图像强度差异不会对训练产生负面影响。这将为医疗保健领域的人工智能提供更可靠、更强大的诊断工具。

相关概念和区别

将批量规范化与其他相关概念区分开来非常重要:

  • 数据归一化:一般数据归一化是在训练开始对输入数据进行的预处理步骤。相比之下,批量归一化是一个动态过程,在训练过程中发生在网络内部,对各层之间的激活进行归一化。
  • 其他归一化层:还有其他技术,如层归一化实例归一化组归一化。它们的主要区别在于归一化的范围。批量归一化(BatchNorm)是在批量维度上进行归一化,而层归一化(Layer Normalization)则是在单个训练实例的特征上进行归一化,使其与批量大小无关。这些替代方案通常用于NLP等领域或需要较小批量的情况。

考虑因素和实施

批量归一化的一个主要考虑因素是它对训练过程中迷你批量大小的依赖性。如果批量规模太小(如 1 或 2),性能就会下降,因为批量统计数据会成为对群体统计数据的噪声估计。标准的深度学习框架,如 PyTorch (torch.nn.BatchNorm2d)和 张量流 (tf.keras.layers.BatchNormalization)提供了稳健的实现方法。尽管有其他替代方案,批量归一化仍然是有效训练许多现代深度学习模型的基本技术。您可以使用以下平台管理和训练包含此类技术的模型 Ultralytics HUB.

加入 Ultralytics 社区

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

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