Rekurentné neurónové siete

Ak chceme po napísaní slova vo vete predpovedať, aké ďalšie slovo bude v tejto vete nasledovať, potrebujeme zobrať do úvahy predchádzajúce slová. Musíme si teda nejakým spôsobom pamätať históriu. Bežné dopredné neurónové siete však takéto niečo neumožňujú. Spracuvávajú všetky vstupy len ako navzájom nezávislé a nevedia teda do výstupu nijako premietnuť žiadne informácie z doterajších predchádzajúcich vstupov. Na takéto a podobné problémy však vieme použiť rekurentné neurónové siete (stretnete sa aj so skratkou RNN). Ich aplikácie nájdeme okrem spracovania textu a reči aj v analýze obrazu či rozpoznávaní hlasu.

Hlavný rozdiel oproti klasickým dopredným sieťam je v tom, že rekurentné siete povoľujú vo svojej architektúre cykly, ako je uvedené nižšie.

Neurón rekurentnej siete a zmena jeho stavu v čase; rekurentné neurónové siete

Neurón rekurentnej siete a zmena jeho stavu v čase, zdroj: vlastné

Typy rekurentných sietí

Rekurentné neurónové siete môžu mať nespočetné množstvo rôznych architektúr, napríklad:

  • Rekurentná sieť s výstupom v každom čase a spätným prepojením skrytých jednotiek.
  • Rekurentná sieť s výstupom v každom čase, kde výstup siete je prepojený so skrytými jednotkami.
  • Rekurentná sieť, ktorá má prepojenia medzi skrytými jednotkami, spracuje kompletnú sekvenciu a produkuje len jednu výstupnú hodnotu.

typy RNN, typy rekurentnych neuronovych sieti

Rôzne typy rekurentných neurónových sietí, zdroj: vlastné

Zoberme si prvú zo spomenutých architektúr a vytvoríme rovnice pre dopredné šírenie. Zameriame sa na úlohu predikovania nasledujúceho slova. Pre tento prípad si definujeme aktivačné funkcie, ktoré sú potrebné na sformulovanie siete. Ako aktivačnú funkciu skrytej vrstvy použijeme tangens hyperbolický a ako výstupná funkcia bude použitý softmax, ktorý reprezentuje pravdepodobnosť i  predikcie jednotlivých slov. Teraz môžeme definovať dopredné šírenie našej rekurentnej siete ako:

dopredne sierenie RNN; rovnice

kde b a c sú vektory biasov a W, U a V sú jednotlivé matice váh. Takýto druh rekurentnej siete mapuje vstupnú sekvenciu do výstupnej o rovnakej veľkosti. Celková chyba takejto siete je len suma čiastkových chýb v jednotlivých časoch. Ako príklad môžeme uviesť log-pravedepodobnostnú chybovú funkciu:log-pravdepodobnostna chybova funkcia

Ďalšie architektúry neurónových sietí

Vypočítanie gradientu takejto chybovej funkcie je náročná operácia. Na jeho vypočítanie potrebujeme vypočítať dopredné šírenie a následne spätné. Zložitosť je o(τ) a proces nemôže byť paralelizovaný, pretože výpočet je sekvenčný. Inak povedané, každý stav môžeme vypočítať až po tom, ako je vypočítaný jeho predchádzajúci. Každý zo stavov musí byť uložený, pokiaľ neprejde spätné šírenie a z tohto dôvodu môžeme rovnako povedať, že tento proces je náročný aj na pamäť. Tento algoritmus trénovania sa nazýva Algoritmus spätného šírenia chyby  vzhľadom na čas (z ang.Back-propagation through time, BPTT), pri ktorej však nastáva tzv. problém miznúceho gradientu. Vzniká kvôli tomu, že sieť sa musí pri učení dlhých časových závislostí pozerať ďaleko do minulosti. To však spôsobuje, že gradienty pri učení konvergujú k hodnote 0, čiže vôbec nedochádza k úprave váh a sieť sa tak netrénuje.

Z tohto dôvodu boli navrhnuté koncepty, ktoré sa snažia problém miznúceho gradientu odstrániť. Najznámejšie z nich sú Long Short Term Memory (LSTM, 1997) a Gated Recurrent Units (GRU, 2014), ktoré si predstavíme v ďalšom pokračovaní.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *