Funkcja aktywacji to jeden z najważniejszych komponentów sieci neuronowej. Bez niej nawet najgłębsza sieć byłaby jedynie liniową transformacją danych — niezdolną do rozwiązywania złożonych problemów. Funkcja aktywacji wprowadza nieliniowość, dzięki której sieć może uczyć się skomplikowanych wzorców w danych.

Dlaczego potrzebujemy funkcji aktywacji?

Wyobraź sobie sieć neuronową bez funkcji aktywacji. Każda warstwa oblicza jedynie liniową transformację: y = Wx + b. Złożenie dwóch liniowych transformacji to... kolejna liniowa transformacja. Bez względu na liczbę warstw, cała sieć sprowadzałaby się do jednej operacji liniowej — równoważnej pojedynczemu perceptronowi.

Funkcja aktywacji „łamie" liniowość. Dzięki niej każda warstwa wnosi coś nowego — sieć z dwiema warstwami jest realnie potężniejsza niż sieć z jedną.

Twierdzenie o uniwersalnej aproksymacji (Cybenko, 1989) mówi, że sieć neuronowa z jedną warstwą ukrytą i nieliniową funkcją aktywacji może aproksymować dowolną ciągłą funkcję z dowolną dokładnością (przy wystarczającej liczbie neuronów). To fundamentalny wynik teoretyczny uzasadniający użycie funkcji aktywacji.

Ładowanie wizualizacji...

Przegląd najważniejszych funkcji aktywacji

1. Sigmoid (logistyczna)

Wzór: σ(z) = 1 / (1 + e⁻ᶻ)

Zakres: (0, 1)

Sigmoid przekształca dowolną wartość rzeczywistą w liczbę z przedziału (0, 1). Przy dużych dodatnich z → 1, przy dużych ujemnych z → 0. Wykres ma charakterystyczny kształt litery S.

Zalety:

  • Gładka i różniczkowalna — umożliwia backpropagation
  • Interpretowalna jako prawdopodobieństwo — idealna w warstwie wyjściowej klasyfikatorów binarnych
  • Historycznie ważna — dominowała w sieciach neuronowych do ~2012

Wady:

  • Zanikający gradient (vanishing gradient) — przy dużych |z| pochodna zbliża się do zera, blokując przepływ gradientów przez głębokie warstwy
  • Niesymetryczna — wyjścia zawsze dodatnie, co może spowalniać uczenie (wagi aktualizują się w jednym kierunku)
  • Kosztowna obliczeniowo — wymaga potęgowania (exp)

Kiedy używać: warstwa wyjściowa w klasyfikacji binarnej. Unikaj w warstwach ukrytych głębokich sieci.

2. Tanh (tangens hiperboliczny)

Wzór: tanh(z) = (eᶻ - e⁻ᶻ) / (eᶻ + e⁻ᶻ)

Zakres: (-1, 1)

Tanh jest „poprawioną" wersją sigmoida — symetryczna względem zera. Wyjścia mogą być ujemne, co oznacza, że średnia aktywacji jest bliższa zeru, co pomaga w uczeniu.

Zalety:

  • Symetryczna — wyjścia mogą być ujemne, lepsza dynamika gradientów
  • Silniejszy gradient niż sigmoid w okolicach z = 0

Wady:

  • Nadal cierpi na zanikający gradient (choć mniej niż sigmoid)
  • Kosztowna obliczeniowo

Kiedy używać: warstwy ukryte w sieciach RNN/LSTM. Rzadko w nowoczesnych CNN/transformerach.

3. ReLU (Rectified Linear Unit)

Wzór: ReLU(z) = max(0, z)

Zakres: [0, ∞)

ReLU to przełom, który umożliwił rewolucję głębokiego uczenia. Zasada jest banalna: jeśli wejście jest dodatnie — przepuść bez zmian; jeśli ujemne — wyzeruj.

Zalety:

  • Brak zanikającego gradientu (dla z > 0 pochodna = 1)
  • Ekstremalnie szybka — porównanie z zerem zamiast potęgowania
  • Rzadka aktywacja — część neuronów daje zero, co prowadzi do efektywniejszych reprezentacji
  • Umożliwia trenowanie bardzo głębokich sieci (setki warstw)

Wady:

  • Problem umierających neuronów (dying ReLU) — jeśli neuron zawsze otrzymuje ujemne wejścia, jego gradient wynosi 0 i nigdy się nie nauczy
  • Niesymetryczna — wyjścia zawsze ≥ 0

Kiedy używać: domyślny wybór dla warstw ukrytych w CNN i MLP. Najczęściej stosowana funkcja aktywacji.

4. Leaky ReLU

Wzór: LeakyReLU(z) = z jeśli z > 0, αz jeśli z ≤ 0 (typowo α = 0,01)

