5.3 KiB
5.3 KiB
AITech — Uczenie maszynowe
11. Rekurencyjne sieci neuronowe
RNN – _Recurrent Neural Network
LSTM – _Long Short Term Memory
Rekurencyjna sieć neuronowa – schemat
![](http://colah.github.io/posts/2015-08-Understanding-LSTMs/img/RNN-rolled.png)
Rekurencyjna sieć neuronowa – schemat
![](http://colah.github.io/posts/2015-08-Understanding-LSTMs/img/RNN-unrolled.png)
Zależności długodystansowe (_long-distance dependencies) w sieciach rekurencyjnych
![](http://colah.github.io/posts/2015-08-Understanding-LSTMs/img/RNN-longtermdependencies.png)
RNN – typy sekwencji
![](http://karpathy.github.io/assets/rnn/diags.jpeg)
- 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.