Толковый словарь по нейросетям и искусственному интеллекту
Батч-нормализация
Категория термина
Батч-нормализация — это метод нормализации входных данных для каждого слоя нейронной сети в пределах одного мини-батча. Она была предложена в 2015 году исследователями из Google (Ioffe и Szegedy) для ускорения и стабилизации обучения глубоких нейросетей. Основная идея заключается в том, чтобы нормализовать входы каждого слоя таким образом, чтобы они имели нулевое среднее значение и единичную дисперсию. Это снижает так называемый internal covariate shift — изменение распределения входов скрытых слоёв по мере обновления весов.
После нормализации вводится масштабирование и смещение с помощью обучаемых параметров γ (гамма) и β (бета), что позволяет сети при необходимости восстанавливать исходное распределение.
Формула (упрощённо):
Для входа xx из батча:
Вычисляется среднее и дисперсия:
μ=1m∑i=1mxi,σ2=1m∑i=1m(xi−μ)2\mu = \frac{1}{m} \sum_{i=1}^{m} x_i, \quad \sigma^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu)^2- x^i=xi−μσ2+ε\hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \varepsilon}}
Масштаб и сдвиг:
yi=γx^i+βy_i = \gamma \hat{x}_i + \beta
Преимущества:
- Ускоряет обучение за счёт стабилизации распределения входов.
- Позволяет использовать более высокие learning rate.
- Частично решает проблему исчезающего градиента.
- Может выступать как форма регуляризации и снижать потребность в Dropout.
Области применения:
- Используется практически во всех современных архитектурах CNN (например, ResNet, Inception), RNN и трансформерах (хотя в последних чаще применяют Layer Normalization).
- Эффективен в задачах компьютерного зрения, обработки речи и текста.
Пример:
В сверточной нейросети, предназначенной для классификации изображений, Batch Normalization может применяться после каждого свёрточного слоя, обеспечивая стабильную активацию перед передачей данных в следующий слой.
Альтернативы и развитие:
- Layer Normalization: нормализует по всем признакам одного объекта, используется в NLP и трансформерах.
- Instance Normalization: используется в генеративных сетях и задачах обработки изображений.
- Group Normalization: делит признаки на группы и нормализует в каждой из них — альтернатива для маленьких батчей.
Значение:
Batch Normalization произвела революцию в глубоком обучении, сделав возможным быстрое и надёжное обучение очень глубоких сетей. Этот простой, но мощный приём стал стандартной практикой в построении и обучении нейросетевых архитектур.