Zakres: (-∞, ∞)

Wariant ReLU rozwiązujący problem umierających neuronów — dla ujemnych wejść przepuszcza mały, niezerowy gradient (typowo 1% wartości).

Zalety:

  • Rozwiązuje problem dying ReLU
  • Szybka obliczeniowo

Wady:

  • Hiperparametr α wymaga dostrojenia
  • W praktyce nie zawsze lepsza od zwykłego ReLU

Warianty:

  • Parametric ReLU (PReLU) — α jest uczone podczas treningu
  • ELU — dla z < 0 używa krzywej eksponencjalnej: α(eᶻ - 1)

5. GELU (Gaussian Error Linear Unit)

Wzór: GELU(z) = z · Φ(z), gdzie Φ to dystrybuanta rozkładu normalnego

Zakres: (~-0,17, ∞)

GELU to gładka aproksymacja ReLU, która „miękko" wycisza wejścia zamiast ostro zerować. Dominuje w architekturach transformerów — BERT, GPT, Claude używają GELU.

Zalety:

  • Gładka — lepsza optymalizacja niż ReLU z ostrym „rogiem" w z = 0
  • Probabilistyczna interpretacja — neuron jest aktywowany proporcjonalnie do jego pozycji w rozkładzie
  • Empirycznie lepsza w transformerach

Wady:

  • Droższa obliczeniowo niż ReLU (choć w praktyce różnica jest marginalna)

Kiedy używać: transformery, modele językowe, modele wielomodalne.

6. Softmax

Wzór: softmax(zᵢ) = eᶻⁱ / Σⱼ eᶻʲ

Zakres: (0, 1), suma = 1

Softmax to nie tyle funkcja aktywacji pojedynczego neuronu, co transformacja wektora w rozkład prawdopodobieństwa. Każdy element wyjściowy jest dodatni, a ich suma wynosi 1.

Kiedy używać: warstwa wyjściowa w klasyfikacji wieloklasowej, mechanizm atencji w transformerach.

Porównanie — tabela zbiorcza

Funkcja Zakres Gradient Koszt Zastosowanie
Sigmoid (0, 1) Zanika Wysoki Wyjście binarne
Tanh (-1, 1) Zanika Wysoki RNN/LSTM
ReLU [0, ∞) Stabilny Niski CNN, MLP
Leaky ReLU (-∞, ∞) Stabilny Niski Wariant ReLU
GELU (~-0,17, ∞) Stabilny Średni Transformery
Softmax (0, 1) Średni Klasyfikacja wieloklasowa

Jak wybrać funkcję aktywacji?

Praktyczne reguły:

  1. Warstwy ukryte CNN/MLP → ReLU (domyślnie) lub Leaky ReLU (jeśli zauważysz dying neurons)
  2. Transformery / LLM → GELU
  3. RNN / LSTM → Tanh (wewnętrznie) + Sigmoid (bramki)
  4. Wyjście — klasyfikacja binarna → Sigmoid
  5. Wyjście — klasyfikacja wieloklasowa → Softmax
  6. Wyjście — regresja → brak aktywacji (liniowa)

W praktyce ReLU i GELU pokrywają ponad 90% zastosowań. Sigmoid i Tanh dominowały historycznie, ale w nowoczesnych głębokich sieciach pełnią rolę niszową (warstwy wyjściowe, bramki w LSTM).

SwiGLU i GeGLU — nowoczesne funkcje aktywacji w LLM

W modelach LLM z lat 2023-2026 (Llama 2/3/4, Mistral, PaLM, Gemini) coraz częściej stosowane są bramkowane warianty:

  • SwiGLU (Shazeer 2020) — kombinacja Swish i GLU (Gated Linear Unit). Używana w Llama 2/3/4, PaLM, Mistral, DeepSeek. Empirycznie przewyższa ReLU i GELU w pretrenowaniu dużych modeli.
  • GeGLU — GELU + GLU. Stosowana w T5, Gemini.

Kluczowa idea: bramkowanie (gating) pozwala modelowi wyuczyć się które informacje przepuszczać dalej. Koszt: więcej parametrów, ale znacząca poprawa jakości.

Podsumowanie

Funkcja aktywacji to „dusza" sieci neuronowej. Bez niej nie ma uczenia się złożonych wzorców. Ewolucja od sigmoida (lata 80.) przez ReLU (2012) po GELU (2016+) odzwierciedla rosnącą głębokość sieci i coraz wyższe wymagania dotyczące stabilności gradientów. Każda nowa generacja architektur przynosi nowe funkcje aktywacji — ale fundamentalna zasada pozostaje: nieliniowość pozwala sieci być czymś więcej niż sumą swoich części.