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

Введение

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

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

Итак, что такое пакетная нормализация и почему она была предложена?

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

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

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

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

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

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

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

Paper Analysis — пакетная нормализация: ускорение обучения глубокой сети за счет уменьшения внутреннего ковариатного сдвига

Ссылка на статью: https://arxiv.org/abs/1502.03167

Постановка задачи

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

Математическая формулировка:
I = F2(F1(μ, θ1), θ2)

где
● F1 и F2 — преобразования.
● θ1 и θ2 — параметры, которые необходимо изучить для минимизации потерь.

Здесь F2 может быть подсетью, которая получает вход от F1.
Пусть x = F1(μ, θ1).

Тогда I = F2(x, θ2)

Предположим, что распределение ввода изменилось в точке x, распределение ввода в скрытые слои в точке F2 также изменится. Поэтому алгоритму обучения сначала необходимо будет адаптироваться к этому новому распределению, прежде чем применять сверточные преобразования.

Текущий подход

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

Нейронная сеть обучается быстрее, если все входные данные отбеливаются.
Отбеливание – это линейное преобразование с нулевым средним значением и единичной дисперсией.

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

Диаграмма архитектуры

В этой архитектуре входные данные сначала преобразуются с помощью линейного преобразования (Wx + b), а затем проходят через слой пакетной нормализации.

При пакетной нормализации среднее значение и дисперсия данных вычисляются для каждой мини-партии, а данные нормализуются путем вычитания среднего значения и деления на стандартное отклонение.

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

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

Алгоритмы

  • Каждая мини-партия производит оценки среднего значения и дисперсии каждой активации.
  • Нормализация входных данных для каждого слоя приводит к тому, что значение активации пакета теперь имеет нулевое среднее значение и единичную дисперсию.
  • Это гарантирует, что скрытые слои могут продолжать обучение на входных распределениях с меньшим ковариантным сдвигом, тем самым ускоряя обучение.
  • Но среднее значение и дисперсия сильно зависят от образцов партии. Таким образом, среднее значение и дисперсия калибруются путем введения двух обучаемых параметров для каждого нейрона, гамма и бета.
  • Здесь гамма и бета являются параметрами, и, как и другие параметры, они изучаются во время обучения. Выполняя описанный выше шаг, мы почти фиксируем распределение y.

  • Теперь все слои, которые получали x в качестве входных данных, получают BN(x) в качестве своих входных данных.
  • После обучения берутся среднее значение и дисперсия всех мини-пакетов и вычисляется скользящее среднее.
  • Затем эти параметры используются для расчета набора тестовых данных. Это гарантирует, что от мини-пакета больше ничего не зависит.

Экспериментальная установка

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

Пакетная нормализация набора данных MNIST

Была взята простая сеть с бинарным изображением 28x28 в качестве входных данных и 3 полносвязными скрытыми слоями со 100 активациями в каждом. Модель была обучена с использованием версии Стохастического градиентного спуска с импульсом с использованием размера мини-пакета 32.

Для ускорения сети параметры меняются следующим образом:

  • Удалить выпадение.
  • Уменьшите регуляризацию веса L2.
  • Ускорить снижение скорости обучения.
  • Удалить локальную нормализацию ответов
  • Тщательнее перемешивайте обучающие примеры.
  • Уменьшите фотометрические искажения.
  • Увеличьте скорость обучения.

Пакетная нормализация в наборе данных ImageNet

Пакетная нормализация была применена к новому варианту начальной сети, обученной на задаче классификации ImageNet.

Сеть имеет большое количество сверточных слоев и слоев пула, а также слой softmax для прогнозирования класса изображения из 1000 возможных.

  • Начало: сети с начальной скоростью обучения 0,0015.
  • BN-Baseline: То же, что и в начальной стадии с пакетной нормализацией перед каждой нелинейностью.
  • BN-x5: начальная скорость обучения увеличена в 5 раз до 0,0075.
  • BN-x30: начальная скорость обучения увеличилась в 30 раз, до 0,045.
  • BN-x5-sigmoid: использование сигмовидной функции активации вместо ReLU.

Полученные результаты

Результат набора данных MNIST

При пакетной нормализации для достижения той же точности потребовалось значительно меньше шагов.

Без пакетной нормализации в начале активация сильно колеблется. Это связано с тем, что при изучении всех параметров в скрытом слое в начале все склонно к смещению. Таким образом, при изменении параметра в слое изменяется все распределение.

Результат набора данных ImageNet

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

  • BN-x5 требуется в 14 раз меньше шагов, чем Inception, чтобы достичь точности 72,2 %.
  • BN-x30 требуется в 5 раз меньше шагов, чем Inception, чтобы достичь точности 72,2 %.
  • BN-x5-Sigmoid обеспечивает точность 69,8 % при пакетной нормализации.

ЗАКЛЮЧЕНИЕ

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

Основные выводы:

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

Вопросы без ответа:

  • В документе говорится о применении пакетного преобразования нормализации перед нелинейностью. Но что, если некоторые функции, полученные в результате свертки, могут быть отрицательными? Это может быть усечено нелинейностью после нормализации партии.
  • В нем рассказывается, как пакетная нормализация работает со сверточной нейронной сетью. Но почему это нельзя использовать с рекуррентными нейронными сетями, несмотря на то, что это ускоряет обучение?

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.