原文網址:Understanding LSTMs

想像人在思考或閱讀文章時,並不是從零開始,而是會保留過去的記憶。RNN 就是為了解決這方面的問題而設計的。

LSTM1

每次訓練時,網路會保留過去的訊息並持續傳遞。而 LSTM 則是一種特殊的 RNN 形式。

The Problem of Long-Term Dependencies

在許多情況下,我們需要更多的上下文訊息,但這些關鍵資訊可能距離當前時間點非常遙遠。一般的 RNN 在處理這種長距離依賴時,容易產生梯度消失或梯度爆炸的問題。

LSTM2

LSTM

LSTM 稱為「長短期記憶網絡」(Long Short Term Memory networks),是一種特殊的 RNN 架構。

LSTM4

不同於傳統 RNN 在每個 Cell 裡只包含一個 tanh 層,LSTM 增加了:

  • input gate (輸入門)
  • output gate (輸出門)
  • forget gate (遺忘門)

這些閘門都是用來精準控制資料的操作。使用 sigmoid 激活函數可以看做是控制記憶與讀取資料量的多寡:0 代表不通過,1 代表全部通過。

詳細的數學推導可以參考原文。文中也介紹了 GRU——一種更為簡煉高效的 LSTM 變體。值得注意的是,現今我們從 RNN 領域獲得的優異成果,幾乎指的都是 LSTM 的應用。

在 TensorFlow 中,LSTM 已經封裝完善,呼叫即可使用。

下圖是用 LSTM (紅虛線) 去學習黑線 (x*sin(x)) 的擬合結果:

figure_2