
深度學習 - 長短期記憶網路(LSTM):以股票預測為例
RNN 雖然有記憶,但記憶力極短。今天我們將學習 LSTM 如何透過「閘門機制」與「行李輸送帶」原理,讓 AI 具備長期記憶,解決梯度消失的致命傷。
WRITTEN BY

- Name
- Harry Chang
LSTM:讓 AI 擁有長久記憶
在 [ML-015] 中,我們看到了 RNN 的潛力,但也發現了它的致命缺陷:金魚腦 (梯度消失)。如果序列太長,RNN 就會忘記開頭發生了什麼。為了解決這個問題,LSTM 應運而生。
神經網路的「大象腦」
RNN 雖然理論上很美好,但實務上因為 梯度消失 (Vanishing Gradient),它記不住長期的資訊。Sepp Hochreiter 和 Jürgen Schmidhuber (1997) 發明了 LSTM (Long Short-Term Memory)。他們引入了 「閘門 (Gates)」 的機制,讓神經網路可以主動選擇 「該忘記什麼」 和 「該記住什麼」。
1. 原理:為什麼 LSTM 記性好?
RNN 像是一個 「傳話遊戲」,話傳到第 100 個人一定會走樣。 LSTM 則像是一條 「行李輸送帶 (Conveyor Belt)」。
1.1 圖解:LSTM 的內部構造

兩條核心動線 (The Two Highways)
- 頂部傳送帶 () - 長期記憶 (Long-term Memory)
- 這是 LSTM 最重要的發明!它像一條高速公路,貫穿整個時間軸。
- 資訊在這條路上流動時,只有簡單的「加法」與「乘法」操作,這讓梯度很難流失。
- 底部工作區 () - 短期記憶 (Short-term Memory)
- 這是當下的輸出,它會不斷與長期記憶 進行交互,決定當下該輸出什麼。
三個閘門 (The Three Gates)
- 遺忘門 (Forget Gate):看著昨天和今天,決定長期記憶裡哪些東西該「丟掉」。
- 輸入門 (Input Gate):決定今天學到的哪些新資訊值得「存入」長期記憶。
- 輸出門 (Output Gate):從長期記憶中提取「現在需要」的部分,作為當下的輸出。
2. 實戰:使用 LSTM 預測股價
與 RNN 不同,這次我們將 Look-back (回看天數) 增加到 50 天,測試 LSTM 的耐力。
# 關鍵程式碼:建立 LSTM 模型
from tensorflow.keras.layers import LSTM, Dense
model = Sequential([
# LSTM 層
# units=50: 50 個 LSTM 單元 (比 RNN 複雜,通常需要多一點單元)
# input_shape=(50, 1): 這次我們回看 50 天!
LSTM(50, input_shape=(50, 1), activation='tanh'),
# 輸出層
Dense(1)
])
3. 模型評估與視覺化
預測結果展示

- 觀察:
- 即使 Look-back 增加到 50 天,LSTM 依然能穩定訓練,沒有發生梯度消失。
- 預測曲線 (紅線) 依然緊緊咬住真實股價。這證明了 LSTM 具備處理 長序列 的能力。
4. 戰略總結: RNN vs LSTM
| 特性 | Simple RNN | LSTM |
|---|---|---|
| 記憶力 | 短期 (金魚腦) | 長期 (大象腦) |
| 結構 | 簡單 | 複雜 (4 個交互層 + 3 個門) |
| 訓練速度 | 快 | 慢 (參數多 4 倍) |
| 適用場景 | 短序列、簡單規律 | 長序列、複雜語意 (NLP)、股票 |
5.LSTM 還能做什麼?(多樣化應用場景)
除了本章介紹的股價預測,LSTM 的「大象記憶力」讓它在許多複雜領域都成為核心技術:
Seq2Seq (機器翻譯/對話系統):
- Encoder (編碼器):負責「讀」,把長長的英文句子壓縮成一個 上下文向量 (Context Vector)。
- Decoder (解碼器):負責「寫」,根據這個向量一個字一個字地生成中文翻譯。
- 應用:Google 翻譯 (早期版本)、Siri 對話、文章自動摘要。
多變量時間序列預測 (Multivariate Forecasting):
- 不再只看「價格」,而是同時考慮「成交量、利率、新聞情緒」來預測未來。
- 應用:天氣預測、電力負載預測、供應鏈需求計畫。
長文本情緒分析 (Long-text Sentiment Analysis):
- RNN 讀到一半就忘了開頭,但 LSTM 能讀完一整篇長影評,準確判斷出作者是褒還是貶。
異常行為偵測 (Anomaly Detection):
- 在長時間的系統日誌 (Logs) 或監視器影片中,辨識出與「過去規律」不符的奇怪模式。
- 應用:信用卡盜刷偵測、工廠機台故障預警。
音樂與創意生成 (Generative AI):
- 讓 AI 學習巴哈的作曲規律,並生成一段具有長遠邏輯(而不只是亂跳音符)的新旋律。
6. 總結
我們學習了 LSTM:
- 它是時間序列領域的霸主 (直到 Transformer 出現之前)。
- 透過 Cell State (傳送帶) 和 Gates (閘門),它完美解決了梯度消失問題。
下一章我們將開啟全新篇章 —— NLP (自然語言處理)。我們將探討電腦如何「讀懂」文字,從最基礎的 Word Embedding (文字向量化) 開始!