Gated Recurrent Unit (GRU) je typ rekurentní neuronové sítě (RNN), kterou zavedli Cho et al. v roce 2014 jako jednodušší alternativa k sítím Long Short-Term Memory (LSTM). Stejně jako LSTM může GRU zpracovávat sekvenční data, jako je text, řeč a data časových řad.
Základní myšlenkou GRU je použití hradlových mechanismů k selektivní aktualizaci skrytého stavu sítě v každém časovém kroku. Hradlovací mechanismy se používají k řízení toku informací do a ze sítě. GRU má dva hradlové mechanismy, nazývané resetovací brána a aktualizační brána.
Resetovací brána určuje, kolik z předchozího skrytého stavu by mělo být zapomenuto, zatímco aktualizační brána určuje, jak velká část nového vstupu by měla být použita k aktualizaci skrytého stavu. Výstup GRU se vypočítá na základě aktualizovaného skrytého stavu.
Rovnice použité k výpočtu resetovací brány, aktualizace brány a skrytého stavu GRU jsou následující:
Resetovat bránu: r_t = sigmoid(W_r * [h_{t-1}, x_t])
Aktualizovat bránu: z_t = sigmoid(W_z * [h_{t-1}, x_t])
Kandidátský skrytý stav: h_t' = tanh(W_h * [r_t * h_{t-1}, x_t])
Skrytý stav: h_t = (1 – z_t) * h_{t-1} + z_t * h_t’
kde W_r, W_z a W_h jsou naučitelné váhové matice, x_t je vstup v časovém kroku t, h_{t-1} je předchozí skrytý stav a h_t je aktuální skrytý stav.
Stručně řečeno, sítě GRU jsou typem RNN, které používají hradlové mechanismy k selektivní aktualizaci skrytého stavu v každém časovém kroku, což jim umožňuje efektivně modelovat sekvenční data. Ukázalo se, že jsou účinné v různých úlohách zpracování přirozeného jazyka, jako je modelování jazyka, strojový překlad a rozpoznávání řeči
Předpoklady: Rekurentní neuronové sítě, Sítě s dlouhodobou krátkodobou pamětí
K vyřešení problému mizejících-explodujících gradientů, se kterým se často setkáváme během provozu základní rekurentní neuronové sítě, bylo vyvinuto mnoho variant. Jednou z nejznámějších variací je Síť dlouhodobé paměti (LSTM) . Jednou z méně známých, ale stejně účinných variant je Gated Recurrent Unit Network (GRU) .
Na rozdíl od LSTM se skládá pouze ze tří bran a neudržuje vnitřní stav buňky. Informace, které jsou uloženy ve stavu vnitřní buňky v rekurentní jednotce LSTM, jsou začleněny do skrytého stavu gated recurrent unit. Tyto souhrnné informace jsou předány další Gated Recurrent Unit. Různé brány GRU jsou popsány níže: -
- Update Gate(z): Určuje, kolik z minulých znalostí je třeba předat do budoucnosti. Je analogický s výstupní bránou v rekurentní jednotce LSTM. Reset Gate(r): Určuje, kolik z minulých znalostí zapomenout. Je to analogie ke kombinaci vstupní brány a brány Forget v rekurentní jednotce LSTM. Aktuální paměťová brána(
): Během typické diskuse o Gated Recurrent Unit Network je často přehlížena. Je začleněno do resetovací brány stejně jako vstupní modulační brána je dílčí částí vstupní brány a používá se k zavedení určité nelinearity do vstupu a také k vytvoření nulové střední hodnoty vstupu. Dalším důvodem, proč z ní udělat dílčí část brány Reset, je snížit účinek, který mají předchozí informace na aktuální informace, které jsou předávány do budoucnosti.Základní pracovní postup sítě Gated Recurrent Unit Network je podobný jako u základní Recurrent Neuron Network, když je znázorněn, hlavní rozdíl mezi těmito dvěma je ve vnitřní práci v rámci každé rekurentní jednotky, protože sítě Gated Recurrent Unit se skládají z bran, které modulují aktuální vstup a předchozí skrytý stav.

