Normalization
Исследуй, как нормализация улучшает обучение и точность моделей. Узнай о Min-Max масштабировании, Z-score стандартизации и их роли в проектах с 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()}")





