Глоссарий

Пакетная нормализация

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Пакетная нормализация - это техника, используемая при обучении глубоких нейронных сетей (ГНС) для стабилизации процесса обучения и значительного сокращения количества необходимых эпох обучения. Ее ввели Сергей Иоффе и Кристиан Сегеди в своей работе 2015 года"Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift", она решает проблему, когда распределение входов в глубокие слои сети меняется в процессе обучения, замедляя сходимость. Нормализуя входы каждого слоя, Batch Normalization помогает поддерживать более стабильные распределения, что приводит к более быстрому и надежному обучению.

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

Во время обучения Batch Normalization стандартизирует входы в слой для каждой мини-партии. Это означает корректировку данных таким образом, чтобы их среднее значение было равно нулю, а стандартное отклонение - единице. Точнее, для каждого признака в мини-партии вычисляются среднее значение и дисперсия, которые используются для нормализации признака. Однако простая нормализация может ограничить репрезентативность слоя. Чтобы противостоять этому, пакетная нормализация вводит два обучаемых параметра для каждого признака: параметр масштаба (гамма) и параметр сдвига (бета). Эти параметры позволяют сети научиться оптимальному масштабу и среднему значению нормализованных входов, фактически позволяя сети самой решать, будет ли нормализация полезной и насколько. Во время вывода Batch Normalization использует агрегированную статистику (например, скользящие средние значения среднего и дисперсии), собранную во время обучения, что обеспечивает детерминированный вывод.

Преимущества пакетной нормализации

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

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

Применение и примеры

Пакетная нормализация широко используется, особенно в задачах компьютерного зрения, где задействованы конволюционные нейронные сети (CNN).

  1. Классификация изображений: Архитектуры вроде ResNet, которые достигают самой высокой точности в таких бенчмарках, как ImageNet, в значительной степени полагаются на пакетную нормализацию после конволюционных слоев, чтобы обеспечить обучение очень глубоких сетей. Модели Ultralytics поддерживают задачи классификации изображений, где BN способствует высокой производительности.
  2. Обнаружение объектов: Такие модели, как Ultralytics YOLO включают пакетную нормализацию в свои структуры "позвоночника " и "шеи". Это помогает стабилизировать обучение и улучшает способность модели точно и быстро обнаруживать объекты, что крайне важно для таких приложений, как автономные транспортные средства и наблюдение в реальном времени.

Соображения и альтернативы

Несмотря на высокую эффективность, производительность Batch Normalization может зависеть от размера партии; очень маленькие размеры партии могут привести к неточным оценкам статистики партии. Ее поведение также различается на этапах обучения и вывода, что требует тщательной работы с текущей статистикой. Такие альтернативы, как нормализация слоев, нормализация экземпляров и нормализация групп, устраняют некоторые из этих ограничений и используются в различных контекстах, особенно в рекуррентных нейронных сетях (RNN) или при небольших размерах партий. Реализации можно найти в таких популярных фреймворках, как PyTorch и TensorFlow.

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

Читать полностью