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