RNN--長短期記憶(Long Short Term Memory, LSTM)
長短期記憶(Long Short Term Memory, LSTM)
是一種 RNN 特殊的型別,可以學習長期依賴資訊。記住長期的資訊在實踐中是 LSTM 的預設行為,而非需要付出很大代價才能獲得的能力!
LSTM 單元和普通 RNN 單元的區別
在標準的 RNN 中,這個重複的模組只有一個非常簡單的結構,例如一個 tanh 層。LSTM 同樣是這樣的結構,但是重複的模組擁有一個不同的結構,重複模組包含四個互動的gate。
主要大的區別是,採用一個叫 “細胞狀態(state)” 的通道貫穿了整個時間序列。通過精心設計的稱作 “門” 的結構來去除或增加資訊到細胞狀態的能力。
組成部分
1)" 忘記門”;
2)“輸入門” 的開啟關閉也是由當前輸入和上一個時間點的輸出決定的。
3)“輸出門”,控制輸出多少,最終僅僅會輸出確定輸出的那部分。
4)狀態門:讓幾個 “門” 的輸入資料除了正常的輸入資料和上一個時刻的輸出以外,再接受 “細胞狀態” 的輸入。
各種各樣的LSTM
為了得到更好的建模能力,一種流行的做法是將 LSTM 層堆疊起來。但帶有太多 vanilla LSTM 層的 LSTM-RNN 非常難以訓練,而且如果網路太深,還會有梯度消失問題。這個問題可以使用 highway LSTM 或 residual LSTM 解決。
1)在 highway LSTM中,相鄰層的記憶單元通過門控的直接鏈路連線在一起,這為資訊提供了一種在層之間更直接且不衰減地流動的路徑。
2)residual LSTM在 LSTM 層之間使用了捷徑連線(shortcut connection),因此也提供了一種緩解梯度消失問題的方法。
3)二維時頻 LSTM(2-D, time-frequency (TF) LSTM),可以在時間和頻率軸上對語音輸入進行聯合掃描,以對頻譜時間扭曲(spectro-temporal warping)建模,然後再將其輸出的啟用(activation)用作傳統的時間 LSTM 的輸入。這種時間-頻率聯合建模能為上層的時間 LSTM 提供更好的規範化的特徵。
4)網格 LSTM(Grid LSTM)是一種將 LSTM 記憶單元排布成多維網格的通用 LSTM,可以被看作是一種將 LSTM 用於時間、頻譜和空間計算的統一方法。
5)儘管雙向 LSTM(BLSTM):通過使用過去和未來的語境資訊能得到比單向 LSTM 更好的表現,但它們並不適合實時系統,因為這需要在觀察到整個話語之後才能進行識別。因為這個原因,延遲受控 BLSTM(LC-BLSTM)[29] 和行卷積 BLSTM(RC-BLSTM)等模型被提了出來,這些模型構建了單向 LSTM 和 BLSTM 之間的橋樑。在這些模型中,前向 LSTM 還是保持原樣。但反向 LSTM 會被替代——要麼被帶有最多 N 幀前瞻量的反向 LSTM(如 LC-BLSTM 的情況)替代,要麼被集成了 N 幀前瞻量中的資訊的行卷積替代。