Normalization
探索归一化如何改善模型训练和准确率。了解 Min-Max 缩放、Z-score 标准化及其在 Ultralytics YOLO26 项目中的作用。
归一化是数据预处理中的一项基础技术,涉及将数值属性重新缩放到标准范围内。在机器学习 (ML)中,数据集通常包含尺度各异的特征,例如年龄范围(0–100)与收入水平(0–100,000)。如果不加处理,这些差异可能导致优化算法偏向较大的数值,从而导致收敛速度变慢和性能不佳。通过对数据进行归一化,工程师可以确保每个特征都按比例对最终结果作出贡献,使神经网络能够更高效地学习。
常见的归一化技术#
有多种用于转换数据的标准方法,每种方法都适用于不同的分布和算法要求。
- 最小-最大缩放: 这是最直观的归一化形式。它将数据重新缩放到固定范围,通常为 [0, 1]。这种转换通过减去最小值,再除以取值范围(最大值减去最小值)来完成。它广泛用于图像处理,因为像素强度通常被限定在 0 到 255 之间。
- Z 分数标准化: 虽然标准化常与归一化互换使用,但标准化特指将数据转换为均值为 0、标准差为 1 的形式。当数据遵循高斯分布时,这种方法尤其有用;对于假设数据服从正态分布的算法(如支持向量机 (SVM)),它也是必不可少的。
- 对数缩放: 对于包含极端离群值或遵循幂律的数据,应用对数变换可以压缩数值范围。这使推理引擎能够更有效地解读分布,同时避免受到巨大数值峰值的偏斜影响。
实际应用#
归一化是各行业高性能 AI 系统处理流程中的标准步骤。
-
计算机视觉 (CV): 在目标检测和图像分类等任务中,数字图像由范围为 0 到 255 的像素值组成。将这些较大的整数直接输入网络可能会减慢梯度下降。标准的预处理步骤是将像素值除以 255.0,将其归一化到 [0, 1] 范围内。这种做法可确保高级模型(如 YOLO26)获得一致的输入,从而提高其在 Ultralytics Platform 上的训练稳定性。
-
医学图像分析: 医学扫描(例如用于医疗保健中的 AI 的扫描)通常来自强度尺度各不相同的不同设备。归一化可确保 MRI 或 CT 扫描中的像素强度在不同患者和设备之间具有可比性。这种一致性对于准确的肿瘤检测至关重要,使模型能够关注结构异常,而不是亮度差异。
区分相关概念#
区分归一化与深度学习中常见的类似预处理和架构术语非常重要。
- 与批归一化的区别: 数据归一化是在原始输入数据集进入网络之前应用的预处理步骤。相反,批归一化在网络各层之间内部运行,并贯穿模型训练过程。它会对前一个激活层的输出进行归一化,以稳定学习过程。
- 与图像增强的区别: 归一化改变的是像素值的尺度,而增强改变的是图像的内容或几何形状(例如翻转、旋转或改变颜色),以增加数据集的多样性。Albumentations 等工具用于数据增强,而归一化是一种数学缩放操作。
实现示例#
在计算机视觉中,归一化通常是处理流程中的第一步。以下 Python 示例演示了如何使用 NumPy 库手动归一化图像数据;在训练期间,Ultralytics YOLO26 数据加载器会自动执行这一过程。
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")








