Batch Normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчу во время обучения. Она помогает стабилизировать и ускорить процесс обучения, уменьшая проблему внутреннего ковариатного сдвига (internal covariate shift), когда распределение входных данных для каждого слоя меняется по мере обновления параметров предыдущих слоев.
Что такое batch normalization?
Batch Normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчу во время обучения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Batch Normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчу во время обучения. Она помогает стабилизировать и ускорить процесс обучения, уменьшая проблему внутреннего ковариатного сдвига (internal covariate shift), когда распределение входных данных для каждого слоя меняется по мере обновления параметров предыдущих слоев.
Основная идея — для каждого мини-батча вычислить среднее и дисперсию активаций, затем нормализовать их, а после применить масштабирование и сдвиг с обучаемыми параметрами. Это позволяет сети быстрее сходиться и часто улучшает качество модели.
Пример на PyTorch:
import torch
import torch.nn as nn
# BatchNorm для 2D данных (например, изображений)
bn = nn.BatchNorm2d(num_features=64)
# Входной тензор с размерностью (batch_size, channels, height, width)
x = torch.randn(32, 64, 28, 28)
# Применение BatchNorm
output = bn(x)
Batch Normalization также действует как регуляризатор, снижая необходимость в других методах, например, Dropout.