Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Normalization

Нормализация масштабирует признаки или активации к общему диапазону, чтобы значения с отдельным диапазоном не доминировали. Разбираем min-max, z-оценку, L2 и нормализующие слои.

Нормализация — это приведение числовых значений к общей шкале, чтобы признаки не доминировали в модели только из-за используемых единиц измерения. При предобработке данных обычно каждый входной признак преобразуют к фиксированному диапазону, например [0, 1], или к нулевому среднему и единичной дисперсии перед обучением. Внутри нейронной сети слои нормализации, например пакетная нормализация, применяют тот же принцип к промежуточным активациям. Без нормализации признак, измеряемый тысячами, например доход, перевешивает признак, измеряемый единицами, например размер домохозяйства, при каждом вычислении расстояния и шаге градиентного спуска.

Распространённые методы нормализации#

  • Масштабирование по минимуму и максимуму: Преобразует каждый признак к диапазону [0, 1] по формуле (x − min) / (max − min). Одно экстремальное значение сжимает все остальные в узкий диапазон, поэтому этот метод подходит для признаков с известными фиксированными границами, например значений 8-битных пикселей, делённых на 255.
  • Стандартизация по Z-оценке: Вычитает из значения признака среднее и делит его на стандартное отклонение, получая среднее 0 и стандартное отклонение 1. Обычно это вариант по умолчанию для признаков без фиксированных границ.
  • Робастное масштабирование: Вычитает медиану и делит результат на межквартильный размах, поэтому несколько выбросов почти не влияют на масштабирование остальных значений.
  • Логарифмическое масштабирование: Применяет логарифм, часто log(1 + x), чтобы сжать признаки с тяжёлыми хвостами распределения, например цены, численность населения или количество просмотров, перед другими способами масштабирования.
  • Нормализация до единичного вектора (L2): Делит вектор каждого примера на его длину, чтобы норма каждого вектора равнялась 1. При применении к эмбеддингам косинусное сходство превращается в обычное скалярное произведение. Normalizer из scikit-learn выполняет эту операцию для каждого примера, что может удивить пользователей, ожидающих масштабирования каждого признака, как в MinMaxScaler.

Выбор подходящего метода зависит от того, что масштабируется и как распределены его значения:

Зачем нужна нормализация#

Методы, основанные на расстоянии, например метод k ближайших соседей (k-NN), кластеризация k-средних и метод опорных векторов с RBF-ядром, сравнивают исходные евклидовы расстояния, поэтому признак с наибольшим диапазоном определяет, какие точки считаются близкими. Модели на основе градиентного спуска быстрее обучаются на нормализованных входных данных: признаки с сильно различающимися масштабами вытягивают поверхность потерь в узкие долины, где градиентному спуску приходится делать небольшие шаги. Древовидные ансамбли, например случайные леса, за раз разделяют данные по порогу одного признака и получают те же разбиения при любом монотонном преобразовании масштаба. Пример масштабирования датасета Wine перед k-NN показывает, насколько это важно:

from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import MinMaxScaler, StandardScaler

# 13 chemical features on very different scales, from hue (about 0.5-1.7) to proline (about 280-1,680)
X, y = load_wine(return_X_y=True)

# k-NN compares raw distances, so unscaled proline dominates every distance
for name, scaler in [("none", "passthrough"), ("min-max", MinMaxScaler()), ("z-score", StandardScaler())]:
    # The pipeline fits the scaler on each training fold only, so no test statistics leak in
    model = make_pipeline(scaler, KNeighborsClassifier())
    accuracy = cross_val_score(model, X, y, cv=5).mean()
    print(f"scaling {name:8s} 5-fold accuracy: {accuracy:.3f}")

Без масштабирования k-NN достигает точности 0,691 accuracy, поскольку признак пролин с диапазоном около 1400 единиц перевешивает остальные 12 признаков при каждом вычислении расстояния. Масштабирование по минимуму и максимуму повышает точность до 0,950, а стандартизация по Z-оценке — до 0,949. Важно обучать масштабировщик внутри конвейера: если вычислить минимум, максимум, среднее или стандартное отклонение на всём датасете до разделения, информация из тестовой выборки попадёт в обучение. Это разновидность утечки данных.

Нормализация в компьютерном зрении#

Изображения нормализуются по каналам. Деление 8-битных значений пикселей на 255 переводит их в диапазон [0, 1], после чего многие классификационные бэкбоны вычитают среднее по каналам и делят на стандартное отклонение: ResNet-50 из torchvision, предобученная на ImageNet, ожидает средние значения (0.485, 0.456, 0.406) и стандартные отклонения (0.229, 0.224, 0.225). Подача в предобученную модель входных данных, нормализованных иначе, чем её обучающие данные, смещает все активации и снижает точность. Предобработка Ultralytics YOLO делит значения пикселей на 255 и не сдвигает их ни по среднему, ни по стандартному отклонению — как при обучении, так и при предсказании, поэтому YOLO26 всегда получает входные значения в диапазоне [0, 1].

Для медицинских изображений нужны правила, зависящие от модальности. КТ хранит интенсивность в единицах Хаунсфилда — физической шкале, в которой значение воздуха равно −1000, а воды — 0, поэтому для разных исследований подходят одни и те же статистические показатели. Широко используемый фреймворк сегментации nnU-Net ограничивает интенсивность КТ значениями 0,5-го и 99,5-го процентилей значений переднего плана по всем обучающим случаям, а затем применяет к ним стандартизацию по Z-оценке с использованием среднего и стандартного отклонения всего датасета. Интенсивность МРТ не имеет фиксированной физической шкалы и различается между сканерами, поэтому nnU-Net нормализует каждое МРТ-изображение отдельно.

  • Стандартизация: Распространённое название масштабирования по Z-оценке. В одних источниках и масштабирование по минимуму и максимуму, и по Z-оценке называют «нормализацией», в других «нормализацией» называют только масштабирование по минимуму и максимуму.
  • Аугментация данных: Изменяет содержимое или геометрию изображения, например отражает, обрезает или сдвигает цвета, чтобы разнообразить данные; нормализация же лишь изменяет масштаб значений.
  • Слои нормализации: Пакетная нормализация стандартизирует каждый канал по статистикам текущего мини-батча. Послойная нормализация стандартизирует признаки каждого примера независимо от размера батча и используется во всех трансформерах. После нормализации эти слои применяют обучаемые масштабирование и сдвиг.
  • RMSNorm: Упрощённый вариант послойной нормализации, который пропускает вычитание среднего и делит значения только на среднеквадратичное значение. Это слой нормализации в Llama от Meta и многих других больших языковых моделях.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения