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





