💡一句話定義
RNN(循環神經網路)= 有「記憶」的網路:每一步都把前面步驟的隱藏狀態帶到下一步,適合處理有順序、時間相依的資料(文字、語音、時間序列)。LSTM 則用閘門與細胞狀態解決 RNN「健忘」的問題。
🎮互動:RNN 健忘 vs LSTM 記得住
句子是「I grew up in France …」。切換 RNN / LSTM,拉動時間步:看上方「來自開頭 I 的記憶保留強度」——RNN 快速衰退(橘),LSTM 靠藍色的細胞狀態高速公路維持高檔。
RNN / LSTM 序列模型互動演示
📞RNN 的致命傷:傳話遊戲
ht = tanh( W·xt + U·ht−1 + b ) ← RNN 的一步
🚗LSTM 的解法:閘門 + 細胞狀態
LSTM 加了一條「記憶高速公路」和三道閘門,資訊可以幾乎無阻礙地長距傳遞:
🛣️細胞狀態 C_t
一條資訊高速公路,用加法式更新、梯度不易消失。
一條資訊高速公路,用加法式更新、梯度不易消失。
🗑️遺忘閘
決定丟掉多少舊記憶。
決定丟掉多少舊記憶。
✍️輸入閘
決定寫入多少新資訊。
決定寫入多少新資訊。
📤輸出閘
決定當下要輸出什麼。
決定當下要輸出什麼。
Ct = ft·Ct−1 + it·C̃t ← 舊記憶×遺忘 + 新資訊×輸入
🔀RNN vs LSTM vs GRU
| 面向 | RNN | LSTM | GRU |
|---|---|---|---|
| 記憶 | 只有隱藏狀態 | 細胞狀態+隱藏狀態 | 只有隱藏狀態 |
| 閘門 | 無 | 遺忘/輸入/輸出(3) | 更新/重置(2) |
| 長期依賴 | 差(梯度消失) | 好 | 好 |
| 參數/速度 | 最少 | 多、較慢 | 較少、較快 |
⚠️既然有 LSTM,為何還要 Transformer?
RNN/LSTM 必須按順序逐步計算、無法平行化,長序列訓練仍吃力,超長依賴也有極限。Transformer 用注意力可平行處理整個序列、並直接連結遠距位置,因此在 NLP 大幅取代了 RNN/LSTM。不過 RNN/LSTM 仍是理解序列建模與時間序列任務的重要基礎。
✅自我檢測
Q1. RNN 為什麼適合序列資料?
它有「記憶」——每一步都帶著前面步驟的隱藏狀態,能處理有順序、時間相依的資料,如文字、語音、時間序列。
Q2. 梯度消失/爆炸是怎麼發生的?
反向傳播沿時間連乘多步梯度:連乘因子小於 1 會指數縮小(消失、學不到長期依賴)、大於 1 會指數放大(爆炸),使樸素 RNN 難學長序列。
Q3. LSTM 如何解決長期記憶問題?
引入細胞狀態與遺忘/輸入/輸出三個閘門,用加法式更新讓資訊長距傳遞、選擇性記住或遺忘,大幅緩解梯度消失。
Q4. GRU 和 LSTM 差在哪?為何後來用 Transformer?
GRU 是簡化版(更新/重置兩閘、無獨立 cell state,較快)。RNN/LSTM 都得循序計算、無法平行、長序列吃力;Transformer 可平行且直連遠距,成為 NLP 主流。
🎯重點整理
- RNN:有記憶、循序傳隱藏狀態,適合序列。
- 問題:傳話遊戲式健忘 → 梯度消失/爆炸。
- LSTM:細胞狀態+三閘門,記得住長期。
- GRU:簡化版,兩閘、較快,效果相近。
- 之後:Transformer 可平行、直連遠距,取代之。