Почему Batch Normalization ускоряет обучение нейронных сетей

DeepLearning.AI 214 тыс. 11 мин 2 мин 25.08.2017
Главное

Почему Batch Normalization работает: борьба с ковариационным сдвигом и регуляризация 0:00

Batch Normalization (пакетная нормализация) — это ключевой метод ускорения обучения глубоких нейронных сетей. Первичная интуиция заключается в нормализации входных данных: приведение признаков $X$ к нулевому среднему и единичной дисперсии позволяет избежать ситуации, когда одни признаки варьируются от 0 до 1, а другие — от 1 до 1000. Это выравнивание диапазонов значений существенно ускоряет процесс обучения. Однако Batch Normalization делает нечто подобное не только на входном уровне, но и внутри скрытых слоев сети.

⚖️ Проблема ковариационного сдвига (Covariate Shift) 0:38

Одной из фундаментальных причин эффективности этого метода является его способность делать глубокие слои сети более устойчивыми к изменениям весов в предыдущих слоях.

Batch Normalization решает эту проблему, ограничивая диапазон, в котором могут «гулять» значения скрытых нейронов. Независимо от того, как меняются параметры в ранних слоях, метод гарантирует, что среднее и дисперсия значений в скрытых слоях остаются стабильными (например, с заданными параметрами $\beta$ и $\gamma$). Это «ослабляет связь» между тем, что должны делать ранние и поздние слои, позволяя каждому слою обучаться более независимо и эффективно.

🛡️ Эффект регуляризации 7:54

Помимо ускорения обучения, Batch Normalization обладает побочным эффектом легкой регуляризации.

Этот шум заставляет последующие нейроны не полагаться слишком сильно на какой-то один конкретный нейрон, что немного снижает переобучение. Важный нюанс: при увеличении размера мини-батча уровень шума снижается, а значит, падает и регуляризирующий эффект. Тем не менее, эксперты DeepLearning.AI подчеркивают: Batch Normalization не стоит рассматривать как основной инструмент регуляризации — это прежде всего средство нормализации и ускорения обучения, а эффект регуляризации является лишь «непреднамеренным побочным действием».

💬 Цитаты

«Batch norm reduces the problem of the input values changing it really causes these values to become more stable.»

Ведущий DeepLearning.AI 06:37

«I wouldn't really use batch norm as a regularizer that's really not the intent of batch norm.»

Ведущий DeepLearning.AI 10:36
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Batch Normalization
Техника нормализации активаций нейронной сети в каждом слое для ускорения сходимости.
Covariate Shift
Изменение распределения входных данных, которое заставляет модель подстраиваться под новые условия.
Mini-batch
Небольшая подгруппа обучающих примеров, используемая для одной итерации градиентного спуска.
Regularization
Методы предотвращения переобучения модели, снижающие ее зависимость от конкретных шумов данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Batch Normalization DeepLearning.AI Covariate Shift