XYZNOT

Статьи · arXiv 1502.03167

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Опубликовано cs.LG arXivPDF

Читать с переводом и ИИ

Кратко в трёх строках

  1. 🎯 Обучение глубоких сетей замедляется из-за внутреннего ковариантного сдвига — непрерывного смещения распределений входов слоев, вызванного обновлением параметров предыдущих слоев.
  2. 🔧 Предложена Batch Normalization (BN) — архитектурный слой, который стандартизирует активации мини-батча до нулевого среднего и единичной дисперсии с последующим обучаемым аффинным масштабированием и сдвигом (γ и β).
  3. 📈 Достигает валидационной точности бейзлайна Inception в 72,2% в 14 раз быстрее и демонстрирует ошибку top-5 в 4,82% на тестовой выборке ImageNet в составе ансамбля.

Аннотация

Обучение глубоких нейронных сетей осложняется тем, что распределение входов каждого слоя меняется во время обучения по мере изменения параметров предыдущих слоев. Это замедляет оптимизацию, требуя более низких скоростей обучения и тщательной инициализации параметров, а также существенно затрудняет обучение моделей с насыщающимися нелинейностями. Мы называем это явление внутренним ковариантным сдвигом (internal covariate shift) и решаем проблему путем нормализации входов слоев. Сила нашего метода заключается в том, что нормализация становится частью архитектуры модели и выполняется для каждого обучающего мини-батча. Batch Normalization позволяет использовать значительно более высокие скорости обучения и менее строго подходить к инициализации. Она также действует как регуляризатор, в ряде случаев устраняя необходимость в Dropout. Примененная к современной модели классификации изображений, Batch Normalization достигает той же точности в 14 раз быстрее и значительно превосходит исходную модель. Используя ансамбль сетей с пакетной нормализацией, мы улучшили лучший опубликованный результат классификации на ImageNet, достигнув ошибки top-5 в 4,9% на валидации (и 4,8% на тесте), что превосходит точность человека-эксперта.

Оригинальная аннотация (англ.)

Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities. We refer to this phenomenon as internal covariate shift, and address the problem by normalizing layer inputs. Our method draws its strength from making normalization a part of the model architecture and performing the normalization for each training mini-batch. Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout. Applied to a state-of-the-art image classification model, Batch Normalization achieves the same accuracy with 14 times fewer training steps, and beats the original model by a significant margin. Using an ensemble of batch-normalized networks, we improve upon the best published result on ImageNet classification: reaching 4.9% top-5 validation error (and 4.8% test error), exceeding the accuracy of human raters.

Разбор статьи

Проблема и мотивация

Во время оптимизации глубоких сетей с помощью SGD изменение параметров ранних слоев меняет распределение входов для последующих слоев. Авторы называют это явление Internal Covariate Shift (внутренний ковариантный сдвиг).

Внутренний ковариантный сдвиг порождает две основные проблемы:

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

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

Ключевые идеи

  • Дифференцируемый слой нормализации: Вместо стандартизации активаций вне оптимизационного процесса нормализация встраивается прямо в архитектуру модели, что позволяет backpropagation учитывать зависимость между активациями слоя и статистиками мини-батча.
  • Покомпонентная нормализация: Вместо совместного многомерного обеления каждый скалярный признак нормализуется независимо до нулевого среднего и единичной дисперсии.
  • Сохранение репрезентативной емкости: Чтобы нормализация не ограничивала выразительную способность слоя (например, не переводила сигмоиду исключительно в линейный режим работы), вводятся обучаемые параметры (масштаб) и (сдвиг), позволяющие слою при необходимости восстановить тождественное преобразование.
  • Детерминированный инференс: Во время обучения статистики рассчитываются по каждому мини-батчу . Во время инференса статистики мини-батча заменяются фиксированными генеральными статистиками (вычисленными через скользящее среднее по обучающим батчам), что гарантирует детерминированный вывод для одиночных примеров.
  • Инвариантность к масштабу параметров: Масштабирование весов слоя удовлетворяет свойству , что означает: большие веса приводят к меньшим эффективным градиентам, предотвращая взрыв градиентов.

