Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Batch Normalization (Пакетная нормализация)

Узнайте, как пакетная нормализация стабилизирует модели глубокого обучения. Узнайте, как Ultralytics использует BatchNorm для ускорения обучения и повышения точности ИИ.

Пакетная нормализация, часто называемая BatchNorm, — это метод, используемый в глубоком обучении (DL) для стабилизации и ускорения обучения искусственных нейронных сетей. Введенный для решения проблемы внутреннего сдвига ковариат — когда распределение входов в слой непрерывно меняется по мере обновления параметров предыдущих слоев — BatchNorm стандартизирует входы в слой для каждого мини-пакета. Нормализуя входы слоя так, чтобы их среднее значение было равно нулю, а стандартное отклонение — единице, а затем масштабируя и сдвигая их с помощью обучаемых параметров, этот метод позволяет сетям использовать более высокие скорости обучения и снижает чувствительность к инициализации.

Как работает пакетная нормализация (Batch Normalization)

В стандартной сверточной нейронной сети (CNN) данные проходят через слои, каждый из которых выполняет преобразование. Без нормализации масштаб выходных значений может сильно варьироваться, что затрудняет алгоритму оптимизации поиск оптимальных весов. Нормализация партий обычно применяется непосредственно перед функцией активации (такой как ReLU или SiLU).

Процесс включает в себя два основных этапа во время обучения:

  1. Нормализация: слой вычисляет среднее значение и дисперсию активаций в пределах текущего размера партии. Затем он вычитает среднее значение партии и делит на стандартное отклонение партии.
  2. Масштабирование и сдвиг: чтобы сеть могла по-прежнему представлять сложные функции, вводятся два обучаемых параметра (гамма и бета). Они позволяют сети отменить нормализацию, если оптимальное распределение данных не является стандартным нормальным распределением.

Этот механизм действует как форма регуляризации, слегка снижая необходимость в других техниках, таких как слои Dropout, путем добавления небольшого количества шума к активациям во время обучения.

Основные преимущества обучения искусственному интеллекту

Интеграция пакетной нормализации в архитектуры, такие как ResNet или современные детекторы объектов, дает несколько явных преимуществ:

  • Более быстрая конвергенция: модели обучаются значительно быстрее, поскольку нормализация предотвращает слишком маленькие или слишком большие градиенты, эффективно борясь с проблемой исчезающего градиента.
  • Стабильность: это делает сеть менее чувствительной к конкретному выбору начальных весов и настройке гиперпараметров, что делает процесс обучения модели более устойчивым.
  • Улучшенная обобщаемость: сглаживая ландшафт оптимизации, BatchNorm помогает модели лучше обобщать невиданные тестовые данные.

Применение в реальном мире

Пакетная нормализация является основным элементом практически каждой современной системы компьютерного зрения (CV).

  1. Автономное вождение: в системах самоуправляемых автомобилей такие модели, как Ultralytics , обрабатывают видеокадры для detect пешеходов, транспортных средств и знаков. BatchNorm гарантирует, что уровни обнаружения объектов остаются стабильными независимо от изменений интенсивности освещения или погодных условий, сохраняя высокую среднюю точность (mAP).
  2. Медицинская визуализация: при обнаружении опухолей в медицинской визуализации данные сканирования могут значительно различаться между различными аппаратами МРТ или КТ. BatchNorm помогает нормализовать эти характеристики внутри системы, позволяя ИИ сосредоточиться на структурных аномалиях, а не на различиях в интенсивности пикселей, повышая точность диагностики в медицинских решениях на базе ИИ.

Нормализация партии против нормализации данных

Полезно отличать пакетную нормализацию от стандартной нормализации данных.

  • Нормализация данных — это этап предварительной обработки, который применяется к исходному набору данных (например, изменение размера изображений и масштабирование значений пикселей до 0-1) перед началом обучения. Для этого этапа часто используются такие инструменты, как Albumentations. .
  • Пакетная нормализация происходит внутри слоев нейронной сети во время самого процесса обучения. Она динамически корректирует внутренние значения сети по мере прохождения данных через нее.

Пример реализации

Фреймворки глубокого обучения, такие как PyTorch включают оптимизированные реализации пакетной нормализации. ВYOLO 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 для тонкой настройки моделей на пользовательских наборах данных, обеспечивая стабильность обучения даже при ограниченном объеме данных.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас