GRU
假設我們已經熟知循環神經網絡(RNN)及長短時間記憶網絡(LSTM)。相比於簡單的RNN,LSTM增加了記憶單元(memory cell)、輸入門(input gate)、遺忘門(forget gate)及輸出門(output gate),這些門及記憶單元組合起來大大提升了RNN處理遠距離依賴問題的能力。
RNN:
長短期記憶long short-term memory
遺忘門:控制上一時間步的記憶細胞
輸入門:控制當前時間步的輸入
輸出門:控制從記憶細胞到隱藏狀態
記憶細胞:⼀種特殊的隱藏狀態的信息的流動
GRU:
GRU是Cho等人在LSTM上提出的簡化版本,也是RNN的一種擴展,如下圖所示。GRU單元只有兩個門:
重置門(reset gate):如果重置門關閉,會忽略掉歷史信息,即歷史不相干的信息不會影響未來的輸出。
更新門(update gate):將LSTM的輸入門和遺忘門合併,用於控制歷史信息對當前時刻隱層輸出的影響。如果更新門接近1,會把歷史信息傳遞下去。
RNN存在的問題:梯度較容易出現衰減或爆炸(BPTT)
⻔控循環神經⽹絡:捕捉時間序列中時間步距離較⼤的依賴關係
• 重置⻔有助於捕捉時間序列⾥短期的依賴關係;
• 更新⻔有助於捕捉時間序列⾥⻓期的依賴關係。
雙向循環神經網絡
雙向循環神經網絡,這裏介紹Bengio團隊在論文[1,2]中提出的另一種結構。該結構的目的是輸入一個序列,得到其在每個時刻的特徵表示,即輸出的每個時刻都用定長向量表示到該時刻的上下文語義信息。
具體來說,該雙向循環神經網絡分別在時間維以順序和逆序——即前向(forward)和後向(backward)——依次處理輸入序列,並將每個時間步RNN的輸出拼接成爲最終的輸出層。這樣每個時間步的輸出節點,都包含了輸入序列中當前時刻完整的過去和未來的上下文信息。下圖展示的是一個按時間步展開的雙向循環神經網絡。該網絡包含一個前向和一個後向RNN,其中有六個權重矩陣:輸入到前向隱層和後向隱層的權重矩陣(W1,W3),隱層到隱層自己的權重矩陣(W2,W5),前向隱層和後向隱層到輸出層的權重矩陣(W4,W6)。注意,該網絡的前向隱層和後向隱層之間沒有連接。
【1】Cho K, Van Merriënboer B, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2014: 1724-1734.
【2】Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[C]//Proceedings of ICLR 2015, 2015.