Aktivační funkce je matematická funkce v neuronové síti, která určuje, jaký výstup pošle neuron dál. Neuron nejdříve vezme vstupy, vynásobí je vahami, přičte bias a výslednou hodnotu předá právě aktivační funkci. Ta rozhodne, jak silný signál bude pokračovat do dalších částí modelu. Bez aktivačních funkcí by neuronové sítě neuměly dobře zachycovat složité vztahy v datech a jejich schopnosti by byly výrazně omezené.
Na první pohled může pojem „aktivační funkce“ znít jako detail z matematiky, který běžný uživatel AI nepotřebuje znát. Ve skutečnosti jde ale o jeden z klíčových prvků, díky kterému neuronové sítě nejsou jen obyčejným skládáním jednoduchých výpočtů. Aktivační funkce pomáhá modelu pracovat s tím, že skutečná data nejsou lineární, pravidelná ani snadno popsatelná několika ručně napsanými pravidly.
Právě díky aktivačním funkcím mohou neuronové sítě lépe rozpoznávat obraz, pracovat s jazykem, analyzovat zvuk, vyhodnocovat vzory v datech nebo generovat text. Nejde tedy o okrajový pojem. Pokud chcete pochopit, jak funguje neuron, neuronová síť, deep learning nebo velký jazykový model, aktivační funkce do tohoto základu patří.
Co je aktivační funkce
Aktivační funkce je matematická funkce, která se používá uvnitř umělého neuronu. Jejím úkolem je upravit výsledek předchozího výpočtu a převést ho na výstup neuronu.
Umělý neuron obvykle nejdříve přijme několik vstupů. Každý vstup má určitou váhu, která říká, jak moc je pro výsledek důležitý. K váženému součtu vstupů se přičte bias, tedy pomocná hodnota posouvající výsledek výpočtu. Teprve potom přichází aktivační funkce.
Zjednodušený zápis může vypadat takto:
výstup neuronu = aktivační funkce(vstupy × váhy + bias)
Aktivační funkce tedy není samostatný model ani samostatná inteligence. Je to část výpočtu uvnitř neuronové sítě.
Proč se jí říká aktivační funkce
Název vychází z představy, že neuron může být v určité míře „aktivovaný“. U starších a jednodušších modelů se často pracovalo s představou, že neuron buď vyšle signál, nebo nevyšle. Moderní neuronové sítě jsou složitější, ale základní intuice zůstává podobná.
Aktivační funkce určuje, jak silně bude neuron reagovat na vstupy. Někdy výstup potlačí, jindy ho propustí dál, případně ho převede do určitého rozsahu hodnot. Nejde ale o vědomé rozhodování. Je to matematická úprava čísla.
Proto je přesnější říct, že aktivační funkce neuronu nedává „myšlenku“, ale upravuje signál, který neuron předává dál.
Proč je aktivační funkce důležitá
Bez aktivačních funkcí by neuronová síť měla zásadní problém. I kdyby měla více vrstev, pořád by se z velké části chovala jako jeden složitější lineární výpočet. To by znamenalo, že by neuměla dobře zachycovat složité vzory.
Skutečný svět ale není jednoduchý lineární vztah. Význam věty nevzniká jen prostým součtem slov. Obličej na fotografii není jen jedna přímá kombinace pixelů. Chování zákazníka v e-shopu se nedá vždy vysvětlit jedním jednoduchým pravidlem.
Aktivační funkce do neuronové sítě vnáší nelinearitu. Díky tomu může model lépe zachycovat vztahy, které nejsou přímočaré. To je jeden z důvodů, proč se neuronové sítě hodí pro úlohy, které by bylo obtížné ručně naprogramovat přes pevná pravidla.
Co znamená nelinearita
Nelinearita znamená, že výstup neroste vždy jednoduše a přímo úměrně se vstupem. U lineárního vztahu platí, že když se vstup zvýší, výstup se mění předvídatelně stejným směrem a stejným typem tempa. U nelineárního vztahu to tak jednoduché není.
Příklad z běžného života: pokud přidáte do receptu trochu soli, jídlo může chutnat lépe. Pokud jí ale přidáte moc, výsledek se prudce zhorší. Vztah mezi množstvím soli a chutí tedy není jednoduše lineární.
Podobně fungují data v reálném světě. Malá změna ve vstupu může mít někdy malý dopad, jindy zásadní. Aktivační funkce pomáhá neuronové síti s takovými složitějšími vztahy pracovat.
Jednoduchý příklad
Představte si neuron, který má pomoci odhadnout, jestli je na obrázku kočka. Do neuronu vstupují různé signály – tvar uší, oči, vousky, textura srsti nebo obrys hlavy. Každý signál má jinou důležitost.
Neuron tyto signály matematicky zpracuje. Výsledkem může být číslo, které říká, jak silně vstupy odpovídají určitému vzoru. Aktivační funkce potom upraví tento výsledek tak, aby se s ním dalo dál pracovat v dalších vrstvách sítě.
Neznamená to, že jeden neuron „ví“, co je kočka. Znamená to jen, že zpracovává malý dílčí signál. Až mnoho neuronů v mnoha vrstvách dohromady může vytvořit systém, který rozpozná složitější objekt.
Jak aktivační funkce souvisí s neuronem
Neuron bez aktivační funkce by byl výrazně omezený. Umělý neuron se obvykle popisuje jako kombinace vstupů, vah, biasu a aktivační funkce. Každá část má svou roli.
Vstupy přinášejí data. Váhy určují, jak důležité jednotlivé vstupy jsou. Bias posouvá výpočet. Aktivační funkce pak určí výsledný signál, který pokračuje dál.
Více k samotnému základu najdete v článku neuron.
Jak aktivační funkce souvisí s neuronovou sítí
Neuronová síť se skládá z mnoha propojených neuronů. Každý neuron zpracuje určitou část informace a výstup pošle dál. Aktivační funkce se používají právě proto, aby tyto výstupy nebyly jen mechanickým lineárním přepočtem.
Díky aktivačním funkcím může každá vrstva neuronové sítě měnit data trochu jiným způsobem. Nižší vrstvy mohou zachycovat jednodušší vzory, vyšší vrstvy složitější souvislosti. U obrazových modelů to mohou být nejdříve hrany a tvary, později celé objekty. U jazykových modelů to mohou být vztahy mezi tokeny, částmi věty a širším kontextem.
Bez aktivačních funkcí by hlubší síť ztratila velkou část své schopnosti modelovat složité vztahy.
Více k širšímu principu najdete v článku neuronová síť.
Nejznámější typy aktivačních funkcí
Aktivačních funkcí existuje více. Různé funkce se hodí pro různé typy modelů, vrstev a úloh. Není tedy pravda, že existuje jedna univerzálně nejlepší aktivační funkce pro všechno.
Mezi nejznámější patří sigmoid, tanh, ReLU, Leaky ReLU, GELU nebo softmax. Některé se dnes používají hlavně ve výuce a historickém vysvětlení, jiné jsou běžné v moderních neuronových sítích.
Sigmoid
Sigmoid převádí vstupní hodnotu do rozsahu mezi 0 a 1. Dříve se používal velmi často, protože se dobře hodí pro představu, že neuron vytváří něco jako míru pravděpodobnosti nebo sílu aktivace.
Jeho výhodou je srozumitelnost. Výstup 0 znamená velmi slabý signál, výstup 1 velmi silný signál a hodnoty mezi tím představují různé stupně. Nevýhodou je, že u velmi vysokých nebo velmi nízkých vstupů se může funkce „saturovat“, tedy měnit výstup už jen velmi málo. To může ztěžovat trénování hlubších sítí.
Proto se sigmoid dnes nepoužívá ve všech částech moderních hlubokých modelů tak běžně jako dříve, ale pořád má své místo v některých typech výstupních vrstev a v jednodušších vysvětleních neuronových sítí.
Tanh
Tanh je funkce, která převádí hodnoty do rozsahu od -1 do 1. Oproti sigmoidu má výhodu v tom, že její výstup je centrovaný kolem nuly. To může být pro některé výpočty užitečné.
Stejně jako sigmoid ale může mít problém se saturací. Pokud jsou vstupy příliš vysoké nebo příliš nízké, změny ve výstupu jsou velmi malé a síť se může učit pomaleji.
Tanh se historicky používal často, zejména ve starších typech neuronových sítí. V moderních hlubokých modelech bývá v mnoha případech nahrazován jinými funkcemi.
ReLU
ReLU je zkratka pro Rectified Linear Unit. Jde o velmi jednoduchou a často používanou aktivační funkci. Pokud je vstup záporný, výstup je 0. Pokud je vstup kladný, funkce ho propustí dál.
Zjednodušeně:
ReLU(x) = max(0, x)
Výhodou ReLU je jednoduchost a dobré chování při trénování mnoha hlubokých sítí. Pomohla výrazně zlepšit praktické trénování hlubokých modelů, protože je výpočetně nenáročná a v kladné části netrpí stejným typem saturace jako sigmoid nebo tanh.
Má ale i nevýhodu. Pokud se neuron dostane do stavu, kdy dlouhodobě vrací jen nulu, může se přestat efektivně učit. Tomu se někdy říká problém „mrtvých neuronů“.
Leaky ReLU
Leaky ReLU je upravená varianta ReLU. Rozdíl je v tom, že záporné hodnoty neodřízne úplně na nulu, ale propustí z nich malou část. Díky tomu se snižuje riziko, že se neuron úplně „vypne“ a přestane se učit.
Tato funkce vznikla jako praktická reakce na některé slabiny klasické ReLU. V určitých typech modelů může fungovat lépe, protože zachovává alespoň malý signál i pro záporné vstupy.
GELU
GELU je aktivační funkce používaná v řadě moderních hlubokých modelů, včetně některých transformerových architektur. Je hladší než ReLU a nepracuje jen s ostrým odříznutím záporných hodnot.
Pro běžného čtenáře není důležité znát její přesný matematický zápis. Podstatné je, že jde o modernější typ nelineární funkce, která se dobře hodí pro některé rozsáhlé modely pracující s jazykem nebo jinými typy dat.
V praxi ukazuje, že aktivační funkce nejsou jen školní detail, ale reálná součást architektury modelu.
Softmax
Softmax se často používá ve výstupní vrstvě modelu, když je potřeba převést více čísel na rozdělení pravděpodobností. Typicky se hodí pro klasifikaci, kde model vybírá z více možných tříd.
Například pokud má model rozhodnout, zda je na obrázku kočka, pes nebo auto, softmax může převést výstupní hodnoty na pravděpodobnosti pro jednotlivé možnosti.
U jazykových modelů se podobný princip používá při práci s pravděpodobnostmi možných dalších tokenů. Model nevybírá slovo z hotové databáze vět, ale vyhodnocuje pravděpodobnosti dalších textových jednotek.
Je aktivační funkce rozhodnutí modelu?
Aktivační funkce se někdy vysvětluje tak, že „rozhoduje“, zda se neuron aktivuje. To je užitečná zkratka, ale není úplně přesná, pokud ji bereme lidsky.
Aktivační funkce nerozhoduje vědomě. Nemá záměr, názor ani porozumění. Pouze matematicky upravuje číslo, které vzniklo z předchozího výpočtu.
Je tedy lepší říct, že aktivační funkce určuje tvar výstupního signálu. To, co vnímáme jako rozhodnutí modelu, vzniká až z mnoha výpočtů napříč celou sítí.
Jak aktivační funkce souvisí s deep learningem
Deep learning, česky hluboké učení, používá neuronové sítě s více vrstvami. Právě u hlubokých sítí jsou aktivační funkce velmi důležité. Bez nich by přidávání dalších vrstev nepřineslo takovou schopnost zachycovat složité vzory.
Každá vrstva sítě převádí data do nové podoby. Aktivační funkce pomáhají tomu, aby tato proměna nebyla jen jednoduchým lineárním přepočtem. Díky tomu se model může postupně učit složitější reprezentace.
Jinými slovy – aktivační funkce jsou jeden z důvodů, proč hluboké modely mohou fungovat lépe než jednoduché lineární modely u úloh, jako je rozpoznávání obrazu, práce s řečí nebo generování textu.
Jak aktivační funkce souvisí s LLM
Velké jazykové modely stojí na rozsáhlých neuronových sítích. V jejich architektuře se používají různé matematické operace, včetně nelineárních funkcí. Aktivační funkce jsou důležité zejména ve výpočetních částech modelu, které převádějí reprezentace tokenů do dalších podob.
U moderních transformerových modelů se často používají pokročilejší aktivační funkce nebo jejich varianty. Přesné řešení závisí na konkrétní architektuře modelu. Pro běžné pochopení LLM je ale důležité hlavně to, že jazykový model není jen prostá statistická tabulka slov. Jde o hlubokou neuronovou síť, která v mnoha vrstvách zpracovává číselné reprezentace textu.
Na toto téma navazuje článek velký jazykový model.
Časté omyly kolem aktivačních funkcí
Jedním z častých omylů je představa, že aktivační funkce sama vytváří inteligenci modelu. To není přesné. Aktivační funkce je důležitá, ale sama o sobě nic neřeší. Smysl má až uvnitř celé neuronové sítě.
Další omyl je představa, že aktivační funkce vždy funguje jako jednoduchý vypínač zapnuto/vypnuto. U některých historických nebo jednoduchých modelů se tak dá princip vysvětlit, ale moderní funkce často pracují s plynulými hodnotami a jemnějšími přechody.
Nepřesné je také tvrzení, že existuje jedna nejlepší aktivační funkce. V praxi záleží na typu modelu, úloze, hloubce sítě, způsobu trénování a dalších parametrech.
Proč má smysl pojem aktivační funkce znát
Aktivační funkce pomáhá vysvětlit, proč neuronová síť není jen obyčejný součet čísel. Díky ní může model zachycovat složitější vztahy a pracovat s daty, která nejsou jednoduše lineární.
Pro běžného čtenáře není nutné znát vzorce jednotlivých funkcí. Důležité je pochopit princip: neuron spočítá vstupy, váhy a bias, ale aktivační funkce určí, jaký signál půjde dál. Bez tohoto kroku by hluboké neuronové sítě neměly zdaleka takové schopnosti.
Pojem aktivační funkce proto přirozeně navazuje na pojmy neuron, váha, bias, neuronová síť, deep learning a velký jazykový model.
Související pojmy
- Neuron – základní výpočetní jednotka neuronové sítě. Aktivační funkce je jednou z klíčových částí výpočtu uvnitř neuronu.
- Neuronová síť – systém propojených neuronů, který zpracovává data ve vrstvách. Aktivační funkce pomáhají síti zachycovat nelineární vztahy.
- Váha – číselná hodnota, která určuje důležitost konkrétního vstupu. Výsledek váženého součtu se následně předává aktivační funkci.
- Bias – pomocná hodnota, která posouvá výpočet neuronu. Společně se vstupy a vahami tvoří hodnotu, kterou aktivační funkce dále upravuje.
- Machine learning – širší oblast, do které neuronové sítě patří. Pomáhá pochopit, že model se učí úpravou parametrů podle dat.
- Deep learning – oblast strojového učení využívající hluboké neuronové sítě. Aktivační funkce jsou důležité hlavně proto, že umožňují vícevrstvým sítím zachycovat složité vzory.
- Velký jazykový model – model pracující s textem, který využívá rozsáhlé neuronové sítě a v jejich výpočetních částech také nelineární funkce.
- Token – textová jednotka, se kterou pracují jazykové modely. Tokeny se převádějí na číselné reprezentace, které pak procházejí vrstvami modelu.