Activation function (aktivačná funkcia)
Čo je activation function?
Activation function (v slovenskom preklade aktivačná funkcia) je matematická funkcia používaná v umelých neurónových sieťach, ktorá určuje, či sa neurón aktivuje a akú hodnotu odošle do ďalšej vrstvy siete. Aktivačná funkcia zavádza do modelu nelinearitu, čo umožňuje neurónovým sieťam učiť sa komplexné vzory a vzťahy v dátach.
Bez aktivačných funkcií by neurónová sieť fungovala ako jednoduchá lineárna regresia – bez ohľadu na počet vrstiev by dokázala modelovať len lineárne závislosti. Práve nelinearita aktivačných funkcií umožňuje hlbokým neurónovým sieťam aproximovať ľubovoľne zložité funkcie.
Typy aktivačných funkcií
V praxi sa používa niekoľko základných typov aktivačných funkcií, pričom každá má svoje špecifické vlastnosti a vhodné použitie:
- Sigmoid – transformuje vstup na hodnotu medzi 0 a 1, často sa používa vo výstupnej vrstve pre binárnu klasifikáciu
- Tanh (hyperbolický tangens) – podobná sigmoid funkcii, ale výstup je v rozsahu od -1 do 1
- ReLU (Rectified Linear Unit) – vracia 0 pre záporné hodnoty a nezmenený vstup pre kladné hodnoty, v súčasnosti najpopulárnejšia voľba pre skryté vrstvy
- Leaky ReLU – variant ReLU, ktorý pre záporné hodnoty vracia malú nenulovú hodnotu, čím rieši problém „mŕtvych neurónov“
- Softmax – používa sa vo výstupnej vrstve pre viactriednu klasifikáciu, výstupom sú pravdepodobnosti jednotlivých tried
Úloha aktivačnej funkcie v neuróne
Každý umelý neurón prijíma vstupy, ktoré sú vážené a sčítané. Tento vážený súčet následne prechádza cez aktivačnú funkciu, ktorá rozhodne o výstupe neurónu. Proces možno rozdeliť do niekoľkých krokov: vstupné signály sa vynásobia príslušnými váhami, výsledky sa sčítajú a k súčtu sa pripočíta bias (prahová hodnota). Výsledok tejto operácie sa použije ako vstup do aktivačnej funkcie.
…aktivačné funkcie sú inšpirované biologickými neurónmi, kde sa neurón „aktivuje“ až po prekročení určitého prahu stimulácie?
Výber správnej aktivačnej funkcie
Výber aktivačnej funkcie závisí od typu úlohy a pozície vrstvy v sieti. Pre skryté vrstvy hlbokých sietí sa štandardne používa ReLU alebo jej varianty, pretože urýchľujú trénovanie a zmierňujú problém miznúceho gradientu. Pre výstupné vrstvy je voľba daná typom úlohy – sigmoid pre binárnu klasifikáciu, softmax pre viactriednu klasifikáciu a lineárna aktivácia pre regresné úlohy.
Aktivačné funkcie majú aj svoje obmedzenia. Sigmoid a tanh trpia problémom saturácie pri extrémnych hodnotách, čo spomaľuje učenie. ReLU zase môže viesť k „mŕtvym neurónom“, ktoré sa prestanú aktualizovať. Tieto limitácie viedli k vývoju novších aktivačných funkcií ako GELU, Swish či Mish, ktoré sa používajú v moderných architektúrach vrátane transformerov.
Zdroje a odkazy
Použité zdroje:
- DeepLearning.AI – Neural Networks and Deep Learning: https://learn.deeplearning.ai/courses/neural-networks-deep-learning/
Odporúčané zdroje:
- Stanford CS231n – Convolutional Neural Networks for Visual Recognition: https://cs231n.stanford.edu
Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.