利用批量规范化提升深度学习性能!了解这项技术如何提高人工智能模型的训练速度、稳定性和准确性。
批量归一化(Batch Normalization)通常缩写为 BatchNorm,是深度神经网络中用于稳定和加速训练过程的一种技术。该技术由 Sergey Ioffe 和 Christian Szegedy 在2015 年的论文中提出,其工作原理是针对每个小批量数据对每一层的输入进行归一化。这样做的效果是减少所谓的 "内部协变量偏移",即在训练过程中,随着前几层参数的变化,每一层输入的分布也会发生变化。通过保持更稳定的输入分布,批归一化可以更快、更稳定地训练深度网络。
在模型训练过程中,数据以称为批次的小组形式通过网络。批次归一化层通常插入卷积层或全连接层之后、激活函数之前,对每个批次执行两个主要步骤:
在推理过程中,模型处理的是单个示例而不是批次。因此,无法获得特定批次的均值和方差。取而代之的是,模型使用从整个训练数据集计算出的总均值和方差,这些均值和方差是在训练阶段计算并存储的。这确保了模型输出的确定性和一致性。
在深度学习模型中实施批量归一化具有几个关键优势:
批量归一化是现代计算机视觉模型中几乎无处不在的组件,包括像Ultralytics YOLO 这样的先进架构。
将批量规范化与其他相关概念区分开来非常重要:
批量归一化的一个主要考虑因素是它对训练过程中迷你批量大小的依赖性。如果批量规模太小(如 1 或 2),性能就会下降,因为批量统计数据会成为对群体统计数据的噪声估计。标准的深度学习框架,如 PyTorch (torch.nn.BatchNorm2d
)和 张量流 (tf.keras.layers.BatchNormalization
)提供了稳健的实现方法。尽管有其他替代方案,批量归一化仍然是有效训练许多现代深度学习模型的基本技术。您可以使用以下平台管理和训练包含此类技术的模型 Ultralytics HUB.