遞迴式神經網路 (RNN) 之長短期記憶模型 (LSTM)

在處理序列數據時,遞迴式神經網路 (RNN) 經常因為梯度消失問題而無法有效地學習長期依賴性。為了解決這個問題,Hochreiter 和 Schmidhuber 於 1997 年提出了長短期記憶模型(LSTM),它是一種特殊的遞迴式神經網路架構,設計用來克服 RNN 的缺陷,特別是在長序列學習上。

1. LSTM 的結構

LSTM 通過引入記憶單元 (memory cell) 和一組門控機制,來控制信息的存取和更新,從而有效保持長期依賴的信息。這種設計的核心是單元狀態(cell state),一條類似輸水管的結構,允許信息在時間步之間幾乎無修改地傳遞。

LSTM 的結構由三個門控組成:

每個門控機制都有其對應的權重和偏置:

$$ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) $$

$$ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) $$

$$ \tilde{C}t = \tanh(W_C \cdot [h{t-1}, x_t] + b_C) $$

$$ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) $$

$h_{t-1}$ 是前一時間步的隱藏狀態 $x_t$ 是當前時間步的輸入 $W_f, W_i, W_o, W_C$ 分別是權重矩陣 $b_f, b_i, b_o, b_C$ 是偏置項 $\sigma$ 是 sigmoid 函數 $\tanh$ 是雙曲正切函數

2. LSTM 記憶單元的更新

LSTM 的記憶單元會根據遺忘門和輸入門的輸出來進行更新:

$$ C_t = f_t * C_{t-1} + i_t * \tilde{C}_t $$