Batch Normalization
Узнай, как пакетная нормализация стабилизирует модели глубокого обучения. Изучи, как Ultralytics YOLO26 использует BatchNorm для ускорения обучения и повышения точности ИИ.
Пакетная нормализация, часто называемая BatchNorm, — это метод, используемый в глубоком обучении (DL) для стабилизации и ускорения обучения искусственных нейронных сетей. Разработанная для решения проблемы внутреннего ковариатного сдвига — ситуации, при которой распределение входных данных слоя непрерывно изменяется по мере обновления параметров предыдущих слоёв, — BatchNorm стандартизирует входные данные слоя для каждого мини-батча. Нормализуя входные данные слоя так, чтобы их среднее значение равнялось нулю, а стандартное отклонение — единице, а затем масштабируя и смещая их с помощью обучаемых параметров, этот метод позволяет сетям использовать более высокие скорости обучения и снижает чувствительность к инициализации.
Как работает пакетная нормализация#
В стандартной свёрточной нейронной сети (CNN) данные проходят через слои, каждый из которых выполняет преобразование. Без нормализации масштаб выходных значений может сильно варьироваться, из-за чего алгоритму оптимизации трудно найти оптимальные веса. Пакетная нормализация обычно применяется непосредственно перед функцией активации, такой как ReLU или SiLU.
Процесс обучения включает два основных этапа:
-
Нормализация: слой вычисляет среднее значение и дисперсию активаций в текущем размере пакета. Затем он вычитает среднее значение пакета и делит результат на стандартное отклонение пакета.
-
Масштабирование и смещение: чтобы сеть по-прежнему могла представлять сложные функции, вводятся два обучаемых параметра — gamma и beta. Они позволяют сети отменить нормализацию, если оптимальное распределение данных не является стандартным нормальным распределением.
Этот механизм действует как форма регуляризации, немного снижая потребность в других методах, например в слоях Dropout, за счёт добавления небольшого количества шума к активациям во время обучения.
Ключевые преимущества при обучении ИИ#
Интеграция пакетной нормализации в такие архитектуры, как ResNet, или в современные детекторы объектов даёт несколько заметных преимуществ:
- Более быстрая сходимость: модели обучаются значительно быстрее, поскольку нормализация предотвращает слишком сильное уменьшение или увеличение градиентов, эффективно противодействуя проблеме затухающего градиента.
- Стабильность: сеть становится менее чувствительной к конкретному выбору начальных весов и настройке гиперпараметров, благодаря чему процесс обучения модели становится более устойчивым.
- Улучшенная обобщающая способность: сглаживая ландшафт оптимизации, BatchNorm помогает модели лучше обобщать результаты на ранее не встречавшиеся тестовые данные.
Практические применения#
Пакетная нормализация используется практически в каждой современной системе компьютерного зрения (CV).
-
Автономное вождение: в системах беспилотных автомобилей такие модели, как Ultralytics YOLO26, обрабатывают видеокадры для обнаружения пешеходов, транспортных средств и дорожных знаков. BatchNorm обеспечивает стабильность слоёв обнаружения объектов независимо от изменений интенсивности освещения или погодных условий, сохраняя высокую среднюю точность (mAP).
-
Медицинская визуализация: при выполнении обнаружения опухолей на медицинских изображениях данные сканирования могут значительно различаться в зависимости от используемого аппарата MRI или CT. BatchNorm помогает внутренне нормализовать эти признаки, позволяя ИИ сосредоточиться на структурных аномалиях, а не на различиях в интенсивности пикселей, что повышает точность диагностики в решениях ИИ для здравоохранения.
Пакетная нормализация и нормализация данных#
Полезно отличать пакетную нормализацию от стандартной нормализации данных.
- Нормализация данных — это этап предварительной обработки, применяемый к необработанному набору входных данных, например изменение размера изображений и масштабирование значений пикселей в диапазон 0–1, до начала обучения. Для этого этапа часто используются такие инструменты, как Albumentations.
- Пакетная нормализация выполняется внутри слоёв нейронной сети непосредственно в процессе обучения. Она динамически корректирует внутренние значения сети по мере прохождения через неё данных.
Пример реализации#
Фреймворки глубокого обучения, такие как PyTorch, включают оптимизированные реализации пакетной нормализации. В архитектурах Ultralytics YOLO эти слои автоматически интегрируются в свёрточные блоки.
Следующий фрагмент кода на Python показывает, как проверить модель и узнать, где в архитектуре расположены слои BatchNorm2d.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Print the model structure to view layers
# You will see 'BatchNorm2d' listed after 'Conv2d' layers
print(model.model)Понимание взаимодействия этих слоёв помогает разработчикам при использовании Ultralytics Platform для дообучения моделей на пользовательских наборах данных, обеспечивая стабильность обучения даже при ограниченном объёме данных.









