Почему Batch Normalization работает: борьба с ковариационным сдвигом и регуляризация 0:00
Batch Normalization (пакетная нормализация) — это ключевой метод ускорения обучения глубоких нейронных сетей. Первичная интуиция заключается в нормализации входных данных: приведение признаков $X$ к нулевому среднему и единичной дисперсии позволяет избежать ситуации, когда одни признаки варьируются от 0 до 1, а другие — от 1 до 1000. Это выравнивание диапазонов значений существенно ускоряет процесс обучения. Однако Batch Normalization делает нечто подобное не только на входном уровне, но и внутри скрытых слоев сети.
⚖️ Проблема ковариационного сдвига (Covariate Shift) 0:38
Одной из фундаментальных причин эффективности этого метода является его способность делать глубокие слои сети более устойчивыми к изменениям весов в предыдущих слоях.
- Мотивирующий пример: Если нейросеть обучалась на изображениях черных котов, а затем ей подают изображения цветных котов, модель может работать плохо, даже если целевая функция (определение кота) не изменилась. Это явление изменения распределения входных данных называется «ковариационным сдвигом» (covariate shift).
- Проблема в глубоких сетях: С точки зрения третьего скрытого слоя, он получает данные от предыдущих слоев, которые постоянно меняются по мере обновления параметров $W_1, B_1, W_2, B_2$. Эти постоянные колебания распределения значений вынуждают последующие слои непрерывно адаптироваться, что замедляет обучение.
Batch Normalization решает эту проблему, ограничивая диапазон, в котором могут «гулять» значения скрытых нейронов. Независимо от того, как меняются параметры в ранних слоях, метод гарантирует, что среднее и дисперсия значений в скрытых слоях остаются стабильными (например, с заданными параметрами $\beta$ и $\gamma$). Это «ослабляет связь» между тем, что должны делать ранние и поздние слои, позволяя каждому слою обучаться более независимо и эффективно.
🛡️ Эффект регуляризации 7:54
Помимо ускорения обучения, Batch Normalization обладает побочным эффектом легкой регуляризации.
- Природа шума: Поскольку среднее и дисперсия вычисляются не по всему набору данных, а по конкретному мини-батчу (например, из 64 или 128 примеров), эти оценки содержат шум.
- Сравнение с Dropout: Процесс масштабирования значений в Batch Normalization становится «шумным» из-за использования этих оценок. Подобно методу Dropout, который добавляет мультипликативный шум (обнуляя некоторые нейроны), Batch Normalization вносит небольшой шум в активации.
Этот шум заставляет последующие нейроны не полагаться слишком сильно на какой-то один конкретный нейрон, что немного снижает переобучение. Важный нюанс: при увеличении размера мини-батча уровень шума снижается, а значит, падает и регуляризирующий эффект. Тем не менее, эксперты DeepLearning.AI подчеркивают: Batch Normalization не стоит рассматривать как основной инструмент регуляризации — это прежде всего средство нормализации и ускорения обучения, а эффект регуляризации является лишь «непреднамеренным побочным действием».