Práce hradlové opakovací jednotky:
- Vezměte vstup aktuálního vstupu a předchozího skrytého stavu jako vektory.
- Vypočítejte hodnoty tří různých bran podle následujících kroků: -
- Pro každé hradlo vypočítejte parametrizovaný proudový vstup a dříve skryté stavové vektory provedením násobení po prvcích (Hadamardův součin) mezi příslušným vektorem a příslušnými váhami pro každé hradlo.
- Aplikujte příslušnou aktivační funkci pro každý prvek brány na parametrizované vektory. Níže je uveden seznam bran s aktivační funkcí, která se má pro bránu použít.
Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
- Proces výpočtu Brány aktuální paměti je trochu jiný. Nejprve se vypočítá Hadamardův součin Resetovací brány a dříve skrytý stavový vektor. Poté je tento vektor parametrizován a poté přidán k parametrizovanému vektoru proudového vstupu.

- Pro výpočet aktuálního skrytého stavu je nejprve definován vektor jedniček a stejných rozměrů, jako má vstup. Tento vektor se bude nazývat jedničky a matematicky bude označen 1. Nejprve vypočítejte Hadamardův součin aktualizační brány a dříve skrytý stavový vektor. Poté vygenerujte nový vektor odečtením aktualizační brány od jedniček a poté vypočítejte Hadamardův součin nově vygenerovaného vektoru s aktuální paměťovou bránou. Nakonec přidejte dva vektory, abyste získali aktuálně skrytý vektor stavu.
Výše uvedená práce je uvedena níže: -

Všimněte si, že modré kroužky označují násobení po prvcích. Kladné znaménko v kruhu značí sčítání vektoru, záporné znaménko odečítání vektoru (sčítání vektoru se zápornou hodnotou). Hmotnostní matice W obsahuje různé váhy pro aktuální vstupní vektor a předchozí skrytý stav pro každou bránu.
Stejně jako u rekurentních neuronových sítí generuje síť GRU také výstup v každém časovém kroku a tento výstup se používá k trénování sítě pomocí gradientního sestupu.

Všimněte si, že stejně jako pracovní postup je trénovací proces pro síť GRU také schematicky podobný procesu základní rekurentní neuronové sítě a liší se pouze vnitřním fungováním každé rekurentní jednotky.
Algoritmus zpětného šíření v čase pro síť s hradlovými rekurentními jednotkami je podobný jako u sítě s dlouhodobou krátkodobou pamětí a liší se pouze v diferenciální formaci řetězce.
Nechat
být předpokládaným výstupem v každém časovém kroku a
být skutečným výstupem v každém časovém kroku. Pak je chyba v každém časovém kroku dána:-
Celková chyba je tedy dána součtem chyb ve všech časových krocích.
Podobně i hodnota
lze vypočítat jako součet gradientů v každém časovém kroku.
Použití řetězového pravidla a využití skutečnosti, že
je funkcí
a která je skutečně funkcí
, vznikne následující výraz:-
Celkový gradient chyby je tedy dán následovně:
Všimněte si, že gradientová rovnice zahrnuje řetězec
která vypadá podobně jako základní rekurentní neuronová síť, ale tato rovnice funguje jinak kvůli vnitřnímu fungování derivátů
.
Jak řeší Gated Recurrent Units problém mizejících gradientů?
Hodnota gradientů je řízena řetězcem derivací počínaje
. Vybavte si výraz pro
:-
Pomocí výše uvedeného výrazu je hodnota pro
je:-
Vybavte si výraz pro
:-
Pomocí výše uvedeného výrazu vypočítat hodnotu
:-
Protože jak aktualizační, tak resetovací brána používají jako aktivační funkci sigmoidní funkci, obě mohou nabývat hodnot 0 nebo 1.
Případ 1 (z = 1):
V tomto případě bez ohledu na hodnotu
, termín
se rovná z, což se zase rovná 1.
Případ 2A(z=0 a r=0):
V tomto případě termín
se rovná 0.
Případ 2B(z=0 a r=1):
V tomto případě termín
je rovný
. Tato hodnota je řízena váhovou maticí, která je trénovatelná, a tak se síť naučí upravovat váhy tak, aby
blíží se k 1.
Algoritmus Back-Propagation Through Time tedy upravuje příslušné váhy tak, aby hodnota řetězce derivátů byla co nejblíže 1.
