Sobes.tech
Middle
21

Что такое BatchNorm?

Компании, где спрашивали
Магнит
АТОМ

Ответ от нейросети

sobes.tech AI

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

Основная идея — для каждого признака в мини-батче вычислить среднее и стандартное отклонение, затем нормализовать данные, а после применить масштабирование и смещение с обучаемыми параметрами:

$$\hat{x} = \frac{x - \mu_{batch}}{\sqrt{\sigma_{batch}^2 + \epsilon}}$$ $$y = \gamma \hat{x} + \beta$$

где $\mu_{batch}$ и $\sigma_{batch}^2$ — среднее и дисперсия по батчу, $\gamma$ и $\beta$ — параметры масштаба и смещения, обучаемые вместе с сетью.

BatchNorm помогает:

  • Ускорить сходимость обучения
  • Позволяет использовать большие значения learning rate
  • Снижает необходимость в других формах регуляризации

Пример использования в PyTorch:

import torch
import torch.nn as nn

batch_norm = nn.BatchNorm1d(num_features=100)  # для 1D данных с 100 признаками
input = torch.randn(32, 100)  # батч из 32 примеров
output = batch_norm(input)

Таким образом, BatchNorm — важный инструмент для улучшения качества и скорости обучения нейросетей.