在前兩篇文章,我們分別介紹了 RNN (Recurrent Neural Network) 與 LSTM (Long Short-Term Memory)。RNN 為序列建模提供了基礎架構,但受限於梯度消失與爆炸問題,難以捕捉長距離依賴;LSTM 則透過引入 記憶單元 (Cell State) 與 門控機制 (Gating Mechanism),成功緩解了這一問題。
然而,LSTM 的設計相對複雜,每個時間步需要更新三個門 (遺忘門、輸入門、輸出門) 與一個記憶單元,計算成本高且參數量龐大。2014 年,Cho 等人在處理機器翻譯問題時提出了一種更簡化的替代方案——GRU (Gated Recurrent Unit)。
GRU 的核心思想是: 保留 LSTM 的核心優勢 (門控記憶機制),但去除冗餘設計,讓模型更輕量、更高效。
LSTM 雖然強大,但存在兩個痛點:
GRU 將 LSTM 的「遺忘門」與「輸入門」合併為「更新門 (Update Gate)」,並去掉獨立的記憶單元,直接用隱藏狀態 $h_t$ 來承載資訊。這樣的設計大幅簡化了結構,同時保留了建模長距依賴的能力。
可以用「筆記本」的比喻來理解:
因此,GRU 本質上是 LSTM 的精簡版,保留長期記憶能力,但運算量較小。
特性 | LSTM | GRU |
---|---|---|
記憶單元 | 有獨立的 Cell State $C_t$ | 無,僅用隱藏狀態 $h_t$ |
門的數量 | 三個門 (輸入、遺忘、輸出) | 兩個門 (更新、重置) |
參數量 | 較多 | 較少 |
訓練速度 | 較慢 | 較快 |
表現 | 適合複雜長序列 | 在多數任務上與 LSTM 相近 |
應用 | NLP、翻譯、語音辨識 | NLP、時間序列、邊緣運算 |
研究結果顯示,在許多應用中,GRU 與 LSTM 的表現非常接近,有時甚至更好;但在特別長的序列上,LSTM 仍可能優於 GRU。
GRU 的誕生可以看作是 RNN → LSTM 的進一步演化:
雖然近年來 Transformer 已經取代了 LSTM/GRU,成為 NLP 的主流,但在計算資源有限、序列長度中等的情境下,GRU 仍然是一個高性價比的選擇。
GRU (Gated Recurrent Unit) 是 LSTM 的簡化版本,將遺忘門與輸入門合併為更新門,並移除了獨立的記憶單元,直接使用隱藏狀態 $h_t$ 來同時承擔「記憶」與「輸出」。
這樣的設計讓 GRU 在保有建模長距依賴能力的同時,參數更少、訓練更快,特別適合於 資源受限的應用場景。在大部分任務中,GRU 的表現與 LSTM 相差無幾,是一個實務上非常有吸引力的選擇。
然而,隨著 Transformer 的興起,LSTM 與 GRU 在 NLP 領域的應用逐漸退居次要地位。但在 時間序列預測、語音處理、邊緣設備 等任務中,GRU 依然有不可替代的價值。
下一篇,我們將延伸到 序列到序列 (Seq2Seq) 架構,看看如何將 LSTM 或 GRU 應用在機器翻譯等多對多的序列建模任務中。