Sobes.tech
Middle — Senior
48

Какие виды нормализации существуют (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)