遺忘門 是什麼?
Forget Gate:遺忘門 的完整解釋
長短期記憶網路(LSTM)的核心門機制,通過 sigmoid 激活函數產生 0-1 的控制信號,決定上一時步細胞狀態中有多少信息應被遺棄或保留,是解決梯度消失問題的關鍵元件。
核心概念
遺忘門(Forget Gate)是 LSTM 最直觀卻也最深刻的創新。其名稱來自於它的主要功能:控制細胞狀態中應被遺棄的信息比例。這解決了傳統 RNN 的根本問題:梯度在反向傳播時通過多個時步積累,容易消失或爆炸。
遺忘門的數學形式為: f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
其中 f_t ∈ [0, 1]^n,σ 是 sigmoid 激活函數。細胞狀態更新為: C_t = f_t ⊙ C_{t-1} + i_t ⊙ c̃_t
⊙ 表示逐元素乘法(Hadamard product)。遺忘門的輸出直接與上一細胞狀態相乘,實現所謂的「加法型」梯度流,而非傳統 RNN 的乘法流。
運作原理
遺忘門在 LSTM 前向計算中的詳細步驟:
門值計算:將前一隱藏狀態 h_{t-1} 和當前輸入 x_t 連接,經線性變換和 sigmoid 激活,得到 f_t。sigmoid 的 S 形曲線將任意實數映射到 [0,1]。
選擇性遺忘:遺忘門的輸出與舊細胞狀態逐元素相乘。第 i 個維度的乘積為 f_t[i] × C_{t-1}[i],若 f_t[i] 接近 0,則該維度信息被大幅減弱;若接近 1,信息保留。
加法型梯度:反向傳播時,梯度通過 C_t = f_t ⊙ C_{t-1} 回傳。與傳統 RNN 的 h_t = f(h_{t-1}) 不同,這裡的連接是加法型,梯度流為 dL/dC_{t-1} = f_t · dL/dC_t,避免了乘法堆積導致的梯度消失。
時空多尺度:遺忘門可學習在不同時步選擇不同的遺忘率。短期依賴可設高遺忘率快速更新,長期依賴可設低遺忘率保留信息。
實際應用
遺忘門在各類序列任務中發揮核心作用:
機器翻譯:編碼器處理源語言長句子時,遺忘門幫助逐步淡化已處理的詞彙,同時保留語義核心。例如「A man walked down the street」中,動詞「walked」的信息被保留,早期冠詞逐步被遺忘。
語言建模與文本生成:遺忘門決定何時「翻篇」舊主題,何時繼續舊上下文。在長文本生成中,段落邊界處遺忘門值降低,新段落開始時遺忘門值提高。
對話系統:多輪對話中,遺忘門幫助模型在適當位置遺忘已解決的話題,專注於新問題。
時間序列預測:股票價格、天氣預報等數據中,遺忘門識別「季節轉折點」或「市場變化」,自動調整記憶保留程度。
語音識別:音頻幀序列中,遺忘門在音素邊界處快速更新,在音素內部保持穩定。
視頻分析:逐幀處理視頻時,場景變化時遺忘門值降低(遺棄舊場景),同場景內容時遺忘門值高(保留背景)。
常見誤區
對「遺忘」的誤解:遺忘門不是簡單地丟棄數據,而是通過加權削弱。即使遺忘門值為 0.1,也保留了 10% 的舊信息,這在某些微妙依賴中至關重要。
遺忘門與輸入門的職責混淆:遺忘門管理舊信息的去留,輸入門管理新信息的吸納。兩者必須協調:遺忘門保留有用舊信息,輸入門添加必要新信息。
過高初始化偏差的風險:LSTM 初始化時,遺忘門偏差通常設置較高值(如 +1),使初期大幅保留舊信息。若不知原由直接設為 0,模型會快速遺忘,導致無法學習長期依賴。
遺忘門能解決所有梯度問題的誤信:LSTM 顯著改善梯度消失,但在超長序列(>100 時步)或高複雜度任務中,梯度仍可能衰減,遺忘門無法完全解決。
與相關技術的比較
LSTM 遺忘門 vs GRU 重置門:GRU 用重置門(reset gate)和更新門(update gate)替代 LSTM 的三個門。重置門功能類似遺忘門但更激進,GRU 模型更簡潔,參數少 30%,訓練更快,但表達能力略低。
LSTM vs 標準 RNN:標準 RNN 隱狀態更新為 h_t = tanh(W·h_{t-1} + U·x_t),梯度反向傳播時通過連乘,容易消失。LSTM 的細胞狀態以加法更新,梯度流更穩定,可捕捉 100+ 時步的依賴。
遺忘門 vs 注意力機制:遺忘門是固定的時序管理機制,對每個時步應用統一的遺忘策略。注意力機制更靈活,根據當前查詢動態對所有過去時步加權,粒度更細,但計算成本更高。
加法梯度流 vs 乘法梯度流:LSTM 的加法梯度流(dL/dC_{t-1} = dL/dC_t + ...)本質上是跳躍連接(residual connection),使梯度能跨越多個時步。現代架構(Transformer)也利用跳躍連接實現類似的梯度穩定性。