Слой пакетной нормировки
Слой нормализации партии. нормирует мини-пакет данных через все наблюдения для каждого канала независимо. Чтобы ускорить обучение сверточной нейронной сети и уменьшать чувствительность к сетевой инициализации, используйте слои нормализации партии. между сверточными слоями и нелинейностью, такой как слои ReLU.
После нормализации слой масштабирует вход с learnable масштабным коэффициентом γ и переключает его learnable смещением β.
создает слой нормализации партии.layer
= batchNormalizationLayer
создает слой нормализации партии. и устанавливает дополнительный layer
= batchNormalizationLayer(Name,Value
)TrainedMean
, TrainedVariance
\epsilon
, Параметры и инициализация, скорость обучения и регуляризация и Name
свойства с помощью одной или нескольких пар "имя-значение". Например, batchNormalizationLayer('Name','batchnorm')
создает слой нормализации партии. с именем 'batchnorm'
.
Операция нормализации партии. нормирует элементы xi входа первым вычислением среднего μB и отклонения σB2 по пространственному, время и размерности наблюдения для каждого канала независимо. Затем это вычисляет нормированные активации как
где ϵ является константой, которая улучшает числовую устойчивость, когда отклонение очень мало.
Допускать возможность, что входные параметры с нулевым средним значением и модульным отклонением не оптимальны для операций, которые следуют за нормализацией партии., операция нормализации партии. дальнейшие сдвиги и масштабируют активации с помощью преобразования
где смещение β и масштабный коэффициент, γ является настраиваемыми параметрами, которые обновляются во время сетевого обучения.
Чтобы сделать предсказания с сетью после обучения, нормализация партии. требует, чтобы фиксированное среднее значение и отклонение нормировали данные. Это фиксированное среднее значение и отклонение могут быть вычислены от обучающих данных после обучения или аппроксимированы во время использования обучения рабочие статистические расчеты.
Если 'BatchNormalizationStatistics'
опцией обучения является 'moving'
, затем программное обеспечение аппроксимирует статистику нормализации партии. во время обучения с помощью рабочей оценки и после обучения, устанавливает TrainedMean
и TrainedVariance
свойства к последним значениям движущихся оценок среднего значения и отклонения, соответственно.
Если 'BatchNormalizationStatistics'
опцией обучения является 'population'
, затем после сетевых учебных концов, проходы через данные программного обеспечения еще раз и наборы TrainedMean
и TrainedVariance
свойства к среднему значению и отклонению, вычисленному из целого обучающего набора данных, соответственно.
Слой использует TrainedMean
и TrainedVariance
нормировать вход во время предсказания.
[1] Иоффе, Сергей и Кристиан Сзеджеди. “Нормализация партии.: Ускорение Глубокого Сетевого Обучения путем Сокращения Внутреннего Ковариационного Сдвига”. Предварительно распечатайте, представленный 2 марта 2015. https://arxiv.org/abs/1502.03167.
trainNetwork
| trainingOptions
| reluLayer
| convolution2dLayer
| fullyConnectedLayer
| groupNormalizationLayer
| layerNormalizationLayer