Изменения

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

Batch-normalization

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

Навигация