Sobes.tech
Middle+
14

Расскажите про Batch Normalization: что это такое и зачем нужно?

Companies where asked
AvitoAvito

Answer from AI

sobes.tech AI

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.