Что такое batch normalization?

Batch Normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчу во время обучения.

Короткий ответ

Что ответить на собеседовании

Batch Normalization — это техника нормализации входов каждого слоя нейронной сети по мини-батчу во время обучения. Она помогает стабилизировать и ускорить процесс обучения, уменьшая проблему внутреннего ковариатного сдвига (internal covariate shift), когда распределение входных данных для каждого слоя меняется по мере обновления параметров предыдущих слоев.

Подробный разбор

Ответ с пояснениями

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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее