Понимать общую технику преобразования, используемую в глубоких нейронных сетях.
Вступление
Пакетная нормализация (BN) - это метод, с которым столкнулись бы многие специалисты по машинному обучению. Если вы когда-либо использовали сверточные нейронные сети, такие как Xception, ResNet50 и Inception V3, то вы использовали пакетную нормализацию.
В этой статье объясняется основная интуиция, лежащая в основе BN. А для тех, кто уже знаком с техникой BN, эта статья углубляется в алгоритм BN и объясняет ключевые компоненты.
Определение
Пакетная нормализация - это метод, который смягчает влияние нестабильных градиентов в глубоких нейронных сетях. BN вводит дополнительный уровень в нейронную сеть, которая выполняет операции с входными данными из предыдущего уровня.
Операция стандартизирует и нормализует входные значения. Затем входные значения преобразуются посредством операций масштабирования и сдвига.
Если это сбивает с толку, следующий раздел ниже пояснит эту технику.
Объяснение
Методика пакетной нормализации была представлена в 2015 году Кристианом Сегеди и Сергеем Иоффе в этой опубликованной статье.
Пакетная нормализация была выполнена как решение для ускорения фазы обучения глубоких нейронных сетей за счет введения внутренней нормализации входных значений на уровне нейронной сети.
Причина использования «пакета» в термине «пакетная нормализация» заключается в том, что нейронные сети обычно обучаются с упорядоченным набором данных за раз, этот набор или группа данных называется пакетом. Операция в методе BN выполняется для всего пакета входных значений, а не для одного входного значения.
Обычно в машинном обучении принято нормализовать входные данные перед передачей данных на входной уровень. Причина, по которой мы нормализуем, отчасти заключается в том, чтобы наша модель могла надлежащим образом обобщаться. Это достигается за счет обеспечения сбалансированности шкалы значений, а также сохранения и пропорциональности диапазона значений, несмотря на изменение шкалы значений.
Нормализация обычно выполняется для входных данных, но имеет смысл, чтобы поток внутренних данных в сети оставался нормализованным.
BN является внутренним средством нормализации входных значений, передаваемых между слоями нейронной сети. Внутренняя нормализация ограничивает ковариативный сдвиг, который обычно происходит с активациями внутри слоев.
Как упоминалось ранее, метод BN работает, выполняя серию операций с входными данными, поступающими на уровень BN. Ниже приведен фрагмент математической записи алгоритма BN для мини-пакета.
Математические обозначения на изображении выше могут показаться устрашающими, но есть основные важные выводы.
- Стандартизация входных данных
- Нормализация и изменение масштаба входных данных.
- Смещение входных данных.
Стандартизация - это операция, которая преобразует пакет входных данных, чтобы получить среднее значение, равное нулю, и стандартное отклонение, равное единице. В рамках алгоритма BN нам нужно вычислить среднее значение мини-партии, а затем - дисперсию. Дисперсия предоставляет информацию о стандартном отклонении; нам просто нужно извлечь квадратный корень из дисперсии.
Давайте разберем математические обозначения алгоритма и объясним процесс.
Эта первая операция вычисляет среднее значение входных данных в мини-партии. Результатом операции является вектор, содержащий среднее значение каждого входа.
‘m’ обозначает количество входов в мини-пакете.
«µ» относится к среднему значению.
«B» - это нижний индекс, относящийся к текущей партии.
‘xi’ - это экземпляр входных данных.
Среднее значение ('µ') пакета ('B') вычисляется как сумма нескольких входных экземпляров пакета и деление его на общее количество входы ('m').
В описанной выше операции отклонение входных данных (σ²) вычисляется путем возведения в квадрат стандартных отклонений входных данных. Чтобы вычислить стандартные отклонения, мы берем каждый входной экземпляр (Xi) в пределах текущего мини-пакета и вычитаем среднее значение (µB) мини-пакета, которое было вычислено в предыдущую операцию и возведите результат в квадрат.
Затем это значение возводится в квадрат для получения дисперсии (σ).
Теперь у нас есть все необходимые значения для центрирования нуля и нормализации входных данных. В приведенной выше операции мы подвергаем входные данные процессу стандартизации. Термины стандартизация и нормализация могут использоваться как синонимы. Между этими двумя терминами есть небольшая разница.
В приведенной выше операции среднее значение партии вычитается из каждого входного момента. Затем мы делим результат на значение сложения квадратного корня между значением стандартного отклонения текущего пакета и членом сглаживания (ε).
Член сглаживания (ε) обеспечивает численную стабильность внутри операции, останавливая деление на нулевое значение. Срок сглаживания обычно составляет 0,00005.
В последней операции происходит изменение масштаба и смещение входных значений. Результат этой операции - результат работы алгоритма BN для текущего мини-пакета.
В заключительной операции мы знакомимся с двумя новыми компонентами алгоритма BN. Компоненты - это векторы параметров, которые используются для масштабирования (γ) и сдвига (β) вектора, содержащего значения из предыдущих операций. Значения векторов параметров для масштабирования и сдвига являются обучаемыми параметрами. Во время обучения нейронной сети BN гарантирует, что изучаемые параметры являются оптимальными значениями, которые обеспечивают точную нормализацию каждого мини-пакета.
Трансформация BN - эффективный метод повышения производительности глубоких нейронных сетей.
Преимущества пакетной нормализации
- Включение метода пакетной нормализации в глубокие нейронные сети сокращает время обучения
- BN позволяет использовать более высокие темпы обучения, что сокращает время конвергенции при обучении нейронных сетей.
- Уменьшает общую проблему исчезающих градиентов
- Ковариальный сдвиг в нейронной сети снижен
Заключение
Алгоритм BN не так сложен, как может показаться.
Сложность реализации BN в нейронной сети абстрагируется за счет внедрения современных библиотек машинного обучения, таких как TensorFlow и PyTorch. Это делает реализацию BN в нейронной сети тривиальной задачей.
Понять, как работает алгоритм пакетной нормализации, по-прежнему стоит.