Obsah

Rekurentní neuronová síť (RNN)

Rekurentní neuronová síť (RNN – Recurrent Neural Network) je typ neuronové sítě určený pro zpracování sekvenčních dat. Na rozdíl od běžných dopředných sítí (Feedforward), které zpracovávají každý vstup nezávisle, mají RNN vnitřní paměť. To jim umožňuje brát v úvahu předchozí vstupy při zpracování toho aktuálního.

Díky tomu jsou ideální pro úlohy, kde význam informace závisí na kontextu toho, co se stalo dříve (např. slova ve větě nebo vývoj ceny akcií).

1. Princip fungování: Zpětná vazba

Hlavním rysem RNN je existence smyček. Výstup z neuronu v čase $t$ se vrací zpět jako vstup pro čas $t+1$. Tomuto mechanismu se říká skrytý stav (hidden state), který funguje jako paměť sítě.

http://googleusercontent.com/image_collection/image_retrieval/6107903186580698072_0

2. Problémy klasických RNN

Standardní RNN trpí dvěma zásadními matematickými problémy při trénování na dlouhých sekvencích:

3. Pokročilé varianty: LSTM a GRU

Aby se vyřešil problém se zapomínáním, byly vyvinuty komplexnější architektury buněk:

Typ Název Popis
LSTM Long Short-Term Memory Obsahuje speciální „brány“ (gates), které řídí, co se má zapamatovat, co zapomenout a co poslat na výstup.
GRU Gated Recurrent Unit Zjednodušená verze LSTM s méně parametry, často stejně efektivní, ale výpočetně méně náročná.

[Image comparing internal structures of Simple RNN, LSTM and GRU units] http://googleusercontent.com/image_collection/image_retrieval/8455641202566121773_0

4. Praktické využití

RNN jsou nepostradatelné všude tam, kde je důležitý kontext v čase:

5. Ústup před Transformery

V posledních letech byly RNN v mnoha úlohách (zejména v překladu textu) nahrazeny architekturou Transformer. Transformery totiž dokážou zpracovat celou sekvenci najednou (paralelně), zatímco RNN musí postupovat krok za krokem, což je na moderním hardwaru pomalejší.

Příklad: Pokud čtete větu „Jan šel do obchodu, protože zapomněl koupit…“, RNN si musí pamatovat „Jan“ od samého začátku, aby věděla, že slovo „zapomněl“ je v mužském rodě.

Zpět na AI rozcestník