敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

批量归一化

通过批量归一化提升深度学习性能!了解这项技术如何提高 AI 模型的训练速度、稳定性和准确性。

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

批量归一化如何工作

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

  1. 归一化: 它计算当前批次中激活的均值和方差。然后,它使用这些统计数据来归一化激活,使其均值为零,方差为 1。此步骤确保下一层的输入处于一致的尺度上。
  2. 缩放和平移: 归一化激活可能会限制图层的表达能力。为了抵消这一点,该层引入了两个可学习的参数——一个缩放因子 (gamma) 和一个平移因子 (beta)。这些参数允许网络学习下一层输入的最佳尺度和均值,如果网络确定这是最佳选择,则可以有效地撤消归一化。

推理过程中,模型处理的是单个样本而不是批次。因此,无法获得特定于批次的均值和方差。相反,模型使用从整个训练数据集中计算出的聚合均值和方差,这些均值和方差在训练阶段进行计算和存储。这确保了模型输出的确定性和一致性。

批量归一化的优势

深度学习模型中实施批量归一化具有以下几个主要优点:

  • 更快的训练速度: 通过稳定输入分布,BatchNorm 允许使用更高的学习率,从而显著加快模型的收敛速度。
  • 减少内部协变量偏移: 这是批量归一化旨在解决的主要问题。它缓解了早期层的参数变化导致后续层的输入分布发生偏移的问题,从而使训练更加困难。
  • 正则化效果: 由于基于批次的统计信息,批量归一化会向每一层的激活添加少量噪声。这种噪声充当一种正则化形式,有助于防止过拟合,并可能减少对其他技术(如Dropout)的需求。
  • 降低对初始化的依赖性: 它使网络对初始权重的敏感度降低,从而使训练过程更加稳健。

实际应用

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

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

相关概念和区别

区分批量归一化与其他相关概念非常重要:

  • 数据归一化: 通用的 数据归一化 是在训练开始之前应用于输入数据的预处理步骤。相比之下,批量归一化是一个动态过程,它训练期间发生在网络内部,对层之间的激活进行归一化。
  • 其他归一化层: 还存在其他技术,如 Layer NormalizationInstance NormalizationGroup Normalization。关键区别在于归一化的范围。虽然 BatchNorm 跨批次维度进行归一化,但 Layer Normalization 跨单个训练样本的特征进行归一化,使其独立于批次大小。这些替代方案通常用于 NLP 等领域,或者当需要小批次大小时。

考虑因素与实施

批量归一化的一个关键考虑因素是它在训练期间对小批量大小的依赖性。如果批量大小太小(例如 1 或 2),性能可能会下降,因为批量统计数据会成为总体统计数据的噪声估计。像这样的标准深度学习框架 PyTorch (torch.nn.BatchNorm2d) 和 TensorFlow (tf.keras.layers.BatchNormalization)提供了强大的实现。尽管有其他替代方案,但批量归一化仍然是有效训练许多现代深度学习模型的基本技术。您可以使用诸如 Ultralytics HUB.

加入 Ultralytics 社区

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

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