Метод (с ключевыми формулами)

Для мини-батча , соответствующего одной размерности активации:

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

Применение к слоям

  • Расположение: Применяется непосредственно перед нелинейностями: . Исходный свободный член (bias) исключается, поскольку вычитание среднего его нивелирует (его роль берет на себя ).
  • Сверточные слои: Чтобы сохранить трансляционную эквивариантность, нормализация применяется к картам признаков целиком, а не к отдельным пространственным точкам. Для размера батча и пространственного разрешения эффективный размер батча равен , а одна пара параметров разделяется между всеми элементами карты признаков.

Преобразование на инференсе

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

Результаты (с важнейшими показателями)

  • MNIST с сигмоидами: Сети с Batch Normalization сохраняли стабильные распределения активаций на протяжении всего обучения, ускоряя сходимость и достигая более высокой точности на тесте по сравнению с ненормализованными сетями.
  • Скорость обучения на ImageNet (одна сеть):
    • Базовая сеть Inception без нормализации достигла точности валидации 72,2% за шагов.
    • Baseline Inception с Batch Normalization достиг 72,2% за шагов.
    • С увеличенной в 5 раз скоростью обучения (BN-x5) модель достигла 72,2% за шагов — в 14 раз быстрее, показав итоговый максимум 73,0%.
    • При увеличении скорости обучения в 30 раз (BN-x30) сеть достигла максимальной точности 74,8% за шагов.
  • Насыщающиеся нелинейности: В то время как исходная Inception с сигмоидными активациями не смогла обучиться (оставаясь на уровне случайного угадывания ~0,1%), BN-x5-Sigmoid показала точность top-1 в 69,8%.
  • SOTA-ансамбль на ImageNet: Ансамбль из 6 сетей с батч-нормализацией показал ошибку top-5 на валидации 4,9% и 4,82% на тестовом сервере ILSVRC, превзойдя уровень человека.

Ограничения и открытые вопросы

  • Зависимость от размера батча: Поскольку нормализация опирается на выборочные статистики мини-батча, слишком маленькие размеры батчей могут ухудшать оценку среднего и дисперсии.
  • Рекуррентные сети: В работе рассматриваются полносвязные и сверточные архитектуры, а рекуррентные нейронные сети (RNN) упомянуты как открытая область, где ковариантный сдвиг также может быть критичен.
  • Теоретическое обоснование: Авторы предполагают, что Batch Normalization удерживает сингулярные числа якобианов слоев близкими к 1, однако строгое теоретическое доказательство поведения градиентов оставлено для будущих исследований.

Ключевые термины

Internal Covariate Shift
Смещение распределения активаций внутренних слоев сети в процессе обучения, вызванное обновлением параметров предыдущих слоев.
Batch Normalization
Механизм, стандартизирующий входы слоев в рамках мини-батча к нулевому среднему и единичной дисперсии с последующим масштабированием и сдвигом обучаемыми параметрами.
Scale and Shift Parameters (γ and β)
Обучаемые параметры для каждой активации, позволяющие восстановить выразительную способность сети, включая тождественное преобразование.
Whitening
Преобразование входных данных, обеспечивающее нулевое среднее, единичную дисперсию и взаимную некоррелированность признаков.
Batch Normalizing Transform
Дифференцируемый алгоритм, вычисляющий среднее и дисперсию по мини-батчу, нормализующий входы и применяющий обучаемое аффинное масштабирование и сдвиг.
Population Statistics
Агрегированные математическое ожидание и несмещенная дисперсия, накапливаемые в процессе обучения для фиксации параметров нормализации на этапе детерминированного инференса.
Feature Map Normalization
Применение нормализации совместно по элементам мини-батча и пространственным координатам, благодаря чему все активации одной карты признаков в сверточной сети делят общие статистики и аффинные параметры.

Вопросы

Где именно применяется Batch Normalization по отношению к активациям и сдвигам?

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

Чем отличается поведение Batch Normalization во время обучения и на инференсе?

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

Почему Batch Normalization позволяет использовать более высокий learning rate?

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

Может ли Batch Normalization заменить Dropout?

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

Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.

Читать с переводом и ИИ