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