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