Знаете ли вы, что такое нормализация, до того, как узнали, что такое пакетная нормализация?

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

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

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

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

где x : выходные данные скрытого слоя, \mu: вектор среднего значения, \sigma : вектор стандартного отклонения, \gamma : обучаемый коэффициент масштабирования, \beta : обучаемый коэффициент смещения. Причина применения коэффициента масштабирования и коэффициента смещения заключается просто в том, что мы не хотим, чтобы все выходные данные нормы партии имели точно такое же среднее значение = 0 и стандартное отклонение = 1.

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

Где его применить?

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

А во время тестирования?

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

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

Пакетная норма, есть хорошие вещи?

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

На каких вещах нужно сосредоточиться ? Кроме того, улучшенная норма партии?

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

Итак, каковы методы улучшения производительности норм партии? Автор из Журнала предложил четыре пути улучшения нормы партии.

  1. Вместо применения статистики последней мини-партии во время тестирования предлагается попробовать средневзвешенную статистику между данными последней мини-партии и данными скользящего среднего.
  2. С помощью нормализации фантомных пакетов.
  3. Применяя уменьшение веса к изучаемым параметрам нормы партии, т. Е. Коэффициенту масштабирования, \gamma , и коэффициенту смещения, \beta. (Однако эффект незначителен.)
  4. Сочетание групповой и пакетной нормализации.

Любые подробности о выводах и пояснениях можно найти в журнале, прикрепленном выше.

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