GELU — сглаженная нелинейность, которая масштабирует сигнал по вероятностной функции и обеспечивает мягкое подавление слабых активаций.
Определение
GELU (Gaussian Error Linear Unit) — это активационная функция, которая комбинирует линейное преобразование с вероятностной характеристикой нормального распределения. В отличие от ReLU, которая жёстко обрезает отрицательные значения, GELU масштабирует входной сигнал плавно, с учётом вероятности того, что данный элемент полезен для модели.
GELU стала стандартом в ранних трансформерных архитектурах, включая BERT и GPT-поколение до появления SwiGLU. Её плавный профиль хорошо подходит для глубоких сетей и улучшает устойчивость обучения.
Как работает
Основной принцип GELU — применение функции вида:
GELU(x) = x · Φ(x)
где Φ(x) — функция распределения стандартного нормального распределения. На практике применяется более быстрая аппроксимация:
GELU(x) ≈ 0.5 · x · (1 + tanh(√(2/π) · (x + 0.044715x³)))
Значения x около нуля слегка подавляются, а большие — проходят почти без изменений. Это создаёт мягкую нелинейность, которая облегчает распространение градиентов в глубоких трансформерах.
Где применяется
- Ранние трансформеры (BERT, GPT-2, T5-поколение).
- FFN-блоки моделей обработки текста.
- Нейросети анализа изображений и мультимодальных признаков.
- Системы с глубокими полносвязанными слоями.
- Модели, чувствительные к резким переходам активаций.
Практические примеры использования
В BERT GELU помогал стабилизировать обучение при большой глубине и сложных задачах маскированного моделирования. Благодаря мягкому подавлению негативных значений модель сохраняла способность использовать слабые признаки, которые ReLU бы обрезал.
В GPT-2 FFN-блоки использовали GELU для сглаживания градиентов и улучшенной генерации на длинных фрагментах текста.
В мультимодальных сетях GELU применяют для преобразования визуальных и аудио-признаков перед подачей в трансформерные блоки, где стабильность FFN критична.
Почему GELU долго была стандартом
GELU занимает промежуточное положение между резкими функциями (ReLU) и гладкими вероятностными моделями. Причины популярности:
- плавная нелинейность — отсутствие жёсткого отсечения значений;
- хорошие градиентные свойства — мягкая производная улучшает обучение;
- стабильность — минимальная вероятность взрывных активаций;
- совместимость — легко интегрируется в FFN и residual-структуры.
Однако с ростом глубины трансформеров и появлением gating-механизмов GELU был вытеснен более устойчивыми активациями вроде SwiGLU.
Вариации и родственные функции
- ReLU — более простая, но с жёстким отсечением;
- Swish — предшественник GELU по гладкости;
- GEGLU — сочетание GELU с gating;
- SwiGLU — современный стандарт в LLM;
- Mish — похожая мягкая нелинейность с другой формой.
Преимущества и ограничения
- Плюс: плавная активация без резких переходов.
- Плюс: устойчивое обучение глубоких моделей.
- Плюс: мягкая фильтрация слабых сигналов.
- Плюс: лучшее качество FFN по сравнению с ReLU.
- Минус: вычислительно дороже ReLU.
- Минус: уступает gating-блокам по выразительности.
- Минус: не оптимальна для очень глубоких трансформеров.
- Минус: нестабильна при низкой точности без внимательной инициализации.
Связанные термины
- Activation function
- ReLU
- Swish
- SwiGLU
- GEGLU
- Feed-forward network
- Transformer block