Изменения

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

Batch-normalization

496 байт добавлено, 09:14, 18 января 2019
Идея
Нормализация входного слоя нейронной сети обычно выполняется путем масштабирования данных, подаваемых в функции активации. Например, когда есть признаки со значениями от <tex>0</tex> до <tex>1</tex> и некоторые признаки со значениями от <tex>1</tex> до <tex>1000</tex>, то их необходимо нормализовать, чтобы ускорить обучение. Нормализацию данных можно выполнить и в скрытых слоях нейронных сетей, что и делает метод пакетной нормализации.
Предварительно, напомним, что такое '''пакет''' (англ. batch). Пакетный (батч) Возможны две реализации алгоритма градиентного спуска для обучения нейросетевых моделей: стохастический и пакетный. [[Стохастический градиентный спуск|Стохастический градиентный спуск]]<sup>[на 10.01.18 не создано]</sup> {{---}} реализация, в которой на каждой итерации алгоритма из обучающей выборки каким-то (случайным) образом выбирается только один объект. Пакетный (батч) {{---}} реализация градиентного спуска, когда на каждой итерации обучающая выборка просматривается целиком, и только после этого изменяются веса модели. Также существует "золотая середина" между стохастическим градиентном спуском и пакетным градиентном спуском {{---}} когда просматривается только некоторое подмножество обучающей выборки фиксированного размера (англ. batch-size). В таком случае такие подмножества принято называть мини-пакетом (англ. mini-batch). Здесь и далее, мини-пакеты будем также называть пакетом.
Пакетная нормализация уменьшает величину, на которую смещаются значения узлов в скрытых слоях (т.н. '''смещение [[Ковариация случайных величин|ковариации]]''' (англ. covariance shift)).
Анонимный участник

Навигация