34 KiB
34 KiB
Uczenie maszynowe UMZ 2019/2020
2 czerwca 2020
12. Rekurencyjne sieci neuronowe
RNN – _Recurrent Neural Network
LSTM – _Long Short Term Memory
import IPython
IPython.display.YouTubeVideo('WCUNPb-5EYI', width=800, height=600)
Rekurencyjna sieć neuronowa – schemat
Rekurencyjna sieć neuronowa – schemat
Zależności długodystansowe (_long-distance dependencies) w sieciach rekurencyjnych
RNN – typy sekwencji
LSTM – schemat
- Rekurencyjne sieci neuronowe znajduja zastosowanie w przetwarzaniu sekwencji, np. szeregów czasowych i tekstów.
- LSTM są rozwinięciem RNN, umożliwiają „zapamiętywanie” i „zapominanie”.
Co potrafią generować rekurencyjne sieci neuronowe?
Generowanie tekstu za pomocą LSTM – przykład
https://github.com/keras-team/keras/blob/master/examples/lstm_text_generation.py
Przewidywanie ciągów czasowych za pomocą LSTM – przykład
https://machinelearningmastery.com/time-series-forecasting-long-short-term-memory-network-python/
GRU – _Gated Recurrent Unit
- Rodzaj rekurencyjnej sieci neuronowej wprwadzony w 2014 roku
- Ma prostszą budowę niż LSTM (2 bramki zamiast 3).
GRU vs LSTM
- LSTM – 3 bramki: wejścia (_input), wyjścia (output) i zapomnienia (forget); GRU – 2 bramki: resetu (reset) i aktualizacji (update). Bramka resetu pełni podwójną funkcję: zastępuje bramki wyjścia i zapomnienia.
- GRU i LSTM mają podobną skuteczność, ale GRU dzięki prostszej budowie bywa bardziej wydajna.
- LSTM sprawdza się lepiej w przetwarzaniu tekstu, ponieważ lepiej zapamiętuje zależności długosystansowe.