一、學習目標
- 理解為何「順序」對語言、音樂、股價等資料至關重要
- 掌握 RNN(Recurrent Neural Network,遞迴神經網路) 的隱藏狀態傳遞機制
- 理解 梯度消失問題(Vanishing Gradient Problem) 如何限制 RNN 的記憶長度
- 學會解釋 LSTM(Long Short-Term Memory) 的三道門:遺忘門、輸入門、輸出門
- 了解 GRU、雙向 RNN 等衍生架構,以及 RNN 最終被 Transformer 取代的原因
二、核心內容
2.1 為什麼「順序」這麼重要?
普通神經網路(Feedforward Neural Network)每次處理一筆輸入時,完全不記得之前看過什麼。對於圖片分類來說,這沒問題——每張圖片是獨立的。但有些資料天生有順序,改變順序就改變了意義:
- 語言:「狗咬人」和「人咬狗」,詞相同、順序不同,意思截然不同。
- 股票價格:今天漲跌,必須參考昨天、上週、上個月的趨勢。
- 音樂:同一組音符,不同順序就是不同旋律。
- 對話:「你剛才說的那件事」——AI 必須記住幾句話前說過什麼。
生活類比:
想像閱讀一本懸疑小說。讀到第 300 頁時,你的判斷來自於前 299 頁積累的線索——兇手是誰、誰有不在場證明、哪句話聽起來有問題。如果你每讀一頁就失憶,你根本無法推理。普通神經網路就是這種「每頁失憶型讀者」;RNN 才是能記住劇情的讀者。
這類有順序的資料統稱為時間序列資料(Sequential / Time-Series Data),需要能「記住過去」的模型來處理。
2.2 RNN 的基本概念:有記憶的神經網路
RNN(Recurrent Neural Network,遞迴神經網路) 的核心創新是加入了一個隱藏狀態(Hidden State),將上一個時間步的資訊傳遞給下一個時間步。
時間步 t-1 時間步 t 時間步 t+1
輸入 x(t-1) 輸入 x(t) 輸入 x(t+1)
↓ ↓ ↓
[隱藏狀態 h(t-2)] → [隱藏狀態 h(t-1)] → [隱藏狀態 h(t)] → ...
↓ ↓ ↓
輸出 y(t-1) 輸出 y(t) 輸出 y(t+1)
- 輸入(Input):當前時間步的資料(例如句子的第 t 個字)
- 隱藏狀態(Hidden State):從上一步帶來的「記憶」,會和當前輸入一起計算
- 輸出(Output):這個時間步的預測結果
生活類比:
想像你在接龍講故事。輪到你說時,你會把剛才聽到的故事(隱藏狀態)加上自己這句(新輸入),合在一起繼續說(輸出),然後把完整的故事記憶傳給下一個人。RNN 的每個神經元就是這個接龍中的「每一個人」。
RNN 三種常見結構:
| 結構 | 說明 | 應用範例 |
|---|---|---|
| 多對一(Many-to-One) | 序列輸入,單一輸出 | 情感分析(一句話 → 正/負評) |
| 一對多(One-to-Many) | 單一輸入,序列輸出 | 圖片生成文字描述 |
| 多對多(Many-to-Many) | 序列輸入,序列輸出 | 機器翻譯(中文句子 → 英文句子) |
考試重點:RNN 的核心是隱藏狀態(Hidden State),它將上一時間步的資訊傳遞到下一時間步,讓網路具備「記憶」能力。這是 RNN 和普通前饋神經網路最根本的差異。
2.3 梯度消失問題:RNN 的記憶為何那麼短?
RNN 在理論上可以記住很長的序列,但實際訓練時碰到一個嚴重問題:梯度消失(Vanishing Gradient Problem)。
訓練神經網路需要用**反向傳播(Backpropagation)**計算每個參數應該如何調整。但在 RNN 中,梯度需要從最後一個時間步一路往回傳——如果序列很長,梯度在傳遞過程中會不斷被乘以小於 1 的數字,最終趨近於零,導致早期時間步的參數幾乎學不到東西。
生活類比:
就像玩「傳話遊戲(Telephone Game)」——第一個人說「明天下午三點在圖書館集合」,傳到第二十個人可能變成「明天哪個點在哪裡亂跑」。訊息在長距離傳遞中不斷失真。梯度消失就是這種資訊衰減——模型「記不住」很久以前發生的事。
梯度消失的影響:
| 問題 | 說明 |
|---|---|
| 短期記憶限制 | RNN 實際上只能有效記住最近幾個時間步的資訊 |
| 長距離依賴失效 | 句子第一個字對最後一個字的預測幾乎沒有影響 |
| 訓練不穩定 | 梯度也可能爆炸(Exploding Gradient),使訓練發散 |
這個問題催生了 LSTM 的誕生。
2.4 LSTM:用三道門解決長期記憶問題
LSTM(Long Short-Term Memory,長短期記憶網路) 由 Hochreiter 和 Schmidhuber 於 1997 年提出,核心創新是引入了細胞狀態(Cell State) 和三個門控機制(Gates),讓模型能選擇性地記住或遺忘資訊。
生活類比:
想像你搬家,需要整理所有東西。LSTM 的三道門就是你的三個決策:
- 遺忘門:「這個舊東西還要嗎?不要的丟掉。」
- 輸入門:「新買的哪些東西值得放進箱子裡?」
- 輸出門:「今晚要用到什麼?從箱子裡拿出來。」 細胞狀態就是那個搬家箱子——長期保存真正重要的東西。
細胞狀態(Cell State):記憶的傳送帶
細胞狀態像一條傳送帶(Conveyor Belt),貫穿整個序列。資訊可以在傳送帶上幾乎不衰減地傳遞很長的距離,解決了原始 RNN 的梯度消失問題。
──────────────────── 細胞狀態 C(t) ──────────────────→
↑遺忘 ↑加入新記憶
[遺忘門] [輸入門] [輸出門]
↑ ↑ ↓
隱藏狀態 h(t-1) + 輸入 x(t) 輸出 h(t)
遺忘門(Forget Gate):決定丟棄什麼
遺忘門輸出一個 0 到 1 之間的數值,決定細胞狀態中的哪些資訊要保留(接近 1)或丟棄(接近 0)。
生活類比:
讀完一篇新聞後,你會自動忘掉不重要的細節(今天天氣如何),但牢記關鍵事實(誰做了什麼)。遺忘門就是這個「選擇性遺忘」的機制。
輸入門(Input Gate):決定記住什麼
輸入門決定當前輸入中有哪些新資訊值得寫入細胞狀態。它由兩部分組成:
- Sigmoid 層:決定哪些值要更新(0 到 1)
- Tanh 層:生成候選新資訊的內容(-1 到 1)
生活類比:
你在讀書時會用螢光筆劃重點。輸入門就是在決定「這句話值不值得劃線」以及「劃完線之後在旁邊寫什麼筆記」。
輸出門(Output Gate):決定輸出什麼
輸出門決定從細胞狀態中提取哪些資訊作為當前時間步的輸出(隱藏狀態 h(t))。
生活類比:
被問到一個問題時,你腦中有很多知識,但只說出「跟這個問題相關的那部分」。輸出門就是這個「按需提取」的機制。
三道門總覽:
| 門 | 英文 | 功能 | 類比 |
|---|---|---|---|
| 遺忘門 | Forget Gate | 決定細胞狀態中哪些資訊要丟棄 | 清理舊記憶 |
| 輸入門 | Input Gate | 決定哪些新資訊要寫入細胞狀態 | 記錄新筆記 |
| 輸出門 | Output Gate | 決定從細胞狀態提取哪些資訊輸出 | 按需回憶 |
考試重點:LSTM 解決梯度消失問題的關鍵是細胞狀態(Cell State)——它像一條傳送帶,讓資訊能長距離傳遞而不衰減。三道門的名稱、功能和順序(遺忘→輸入→輸出)是常見考點。
2.5 GRU:精簡版的 LSTM
GRU(Gated Recurrent Unit,門控遞迴單元) 是 LSTM 的簡化版本,由 Cho 等人於 2014 年提出。它將三道門壓縮成兩道門:
| 門 | 英文 | 功能 |
|---|---|---|
| 重置門 | Reset Gate | 決定要遺忘多少過去的隱藏狀態 |
| 更新門 | Update Gate | 決定新資訊和舊記憶各佔多少比例 |
GRU 沒有獨立的細胞狀態,將隱藏狀態和細胞狀態合併為一個。
GRU vs LSTM 比較:
| 維度 | LSTM | GRU |
|---|---|---|
| 門的數量 | 3(遺忘、輸入、輸出) | 2(重置、更新) |
| 參數量 | 較多 | 較少 |
| 訓練速度 | 較慢 | 較快 |
| 效果 | 在長序列上通常更好 | 在資料量較少時表現相當 |
| 適用情境 | 需要精細記憶控制的任務 | 計算資源有限、快速實驗 |
生活類比:
LSTM 是高級 SLR 相機——功能完整但操作複雜;GRU 是高階手機相機——功能夠用、更輕便、更快拍。大多數情況兩者效果差不多,選哪個取決於你的需求和資源。
2.6 雙向 RNN:同時前後看
標準 RNN 只從左到右讀取序列(過去→未來)。但有時候,理解一個詞需要同時知道它前面和後面的上下文。
雙向 RNN(Bidirectional RNN) 同時訓練兩個 RNN:一個從左到右、一個從右到左,最後合併兩個方向的隱藏狀態。
生活類比:
你在看一份合約,想確認某個條款的意思。你不只看這個條款的前文,也會往後翻看後續條款——前後都看,理解才完整。雙向 RNN 就是「同時從頭讀到尾、又從尾讀到頭」的模型。
應用場景:
- 命名實體識別(NER):判斷「蘋果」是水果還是 Apple 公司,需要看前後文
- 機器翻譯的編碼器:理解完整句子再翻譯
- 情感分析:「雖然服務很差,但食物還不錯」——「雖然」之後的詞影響整句情感
考試重點:雙向 RNN(Bidirectional RNN)用兩個方向的 RNN 各自掃描序列,適合需要「前後文」的任務(如 NER、翻譯編碼器)。它不適合用在需要即時輸出的任務(如語音識別的實時轉錄),因為那時還不知道「後面的字」是什麼。
2.7 RNN/LSTM 的應用場景
| 應用領域 | 任務範例 | 適用架構 |
|---|---|---|
| 語音識別(Speech Recognition) | 語音轉文字(ASR) | 雙向 LSTM |
| 機器翻譯(Machine Translation) | 中文翻英文 | Encoder-Decoder LSTM |
| 情感分析(Sentiment Analysis) | 評論正負評判斷 | 多對一 LSTM/GRU |
| 文字生成(Text Generation) | 自動寫歌詞、故事 | 多對多 RNN |
| 時間序列預測(Time-Series Forecasting) | 股價預測、電力需求預測 | LSTM |
| 音樂生成(Music Generation) | 自動作曲 | 多對多 LSTM |
2.8 RNN 的限制與 Transformer 的崛起
儘管 LSTM 解決了梯度消失問題,RNN 家族仍有兩個根本限制,最終導致 Transformer 在 2017 年後全面取代 RNN:
| 限制 | 說明 | Transformer 如何解決 |
|---|---|---|
| 無法平行處理(No Parallelism) | RNN 必須按時間步一步一步計算,無法並行,訓練速度慢 | Transformer 的 Self-Attention 可以一次處理整個序列,高度並行 |
| 長距離依賴仍不完美(Long-range Dependency) | 即使是 LSTM,對非常長的序列(數千個 token)仍有資訊衰減 | Self-Attention 讓任意兩個位置直接互相關注,不受距離限制 |
生活類比:
RNN 就像一位書記員,必須逐字逐句謄寫文件——再快也有速度上限,而且抄到最後可能忘了開頭說什麼。Transformer 是一個可以同時讓一百人分工協作的系統——每個人都能直接和其他任何人溝通,整體效率天壤之別。
考試重點:RNN/LSTM 被 Transformer 取代的兩個核心原因:① 無法平行計算(Sequential computation),訓練慢;② 長距離依賴處理仍不理想。Transformer 的 Self-Attention 同時解決這兩個問題。
三、關鍵名詞中英對照
| 中文 | 英文 | 說明 |
|---|---|---|
| 遞迴神經網路 | Recurrent Neural Network (RNN) | 具備隱藏狀態、能處理序列資料的神經網路 |
| 時間序列資料 | Sequential / Time-Series Data | 有順序性的資料,如語音、文字、股價 |
| 隱藏狀態 | Hidden State | RNN 在每個時間步傳遞的「記憶」向量 |
| 梯度消失 | Vanishing Gradient | 反向傳播時梯度趨近零,導致早期時間步學不到東西 |
| 梯度爆炸 | Exploding Gradient | 反向傳播時梯度急速增大,導致訓練不穩定 |
| 長短期記憶網路 | Long Short-Term Memory (LSTM) | 使用三道門和細胞狀態解決梯度消失的 RNN 變體 |
| 細胞狀態 | Cell State | LSTM 的長期記憶傳送帶,貫穿整個序列 |
| 遺忘門 | Forget Gate | 決定細胞狀態中哪些資訊要丟棄 |
| 輸入門 | Input Gate | 決定哪些新資訊要寫入細胞狀態 |
| 輸出門 | Output Gate | 決定從細胞狀態提取哪些資訊作為輸出 |
| 門控遞迴單元 | Gated Recurrent Unit (GRU) | 只有重置門和更新門的輕量化 LSTM 變體 |
| 重置門 | Reset Gate | GRU 中決定遺忘多少過去狀態的門 |
| 更新門 | Update Gate | GRU 中決定新舊資訊比例的門 |
| 雙向遞迴神經網路 | Bidirectional RNN | 同時從左到右和從右到左掃描序列的架構 |
| 反向傳播 | Backpropagation | 訓練神經網路時計算梯度並更新參數的演算法 |
| 編碼器-解碼器 | Encoder-Decoder | 先將輸入壓縮成向量,再生成輸出的架構 |
| 自注意力機制 | Self-Attention | Transformer 的核心,讓序列中任意位置直接互相關注 |
四、考試重點提示
考試重點:RNN 與普通前饋神經網路(Feedforward Neural Network)的關鍵差異是隱藏狀態(Hidden State)。隱藏狀態在時間步之間傳遞,賦予 RNN「記憶」能力,使其能處理序列資料。
考試重點:梯度消失問題(Vanishing Gradient Problem) 是原始 RNN 的根本缺陷——梯度在長序列的反向傳播中趨近於零,導致模型無法學習長距離依賴關係。LSTM 用「細胞狀態傳送帶」解決此問題。
考試重點:LSTM 的三道門順序:遺忘門(Forget Gate)→ 輸入門(Input Gate)→ 輸出門(Output Gate)。記憶口訣:「先忘舊的、再記新的、再決定輸出什麼」。
考試重點:GRU vs LSTM——GRU 用 2 道門(重置門 Reset Gate、更新門 Update Gate)取代 LSTM 的 3 道門,參數更少、訓練更快,效果在大多數任務上與 LSTM 相當。
考試重點:RNN 被 Transformer 取代的兩大原因:① 無法平行計算(必須按時間步序列處理);② 長距離依賴處理仍有限制。考題常以「為什麼 Transformer 比 LSTM 更適合處理長文本」的形式出現。
考試重點:雙向 RNN 適合需要前後文的任務(命名實體識別、機器翻譯編碼器),但不適合需要即時輸出的任務(實時語音識別),因為雙向架構需要看完整個序列才能輸出。
Q1. RNN(遞迴神經網路)與普通前饋神經網路最根本的差異是什麼?
- A. RNN 使用卷積層提取特徵,前饋網路不使用
- B. RNN 具備隱藏狀態(Hidden State),能將上一時間步的資訊傳遞給下一時間步
- C. RNN 只能處理圖像資料,前饋網路可以處理所有類型資料
- D. RNN 的訓練速度比前饋神經網路快很多
Q2. 「梯度消失問題(Vanishing Gradient Problem)」對 RNN 造成的主要影響是?
- A. 模型無法處理短序列,只適合長序列
- B. 模型的訓練速度過快,容易過擬合
- C. 模型難以學習序列中相距較遠的元素之間的依賴關係,形成短期記憶限制
- D. 模型的輸出維度無法和輸入維度匹配
Q3. 關於 LSTM 的「細胞狀態(Cell State)」,下列敘述何者最正確?
- A. 細胞狀態是每個時間步的輸入向量,不跨時間步傳遞
- B. 細胞狀態是 LSTM 的長期記憶,像一條傳送帶貫穿整個序列,讓資訊能長距離傳遞而不衰減
- C. 細胞狀態只在遺忘門啟動時才會更新,其他時候保持不變
- D. 細胞狀態和隱藏狀態完全相同,是同一個向量的兩種名稱
Q4. GRU(Gated Recurrent Unit)與 LSTM 的主要差異是?
- A. GRU 使用 3 道門,LSTM 使用 2 道門
- B. GRU 沒有任何門控機制,直接使用全連接層
- C. GRU 使用 2 道門(重置門、更新門),比 LSTM 的 3 道門更輕量,訓練更快
- D. GRU 只能用於圖像識別,LSTM 才能用於文字處理
Q5. 下列哪一項是 RNN/LSTM 最終被 Transformer 取代的核心原因?
- A. RNN/LSTM 的準確率永遠低於 Transformer,在所有任務上都表現更差
- B. RNN 必須按時間步序列計算,無法平行處理,導致訓練速度慢;且對超長序列的長距離依賴處理仍有限制
- C. RNN/LSTM 無法處理文字資料,只能用於數值型時間序列
- D. Transformer 比 RNN 有更多的門控機制,所以記憶能力更強
解答與解析
| 題號 | 答案 | 解析 |
|---|---|---|
| Q1 | B | RNN 的核心創新是隱藏狀態(Hidden State):在每個時間步,隱藏狀態不只取決於當前輸入,還取決於上一時間步的隱藏狀態。這讓 RNN 具備了「記憶」能力,能處理語言、音樂、股價等有順序的資料。前饋網路的每次計算彼此獨立,沒有這種跨時間步的記憶機制。 |
| Q2 | C | 梯度消失問題的本質是:在反向傳播時,梯度需要從序列末端一路傳回起點,每傳一步就乘以一個小於 1 的數,最終趨近於零。結果是早期時間步的參數幾乎學不到東西,模型只能有效記住最近幾步的資訊,對很久之前發生的事幾乎沒有「記憶」——這就是短期記憶限制(Short-term Memory Limitation)。 |
| Q3 | B | 細胞狀態(Cell State)是 LSTM 的長期記憶機制,其設計靈感就像一條「傳送帶」——資訊可以在上面幾乎不衰減地傳遞很長距離。三道門(遺忘、輸入、輸出)負責控制什麼資訊上傳送帶、什麼資訊從傳送帶刪除、什麼資訊從傳送帶提取出來。細胞狀態和隱藏狀態是不同的向量(選 D 是錯誤的)。 |
| Q4 | C | GRU 是 LSTM 的輕量版,將 3 道門(遺忘門、輸入門、輸出門)精簡為 2 道門:重置門(Reset Gate) 和 更新門(Update Gate),並將細胞狀態和隱藏狀態合併。GRU 的參數更少、訓練更快,在資料量較少的場景效果與 LSTM 相當,但 LSTM 在超長序列上通常更有優勢。 |
| Q5 | B | RNN/LSTM 被 Transformer 取代有兩個根本原因:① 無法平行計算——RNN 必須按時間步序列處理(t 步計算完才能算 t+1 步),無法利用 GPU 的並行優勢,訓練超慢;② 長距離依賴仍有限制——即使是 LSTM,處理數千個 token 的超長序列時仍有資訊衰減。Transformer 的 Self-Attention 讓任意兩個位置直接關注對方,同時解決這兩個問題。 |