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