Normalization
Изучи, как нормализация улучшает обучение и точность моделей. Узнай о масштабировании Min-Max, стандартизации по Z-оценке и её роли в проектах Ultralytics YOLO26.
Нормализация — это фундаментальный метод предварительной обработки данных, который заключается в приведении числовых атрибутов к стандартному диапазону. В контексте машинного обучения (ML) наборы данных часто содержат признаки с разными масштабами — например, возраст (0–100) и уровень дохода (0–100 000). Если не устранить эти различия, они могут привести к тому, что алгоритм оптимизации будет смещён в сторону больших значений, что замедлит сходимость и ухудшит производительность. Нормализация данных позволяет инженерам обеспечить пропорциональный вклад каждого признака в итоговый результат, благодаря чему нейронные сети обучаются эффективнее.
Распространённые методы нормализации#
Существует несколько стандартных методов преобразования данных, каждый из которых подходит для определённых распределений и требований алгоритмов.
- Масштабирование Min-Max: Это наиболее интуитивно понятная форма нормализации. Она приводит данные к фиксированному диапазону, обычно [0, 1]. Для этого из каждого значения вычитается минимальное значение, а результат делится на диапазон (максимальное значение минус минимальное). Этот метод широко применяется в обработке изображений, где известно, что значения пикселей находятся в диапазоне от 0 до 255.
- Стандартизация по Z-оценке: Хотя этот метод часто используют как синоним нормализации, стандартизация непосредственно преобразует данные так, чтобы их среднее значение равнялось 0, а стандартное отклонение — 1. Это особенно полезно, когда данные подчиняются гауссову распределению, и необходимо для таких алгоритмов, как машины опорных векторов (SVM), предполагающих нормально распределённые данные.
- Логарифмическое масштабирование: Для данных, содержащих экстремальные выбросы или подчиняющихся степенному закону, логарифмическое преобразование позволяет сжать диапазон значений. Благодаря этому механизму инференса становится проще эффективно интерпретировать распределение, не допуская его смещения из-за резких всплесков очень больших значений.
Практические применения#
Нормализация — стандартный этап конвейеров высокопроизводительных систем ИИ в различных отраслях.
-
Компьютерное зрение (CV): В таких задачах, как обнаружение объектов и классификация изображений, цифровые изображения состоят из значений пикселей в диапазоне от 0 до 255. Передача этих больших целых чисел непосредственно в сеть может замедлить градиентный спуск. Стандартный этап предварительной обработки заключается в делении значений пикселей на 255.0 для их нормализации к диапазону [0, 1]. Это обеспечивает согласованные входные данные для продвинутых моделей, таких как YOLO26, и повышает стабильность обучения на платформе Ultralytics.
-
Анализ медицинских изображений: Медицинские сканы, например используемые в ИИ в здравоохранении, часто получают с разных аппаратов, имеющих разные шкалы интенсивности. Нормализация обеспечивает сопоставимость интенсивности пикселей на МРТ- или КТ-сканах у разных пациентов и оборудования. Такая согласованность критически важна для точного обнаружения опухолей, поскольку позволяет модели сосредоточиться на структурных аномалиях, а не на различиях в яркости.
Различие между связанными понятиями#
Важно отличать нормализацию от схожих терминов, связанных с предварительной обработкой и архитектурой глубокого обучения.
- В сравнении с пакетной нормализацией: Нормализация данных — это этап предварительной обработки, применяемый к исходному набору данных до его поступления в сеть. Пакетная нормализация, напротив, выполняется внутри сети между слоями на протяжении всего процесса обучения модели. Она нормализует выход предыдущего слоя активации, чтобы стабилизировать процесс обучения.
- В сравнении с аугментацией изображений: Нормализация изменяет масштаб значений пикселей, тогда как аугментация изменяет содержание или геометрию изображения (например, отражает, поворачивает изображение или изменяет его цвета), чтобы повысить разнообразие набора данных. Для аугментации используются такие инструменты, как 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()}")








