Изменения

Перейти к: навигация, поиск

Batch-normalization

39 байт добавлено, 13:14, 10 января 2019
Идея
Нормализация входного слоя обычно выполняется путем масштабирования данных, подаваемых в функции активации. Например, когда у нас есть признаки со значениями от 0 до 1 и некоторые признаки со значениями от 1 до 1000, то их необходимо нормализовать, чтобы ускорить обучение. То же самое можно сделать и для скрытых слоев нейронных сетей.
Нормализация батчей уменьшает величину, на которую смещаются значения узлов в скрытых слоях (т.н. '''смещение [[Ковариация случайных величин|ковариации]]''' (англ. covariance shift)). Проиллюстрируем смещение ковариации примером. Пусть , есть [[Глубокое обучение|глубокая нейронная сеть]], которая обучена определять находится ли на изображении роза. И нейронная сеть была обучена на изображении только красных роз. Теперь, если попытаться использовать обученную модель для обнаружения цветных роз, то, очевидно, результат будет неудовлетворительный. Обучающая и тестовая выборки содержат изображения роз, но немного отличаются. Другими словами, если модель обучена отображению из множества <tex>X</tex> в множество <tex>Y</tex> и если распределение элементов в <tex>X</tex> изменяется, то появляется необходимость обучить модель заново, чтобы "выровнять" распределение элементов в <tex>X</tex> и <tex>Y</tex>. Когда батчи содержат изображения, равномерно-распределенные на всем множестве, то смещение ковариации незначительно. Однако, когда батчи выбираются только из одного из двух подмножеств (в данном случае, красные розы и цветные розы), то смещение ковариации возрастает. Это довольно сильно замедляет процесс обучения модели. На Рисунке 1 изображена разница в распределениях.
Простой способ решить проблему смещения ковариации для входного слоя {{---}} это случайным образом перемешать данные перед созданием батчей. Но для скрытых слоев нейронной сети данный метод не подходит, так как распределение входных данных для каждого узла скрытых слоев изменяется каждый раз, когда происходит обновление параметров в предыдущем слое. Данная проблема называется '''внутренним смещением ковариации''' (англ. internal covariate shift). Для решения этой проблемы необходимо использовать маленький коэффициент скорости обучения и методы регуляризации. Но, для решения данной проблемы как раз и был придуман метод нормализация батчей.
210
правок

Навигация