Слой нормализации слоя
Слой нормализации слоя нормализует мини-пакет данных по всем каналам для каждого наблюдения независимо. Чтобы ускорить обучение рецидивирующих и многослойных нейронных сетей перцептрона и уменьшить чувствительность к инициализации сети, используйте слои нормализации уровня после обучаемых слоев, таких как 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