activation function
Нелинейная функция в нейросети, позволяющая моделировать сложные зависимости.
Что такое activation function
Activation function (функция активации) — нелинейная функция, применяемая к выходам линейного преобразования в нейросети. Без нелинейности стек линейных слоёв сворачивается в одно линейное преобразование — модель теряет выразительность.
Основные функции активации
ReLU (Rectified Linear Unit): max(0, x) — просто обнуляет отрицательные значения. Быстро, но страдает от «умирания нейронов» (dead neurons).
GeLU (Gaussian Error Linear Unit): сглаженная версия ReLU, стандарт в BERT, GPT-2/3/4:
GeLU(x) = x × Φ(x) // где Φ — функция стандартного нормального распределения
SiLU / Swish: x × sigmoid(x) — используется в Llama, Mistral.
SwiGLU: разновидность GLU (Gated Linear Unit) на основе SiLU. Стандарт для современных LLM (Llama, PaLM, Mistral):
SwiGLU(x, W, V, b, c) = SiLU(xW + b) ⊗ (xV + c)
Функции активации в FFN трансформера
Feedforward layer в современных LLM использует SwiGLU:
FFN(x) = SwiGLU(x, W_1, W_2) × W_3
Это требует трёх матриц весов вместо двух (как в классическом FFN с ReLU), что увеличивает размер FFN при том же числе параметров.
Сравнение
| Функция | Где используется | Диапазон |
|---|---|---|
| ReLU | Ранние сети, CNN | [0, +∞) |
| GeLU | BERT, GPT-2/3 | ≈ (-0.17, +∞) |
| SiLU/Swish | Llama 2, Mistral | ≈ (-0.28, +∞) |
| SwiGLU | Llama 3, PaLM, Gemma | — |
Связанные термины
- feedforward layer — где применяется activation function
- трансформер — архитектура с GeLU/SwiGLU
- hidden state — активации, преобразуемые через activation function
Готовы запустить GPU-задачу?
Запустить GPU-сервер