Встречается на собеседованиях • сегодня

Как рассчитывается Batch Normalization

Batch Normalization (BN) стандартизирует входные данные внутри мини-батча, уменьшая внутренний сдвиг ковариаций (internal covariate shift). Формулы для BN:

  1. Вычисление среднего и дисперсии для каждого признака в батче:
    [
    \mu_B = \frac{1}{m}\sum_{i=1}^m x_i, \quad \sigma_B^2 = \frac{1}{m}\sum_{i=1}^m (x_i - \mu_B)^2
    ]
  2. Нормализация:
    [
    \hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}
    ]
  3. Масштабирование и сдвиг (learnable параметры (\gamma) и (\beta)):
    [
    y_i = \gamma \hat{x}_i + \beta
    ]

Пример в PyTorch:

python
import torch.nn as nn
bn = nn.BatchNorm1d(num_features=64)  # для 1D данных (например, embeddings)
output = bn(input_tensor)

Нюансы:

  • (\epsilon) добавляется для численной стабильности (~1e-5).
  • В режиме inference используются скользящие средние (\mu) и (\sigma^2), накопленные во время обучения.
  • BN применяется после линейных/сверточных слоев, но до активации (ReLU и т.д.).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы