這里講一下RNN(又稱“valina RNN”)&GRU&LSTM三者的具體結構以及之間的聯系。
1、RNN
在基本的RNN中(valina RNN),輸出和隱狀態相同;
2、GRU
加入了reset門和update門,前者用於確定前一步的隱狀態有多少可以輸入當前步,后者用於確定當前步的隱狀態有多少可以輸出下一步,結構如下:
多層GRU:
3、LSTM
LSTM加入了輸入門、忘記門、輸出門,也因此多引入了cell state(細胞狀態),結構如下:
多層LSTM:
三者區別:
(1)三者復雜度比較:LSTM > GRU > RNN,當數據集不大時,GRU和LSTM難分伯仲、但是數據集變大時LSTM更優;
(2)RNN和GRU都只有隱狀態,而LSTM不僅傳遞隱狀態還傳遞細胞狀態;
(3)GRU:reset門(操作對象為ht-1),update門(操作對象為ht和ht-1);
LSTM:input門(操作對象為ct),forget門(操作對象為ct-1),output門(操作對象為ht);