Пакетный слой нормализации
Пакетный слой нормализации нормирует каждый входной канал через мини-пакет. Чтобы ускорить обучение сверточных нейронных сетей и уменьшать чувствительность к сетевой инициализации, используйте пакетные слои нормализации между сверточными слоями и нелинейностью, такой как слои ReLU.
Слой сначала нормирует активации каждого канала путем вычитания мини-пакетного среднего значения и деления на мини-пакетное стандартное отклонение. Затем слой переключает вход learnable смещением β и масштабирует его learnable масштабным коэффициентом γ.
создает пакетный слой нормализации.layer = batchNormalizationLayer
создает пакетный слой нормализации и устанавливает дополнительную Пакетную Нормализацию, Параметры и Инициализацию, Изучите Уровень и Регуляризацию и layer = batchNormalizationLayer('Name',Value)Name свойства с помощью пар "имя-значение". Например, batchNormalizationLayer('Name','batchnorm') создает пакетный слой нормализации с именем 'batchnorm'. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.
Пакетная нормализация нормирует свои входные параметры xi первым вычислением среднего μB и отклонения σB2 по мини-пакету и по каждому входному каналу. Затем это вычисляет нормированные активации как
Здесь, ϵ (свойство Epsilon) улучшает числовую устойчивость, когда мини-пакетное отклонение очень мало. Допускать возможность, что входные параметры с нулевым средним значением и модульным отклонением не оптимальны для слоя, который следует за пакетным слоем нормализации, пакетный слой нормализации дальнейшие сдвиги и масштабирует активации как
Здесь, смещение β и масштабный коэффициент γ (Offset и Scale свойства), learnable параметры, которые обновляются во время сетевого обучения.
Когда сетевое обучение заканчивается, пакетный слой нормализации вычисляет среднее значение и отклонение по полному набору обучающих данных и хранит их в TrainedMean и TrainedVariance свойства. Когда вы используете обучивший сеть, чтобы сделать прогнозы на новых изображениях, слой использует обученное среднее значение и отклонение вместо мини-пакетного среднего значения и отклонение, чтобы нормировать активации.
[1] Иоффе, Сергей и Кристиан Сзеджеди. "Пакетная нормализация: Ускорение глубокого сетевого обучения путем сокращения внутреннего ковариационного сдвига". предварительно распечатайте, arXiv:1502.03167 (2015).
convolution2dLayer | fullyConnectedLayer | reluLayer | trainNetwork | trainingOptions