Встречается на собеседованиях • сегодня
Как работает Batch Normalization
Batch Normalization (BN) ускоряет обучение нейросетей, стабилизируя распределение входных данных для каждого слоя. Она нормализует активации по батчу, вычисляя среднее и дисперсию для каждого признака, затем масштабирует и сдвигает их с обучаемыми параметрами γ (масштаб) и β (сдвиг).
Формула:
Для батча ( B = {x_1, ..., x_m} ):
- Вычисляем среднее ( \mu_B = \frac{1}{m} \sum_{i=1}^m x_i )
- Дисперсию ( \sigma_B^2 = \frac{1}{m} \sum_{i=1}^m (x_i - \mu_B)^2 )
- Нормализуем: ( \hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} )
- Масштабируем и сдвигаем: ( y_i = \gamma \hat{x}_i + \beta )
Пример в PyTorch:
python
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 50),
nn.BatchNorm1d(50), # Для полносвязных слоев
nn.ReLU(),
nn.Linear(50, 10)
)Плюсы:
- Уменьшает internal covariate shift.
- Позволяет использовать больший learning rate.
- Работает как регуляризация (из-за шума от статистик по батчу).
Минусы:
- Зависит от размера батча (плохо работает для tiny batches).
- Усложняет архитектуру (доп. параметры γ и β).
Для inference используют скользящее среднее μ и σ, накопленные во время обучения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы