特別適合序列與時間依賴。
例如:氣溫、股價、語音、文字。
循環神經網路 vs 卷積神經網路|「RNN 看時間,CNN 抓局部特徵!」
特別適合序列與時間依賴。
例如:氣溫、股價、語音、文字。
特別擅長空間結構與局部模式。
例如:圖片中的邊緣、紋理、形狀。
RNN:時間/順序
CNN:空間/局部特徵
有「記憶」的序列模型。
每一步會把目前輸入與前一步的 hidden state 結合,再把資訊傳到下一步。
Sequence時間序列Hidden State用卷積核掃描局部區域。
透過共享權重的 filters 擷取局部特徵,再逐層組合成更高階的特徵。
ConvolutionFilter局部特徵RNN 看到今天氣溫:
看到新資料:
前面的 hidden state 會影響現在的判斷。
持續往前:
過去資訊 → 現在 → 預測未來
這就是序列建模的概念。
CNN 不一定一次看完整張圖。
小小的卷積核在圖片上滑動。
低階特徵逐層組合:
邊緣 → 形狀 → 物件
最後辨認出貓。
不用背公式,但要知道:RNN 的核心就是「目前輸入+前一步 hidden state」一起決定現在的狀態。
資訊只經過幾步:
過去資訊還傳得過來。
反向傳播時,梯度可能一路變小。
長期依賴資訊可能難以有效學習。
這就是經典 RNN 的重要限制之一。
| 比較 | 🔵 RNN | 🟠 CNN |
|---|---|---|
| 主要關注 | 時間、順序、序列依賴 | 局部空間特徵、局部模式 |
| 核心機制 | Hidden State 循環傳遞 | Filter/Kernel 卷積掃描 |
| 常見資料 | 時間序列、文字、語音 | 影像、空間資料;也可處理其他有局部模式的序列資料 |
| 代表問題 | 「前面的資訊會不會影響後面?」 | 「附近這一小塊有什麼特徵?」 |
| 經典挑戰 | 長序列可能有梯度消失/爆炸 | 需要設計合適的 kernel、stride、padding 等 |
| 漫畫 | 🧠「我記得前面發生什麼」 | 🔍「我掃描附近有什麼」 |
輸入:
可以用於氣候、能源、需求等時間序列預測。
輸入是一連串有順序的資料:
RNN 可以建模前後順序與上下文依賴。
看到「時間序列、前後順序、歷史資料」→ RNN
看到「圖片、局部特徵、Filter、Kernel」→ CNN
⭐ 看到「長序列+梯度消失」→ 傳統 RNN 的經典考點。
A. RNN 無法處理可變長度的序列輸入
B. RNN 在長序列訓練中可能出現梯度消失,影響模型效果
C. RNN 無法捕捉時間上的依賴關係
D. RNN 只能用於分類任務
| 題目關鍵字 | 立刻想到 |
|---|---|
| 時間序列 | 🔵 RNN |
| 前後順序/歷史資訊 | 🔵 RNN |
| Hidden State | 🔵 RNN |
| 長序列+梯度消失 | 🚨 傳統 RNN |
| 圖片/空間結構 | 🟠 CNN |
| Filter/Kernel/卷積 | 🟠 CNN |
| 局部特徵 | 🟠 CNN |
| LSTM/GRU | 🔵 改善 RNN 長期依賴問題的常見架構 |
⭐ 最終口訣:
「RNN 看時間、CNN 看局部;RNN 記太久,可能梯度消失。」