Normalization
探索归一化如何改善模型训练和准确性。学习最小-最大缩放、Z-分数标准化及其在 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()}")





