Толковый словарь по нейросетям и искусственному интеллекту

Нормализация слоя

Layer Normalization

Категория термина


Нормализация слоя (Layer Normalization, LayerNorm) — это метод стабилизации и ускорения обучения нейросетей, при котором входные данные каждого слоя нормализуются по среднему и стандартному отклонению для каждого отдельного примера. В отличие от Batch Normalization, которая нормализует данные по батчу, Layer Normalization работает индивидуально для каждого входа, что делает её особенно эффективной для рекуррентных сетей (RNN, LSTM) и трансформеров, где размеры батча могут быть малыми или изменяться во времени.

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


⚙️ Математика:

Для входного вектора x=[x1,x2,...,xd]x = [x_1, x_2, ..., x_d] слоя размерности dd:

μ=1d∑i=1dxi,σ=1d∑i=1d(xi−μ)2+ϵ\mu = \frac{1}{d} \sum_{i=1}^{d} x_i, \quad \sigma = \sqrt{\frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 + \epsilon}

Нормализованный выход:

xi^=xi−μσ,yi=γxi^+β\hat{x_i} = \frac{x_i - \mu}{\sigma}, \quad y_i = \gamma \hat{x_i} + \beta

где γ\gamma и β\beta — обучаемые параметры масштаба и сдвига.


📌 Применение:

  1. Рекуррентные нейронные сети (RNN, LSTM, GRU)
    • Помогает справляться с зависимостями на длинных последовательностях и предотвращает взрыв градиентов.
  2. Трансформеры (Transformer, BERT, GPT)
    • LayerNorm применяется после каждого слоя внимания и feed-forward блока для стабильного обучения и генерации.
  3. Генеративные модели
    • Ускоряет сходимость при обучении VAE, GAN и других моделей.
  4. Малые батчи
    • В отличие от BatchNorm, LayerNorm эффективна при небольших размерах батча или при изменяющихся размерах входов.

🔍 Преимущества:

  • Независимость от размера батча
  • Стабилизация градиентов
  • Более быстрая и стабильная сходимость моделей
  • Простота интеграции в глубокие сети

⚙️ Пример кода (PyTorch):

python
import torch import torch.nn as nn layer_norm = nn.LayerNorm(normalized_shape=512) x = torch.randn(16, 512) # батч из 16 примеров, каждый размерности 512 output = layer_norm(x)

📈 Заключение:

Layer Normalization — это важная техника нормализации, которая позволяет нейросетям учиться быстрее и стабильнее, особенно в задачах с последовательными данными или генеративными моделями. Она стала стандартом для современных архитектур трансформеров и многих рекуррентных сетей, обеспечивая устойчивость обучения и улучшение качества моделей даже при сложных и динамичных данных.

🤔 Остались вопросы? Спросите ИИ

Используйте в запросе не более 500 символов.

📌 Последние запросы

  • Нарисуй мне игральную карту как из игры Hearthstone. На ней должен быть изображён молодой парень в о… 1 неделя назад
  • Как выбрать размер сглаживания? 2 недели назад
  • Сможешь поределить значение подписи 2 недели назад

📥 Скачать список терминов (646)

Форматы: TXT (список) | CSV (Excel) | JSON (код) | XML (данные) | MD (Markdown)