🎯 Definicja

Funkcja aktywacji to funkcja matematyczna stosowana w sztucznych neuronach w sieciach neuronowych. Określa ona, czy dany neuron powinien być aktywowany (czyli przekazać sygnał dalej), transformując sumę ważoną wejść neuronu na sygnał wyjściowy. Wprowadza nieliniowość do modelu, co umożliwia sieciom głębokiego uczenia uczenie się złożonych zależności.

🔑 Kluczowe punkty

  • Funkcje aktywacji wprowadzają nieliniowość do sieci neuronowej – bez nich model działałby jak rozbudowany regresor liniowy.
  • Najpopularniejsze funkcje aktywacji to: ReLU, Sigmoid, Tanh, Leaky ReLU, Softmax.
  • Wybór funkcji aktywacji wpływa bezpośrednio na szybkość konwergencji, stabilność uczenia i możliwość reprezentacji złożonych funkcji.
  • Funkcje aktywacji mogą działać lokalnie (dla każdego neuronu) lub globalnie (np. Softmax dla całej warstwy).
  • W głębokich sieciach wybór odpowiedniej funkcji aktywacji jest kluczowy dla przeciwdziałania zanikającemu lub eksplodującemu gradientowi.

📚 Szczegółowe wyjaśnienie

Najczęściej stosowane funkcje aktywacji

NazwaWzór matematycznyZaletyWady
ReLUf(x) = max(0, x)szybkie obliczenia, eliminacja zanikającego gradientu”martwe neurony”, brak aktywacji dla x < 0
Sigmoidf(x) = 1 / (1 + e^(-x))interpretowalność jako prawdopodobieństwoproblem zanikającego gradientu, nasycenie
Tanhf(x) = tanh(x)wartości między -1 a 1, lepsze niż sigmoidnadal podatna na zanikanie gradientu
Leaky ReLUf(x) = x dla x>0, ax dla x<0rozwiązuje problem martwych neuronówwybór parametru a może być arbitralny
Softmaxf(xᵢ) = exp(xᵢ) / Σ exp(xⱼ)normalizuje wyjścia jako rozkład prawd.tylko dla warstw wyjściowych (klasyfikacja)

Po co jest funkcja aktywacji?

  • Symuluje sposób działania biologicznych neuronów.
  • Pozwala sieci na uczenie się nieliniowych relacji (np. XOR, złożone klasyfikacje).
  • Wprowadza różniczkowalność, umożliwiając działanie algorytmu backpropagation.
  • Umożliwia propagację gradientów przez wiele warstw (w połączeniu z normalizacją).

Wpływ na trening modelu

  • ReLU i jego warianty są obecnie standardem w ukrywanych warstwach sieci neuronowych.
  • Dla klasyfikacji wieloklasowej na końcu sieci stosuje się Softmax, a dla binarnej – Sigmoid.
  • Źle dobrana funkcja aktywacji może spowolnić lub uniemożliwić konwergencję modelu.

💡 Przykład zastosowania

W modelu konwolucyjnej sieci neuronowej (CNN), np. do rozpoznawania obrazów, stosuje się:

  • ReLU w warstwach ukrytych dla wydajności i redukcji problemu zaniku gradientu.
  • Softmax w warstwie wyjściowej, aby zwrócić prawdopodobieństwa przynależności do klas (np. „pies”, „kot”, „samochód”).

Przykładowy kod (PyTorch):

import torch.nn as nn

model = nn.Sequential(
    nn.Conv2d(3, 32, kernel_size=3),
    nn.ReLU(),
    nn.Flatten(),
    nn.Linear(32 * 28 * 28, 10),
    nn.Softmax(dim=1)
)

📌 Źródła

👽 Brudnopis

  • Funkcja aktywacji = kluczowy element sieci neuronowej.
  • Bez niej brak możliwości nauki nieliniowych zależności.
  • ReLU: najbardziej wydajna (prosta), ale może dezaktywować neuron.
  • Softmax: typowa dla warstwy wyjściowej (multi-class)
  • Sigmoid i Tanh coraz rzadziej używane ze względu na problemy gradientowe.
  • Głębokość sieci wymaga dobrze dobranej aktywacji ze względu na propagację gradientu.