ANGELA JIAN
LOADING
回到課程總覽
第 24 篇 L11302 機器學習進階

RNN 與 LSTM:處理「有順序」資料的神經網路

Angela Jian
Angela Jian 簡琬庭
iPAS AI 應用規劃師 / AI Product Builder

一、學習目標

  1. 理解為何「順序」對語言、音樂、股價等資料至關重要
  2. 掌握 RNN(Recurrent Neural Network,遞迴神經網路) 的隱藏狀態傳遞機制
  3. 理解 梯度消失問題(Vanishing Gradient Problem) 如何限制 RNN 的記憶長度
  4. 學會解釋 LSTM(Long Short-Term Memory) 的三道門:遺忘門、輸入門、輸出門
  5. 了解 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 比較

維度LSTMGRU
門的數量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 StateRNN 在每個時間步傳遞的「記憶」向量
梯度消失Vanishing Gradient反向傳播時梯度趨近零,導致早期時間步學不到東西
梯度爆炸Exploding Gradient反向傳播時梯度急速增大,導致訓練不穩定
長短期記憶網路Long Short-Term Memory (LSTM)使用三道門和細胞狀態解決梯度消失的 RNN 變體
細胞狀態Cell StateLSTM 的長期記憶傳送帶,貫穿整個序列
遺忘門Forget Gate決定細胞狀態中哪些資訊要丟棄
輸入門Input Gate決定哪些新資訊要寫入細胞狀態
輸出門Output Gate決定從細胞狀態提取哪些資訊作為輸出
門控遞迴單元Gated Recurrent Unit (GRU)只有重置門和更新門的輕量化 LSTM 變體
重置門Reset GateGRU 中決定遺忘多少過去狀態的門
更新門Update GateGRU 中決定新舊資訊比例的門
雙向遞迴神經網路Bidirectional RNN同時從左到右和從右到左掃描序列的架構
反向傳播Backpropagation訓練神經網路時計算梯度並更新參數的演算法
編碼器-解碼器Encoder-Decoder先將輸入壓縮成向量,再生成輸出的架構
自注意力機制Self-AttentionTransformer 的核心,讓序列中任意位置直接互相關注

四、考試重點提示

考試重點: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 有更多的門控機制,所以記憶能力更強

解答與解析

題號答案解析
Q1BRNN 的核心創新是隱藏狀態(Hidden State):在每個時間步,隱藏狀態不只取決於當前輸入,還取決於上一時間步的隱藏狀態。這讓 RNN 具備了「記憶」能力,能處理語言、音樂、股價等有順序的資料。前饋網路的每次計算彼此獨立,沒有這種跨時間步的記憶機制。
Q2C梯度消失問題的本質是:在反向傳播時,梯度需要從序列末端一路傳回起點,每傳一步就乘以一個小於 1 的數,最終趨近於零。結果是早期時間步的參數幾乎學不到東西,模型只能有效記住最近幾步的資訊,對很久之前發生的事幾乎沒有「記憶」——這就是短期記憶限制(Short-term Memory Limitation)
Q3B細胞狀態(Cell State)是 LSTM 的長期記憶機制,其設計靈感就像一條「傳送帶」——資訊可以在上面幾乎不衰減地傳遞很長距離。三道門(遺忘、輸入、輸出)負責控制什麼資訊上傳送帶、什麼資訊從傳送帶刪除、什麼資訊從傳送帶提取出來。細胞狀態和隱藏狀態是不同的向量(選 D 是錯誤的)。
Q4CGRU 是 LSTM 的輕量版,將 3 道門(遺忘門、輸入門、輸出門)精簡為 2 道門:重置門(Reset Gate)更新門(Update Gate),並將細胞狀態和隱藏狀態合併。GRU 的參數更少、訓練更快,在資料量較少的場景效果與 LSTM 相當,但 LSTM 在超長序列上通常更有優勢。
Q5BRNN/LSTM 被 Transformer 取代有兩個根本原因:① 無法平行計算——RNN 必須按時間步序列處理(t 步計算完才能算 t+1 步),無法利用 GPU 的並行優勢,訓練超慢;② 長距離依賴仍有限制——即使是 LSTM,處理數千個 token 的超長序列時仍有資訊衰減。Transformer 的 Self-Attention 讓任意兩個位置直接關注對方,同時解決這兩個問題。