上一篇關於RNN的文章最後,我們提到過由於梯度消失和梯度爆炸問題,使得RNN很難處理長距離的依賴。本文我們介紹兩種改進後的RNN:LSTM(Long Short Term Memory Network)和Gated Recurrent Unit(GRU)。它們成功的解決了原始RNN的缺陷,成爲當前比較流行的RNN,並在許多領域中成功應用。
Long Short Term Memory Network,LSTM
LSTM的結構
LSTM和RNN其實本質上很類似,只是在隱藏層做了“手腳”。原始的RNN的隱藏層只有一個狀態,即h,它對短期的輸入非常敏感。於是,LSTM就又添加了一個狀態c,讓它來保存長期的狀態。如圖:
新增加的狀態c,我們稱爲單元狀態(cell state)。我們把上圖按照時間維度展開得到:
從圖中我們可以看出,在t時刻,LSTM的輸入有三個:當前時刻網絡的輸入值