Какие виды нормализации существуют (Batch, Layer, Instance, Group, RMSNorm)?
Ответ от нейросети
sobes.tech AI
Нормализация в нейросетях помогает стабилизировать и ускорить обучение, уменьшая внутреннее смещение распределения активаций. Основные виды нормализации:
-
Batch Normalization (BatchNorm) — нормализация по батчу. Вычисляет среднее и дисперсию по мини-батчу для каждого признака, затем масштабирует и сдвигает значения. Эффективна, но зависит от размера батча.
-
Layer Normalization (LayerNorm) — нормализация по слоям. Вычисляет статистики по всем нейронам одного слоя для каждого отдельного примера, не зависит от размера батча. Часто используется в RNN и трансформерах.
-
Instance Normalization (InstanceNorm) — нормализация по отдельному примеру и каналу, часто применяется в задачах обработки изображений, например, в стиле переноса.
-
Group Normalization (GroupNorm) — делит каналы на группы и нормализует внутри каждой группы. Работает стабильно при малых размерах батча.
-
RMSNorm (Root Mean Square Normalization) — нормализация по корню из среднего квадрата значений, без вычитания среднего. Упрощённая альтернатива LayerNorm, иногда даёт лучшие результаты в трансформерах.
Пример BatchNorm в PyTorch:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # батч из 32 примеров
output = batch_norm(x)