Встречается на 5% собеседований по AI Engineer
Что такое Batch Normalization
Batch Normalization (BN) — это техника ускорения обучения нейронных сетей, которая нормализует входные данные для каждого слоя по мини-батчам. Она уменьшает внутренний ковариационный сдвиг (изменение распределения активаций), стабилизируя обучение и позволяя использовать большие learning rates.
Как работает:
- Для каждого батча вычисляется среднее и дисперсия по каждому признаку.
- Данные нормализуются:
(x - μ) / sqrt(σ² + ε). - Вводится обучаемые параметры масштаба (
γ) и сдвига (β), чтобы сеть могла "отменить" нормализацию, если это полезно.
Пример в PyTorch:
python
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 50),
nn.BatchNorm1d(50), # BN для полносвязного слоя
nn.ReLU(),
nn.Linear(50, 10)
)Плюсы:
- Ускоряет сходимость
- Позволяет использовать более высокие learning rates
- Снижает чувствительность к инициализации весов
Минусы:
- Увеличивает вычислительные затраты
- Может ухудшить работу на маленьких батчах (т.к. оценка статистик становится неточной)
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы