Слой нормализации слоя
Слой нормализации слоя нормализует мини-пакет данных по всем каналам для каждого наблюдения независимо. Чтобы ускорить обучение рецидивирующих и многослойных нейронных сетей перцептрона и уменьшить чувствительность к инициализации сети, используйте слои нормализации уровня после обучаемых слоев, таких как LSTM и полносвязные слои.
После нормализации слой масштабирует вход с усвояемым масштабным коэффициентом γ и сдвигается на выучиваемое смещение β.
создает слой нормализации слоя.layer = layerNormalizationLayer
устанавливает дополнительный layer = layerNormalizationLayer(Name,Value)Epsilon, Параметры и инициализация, Темп обучения и регуляризация, и Name свойства с использованием одной или нескольких пар "имя-значение". Для примера, layerNormalizationLayer('Name','layernorm') создает слой нормализации слоя с именем 'layernorm'.
Операция нормализации слоя нормализует элементы xi входа, сначала вычисляя среднюю μL и отклонение2 по пространственным, временным и канальным размерностям для каждого наблюдения независимо. Затем он вычисляет нормированные активации как
где ϵ является константой, которая улучшает числовую стабильность, когда отклонение очень мала.
Чтобы допустить возможность того, что входы с нулевым средним и единичным отклонением не оптимальны для операций, следующих за нормализацией слоя, операция нормализации слоя дополнительно смещает и масштабирует активации с помощью преобразования
где β смещения и γ масштабного коэффициента являются настраиваемыми параметрами, которые обновляются во время сетевого обучения.
[1] Ба, Джимми Лэй, Джейми Райан Кирос и Джеффри Э. Хинтон. «Нормализация слоя». arXiv preprint arXiv:1607.06450 (2016).
batchNormalizationLayer | convolution2dLayer | groupNormalizationLayer | reluLayer | trainingOptions | trainNetwork