Hluboké učení

Recurrent networks for sequence processing

Úvod do tématu

Jak bylo zmíněno v anotaci, rekurentní sítě obsahují rekurentní vrstvy s cyklickým propojením neuronů. Samotné rekurentní vrstvy ale k naučení nestačí, protože u dlouhých sekvencí se během učení algoritmem Backpropagation through time (BPTT) ztrácí, dík výpočtu gradientu, závislosti mezi vzdálenými prvky sekvence. Používají se proto speciální jednotky jako LSTM (Long Short-Term Memory) a GRU (Gated Recurrent Unit). Ty řeší problém mizejícího gradientu tak, že přidávají jednotce další signál - její vnitřní stav, který při učení nepodléhá derivaci, a tím umožňuje zapamatovat předchozí členy sekvencí po delší dobu.

Termín "LSTM jednotka" nebo "GRU jednotka" ve skutečnosti označuje celou vrstvu sítě, jejímž vstupem i výstupem je vektor hodnot popisující jeden prvek zpracovávané sekvence (např. jedno slovo). Celá sekvence se předá na vstupu/výstupu sítě v sérii po sobě následujících časových kroků. Rekurentní sítě se velmi často graficky znázorňují "rozvinuté" v čase:  rozkreslíme postup jednotlivých signálů jednotkou na časové ose zleva doprava, jako např. na slajdech č. 5, 7, 8, 11 a dalších. Vztah mezi rozvinutým a nerozvinutým vykreslením znázorňují slajdy č. 15-16.

Recurrent networks with attention (6 points)
Look back at the Colab notebook by F. Chollet solving the Jena temperature forecasting. Use the same training, validation and test datasets, but apply an attention layer. You can adapt the code in the paper about recurrent networks using attention mechanism, or use own solution (we will learn more about attention in the next lectures). Try to obtain better results than those in the original Cholllet notebook. Submit a sharing link to your Colab notebook with results.