Нормализация пакета

Тема дорожной карты · Глубокое обучение

BatchNorm стандартизует активации внутри mini-batch (по каналам для conv-слоёв), а затем масштабирует обучаемыми gamma и beta. Он стабилизирует обучение, позволяет повышать learning rate и слегка работает как регуляризатор. Нормализация пакета играет ключевую роль в улучшении стабильности обучения и ускорении процесса обучения нейронных сетей. Она помогает уменьшить эффекты переобучения и недообучения, а также улучшает общую производительность модели.

Как это работает

Нормализация пакета (FFN, MLP) — это простейшая глубокая сеть, состоящая из полностью соединённых слоев, последовательно расположенных с нелинейными активациями между ними. Скрытые слои учатся промежуточным представлениям, а глубина и ширина сети — это гиперпараметры, которые можно настраивать для достижения наилучших результатов. Инструменты стабилизации, такие как He/Xavier инициализация, BatchNorm и LayerNorm, а также Dropout, используются для предотвращения взрыва градиентов и улучшения стабильности обучения. FFN служит основным блоком внутри Transformer, CNN и других архитектур, где требуется нелинейная трансформация.

Когда применять

FFN является базовой архитектурой перед использованием CNN, RNN или Transformer. Для табличных данных MLP с хорошими фичами часто превосходит сложные архитектуры. Внутри больших сетей MLP-головы преобразуют представления в выходные данные (классификация, регрессия). Начните с узкой структуры (2-3 скрытых слоя, 64-256 единиц) и масштабируйте по мере необходимости. Обратите внимание на использование BatchNorm на маленьких батчах; если размер батча меньше 32, лучше использовать LayerNorm или GroupNorm.

Типичные ошибки

Типичные ошибки при использовании нормализации пакета включают использование глубокого и широкого MLP по умолчанию, когда достаточно двух слоев (что может привести к переобучению и замедлению обучения); нулевая инициализация весов (что приводит к идентичным градиентам и препятствует обучению модели); отсутствие нормализации в глубоких стеках (что приводит к взрыву или исчезновению градиентов); использование Dropout на этапе инференса (что требует переключения модели на режим eval() в PyTorch).

Связанные понятия

Полезные ресурсы