ML Fundamentals

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

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер