名詞解釋:
RNN,Recurrent Neural Network,循環神經網絡。
LSTM,Long Short Term Memory,長短期記憶。
GRU,Gated Recurrent Unit,門基循環單元。
LSTM的關鍵是有三個門,分別是,遺忘門(forget gate),輸入門(input gate), 輸出門(output gate)。這些門使用的是sigmoid函數,取值介於0-1之間。 通過這些門,有用信息可以隨着時間流到輸出端。
LSTM圖解如下:

上圖參數的形狀對理解公式很重要,如下所示:
xt,[input_num, hidden_num]
ct,[hidden_num, hidden_num]
ht,[hidden_num, hidden_num]
ft,it,ot,[hidden_num, hidden_num]
GRU的結構比LSTM簡單一些,所以運算量也少一些,但是其效果與LSTM差不多。 GRU擁有兩個門(r門,z門)。
GRU圖解如下:

上圖參數的形狀如下:
xt,[input_num, hidden_num]
ht,[hidden_num, hidden_num]
rt,zt,[hidden_num, hidden_num]
LSTM與GRU的輸入輸出問題。
輸入張量,[time_step, batch_size, input_num]
輸出張量,[time_step, batch_size, hidden_num]
其實RNN的信息流動過程很簡單,只需按照時間將其展開即可,如下:
for i in range(time_step):
hiddens[i], state = RNN.predict(inputs[i], state)