長短期神經網路(Long Short-Term Memory, 簡稱LSTM)是上一篇講到的循環神經網絡(RNN)的變種。LSTM由Sepp Hochreiter和Jürgen Schmidhuber於1997年提出,成為處理序列數據的重要工具。
LSTM網路的主要目標就是為了解決上一篇所提到循環神經網路的一個大問題,就是因為使用遞迴公式所導致的梯度問題,簡單講就是在離當下這個時間點越遠的記憶,對於當下時間點模型的預測結果影響會越小,所導致的長期依賴性建模的困難。
記憶細胞(Memory Cell): 記憶細胞是LSTM的核心,負責儲存和選擇性地傳遞信息。細胞裡有一個細胞狀態(Cell State)和一個隱藏狀態(Hidden State)。細胞狀態保存長期記憶,而隱藏狀態就和RNN一樣用於當前時間步之前的記憶(短期)。
遺忘門(Forget Gate): 遺忘門控制細胞狀態中的記憶是否要保留、是否要被遺忘。遺忘門會根據預先設定好的函數輸出值表示保留以前的記憶的程度。如果函數的輸出接近1,則表示保留以前的記憶的程度高,也就是以前的記憶是重要的。如果輸出接近0,則表示以前的記憶應該被忽略,即應該被遺忘。
輸入門(Input Gate): 作用是控制新的信息要被添加到細胞狀態中的程度,即各個信息的重要程度。輸入門也是根據函數輸出值來判斷記憶是否重要。如果函數的輸出接近1,則表示新信息是重要的,應該被添加到細胞狀態中。如果輸出接近0,則表示的新信息應該被忽略。
之後根據兩個閥門的輸出值,更新細胞狀態,該忘記的記憶就忘記,該記得的新記憶就加入狀態,從而得到新的細胞狀態。
輸出門(Output Gate): 輸出門就是根據更新後的細胞狀態還有這個時間點的記憶,去預測接下來信息。也就是說,他的作用是就是控制LSTM模型在每一個時間點的輸出,根據內部記憶的狀態和當前的輸入,去適應不同的序列資料。
圖片來源: 連結