深度學習 - 長短期記憶網路(LSTM):以股票預測為例

深度學習 - 長短期記憶網路(LSTM):以股票預測為例

RNN 雖然有記憶,但記憶力極短。今天我們將學習 LSTM 如何透過「閘門機制」與「行李輸送帶」原理,讓 AI 具備長期記憶,解決梯度消失的致命傷。


LSTM:讓 AI 擁有長久記憶

[ML-015] 中,我們看到了 RNN 的潛力,但也發現了它的致命缺陷:金魚腦 (梯度消失)。如果序列太長,RNN 就會忘記開頭發生了什麼。為了解決這個問題,LSTM 應運而生。

神經網路的「大象腦」

RNN 雖然理論上很美好,但實務上因為 梯度消失 (Vanishing Gradient),它記不住長期的資訊。Sepp HochreiterJürgen Schmidhuber (1997) 發明了 LSTM (Long Short-Term Memory)。他們引入了 「閘門 (Gates)」 的機制,讓神經網路可以主動選擇 「該忘記什麼」「該記住什麼」


1. 原理:為什麼 LSTM 記性好?

RNN 像是一個 「傳話遊戲」,話傳到第 100 個人一定會走樣。 LSTM 則像是一條 「行李輸送帶 (Conveyor Belt)」

1.1 圖解:LSTM 的內部構造

LSTM Concept

兩條核心動線 (The Two Highways)

  1. 頂部傳送帶 (CtC_t) - 長期記憶 (Long-term Memory)
    • 這是 LSTM 最重要的發明!它像一條高速公路,貫穿整個時間軸。
    • 資訊在這條路上流動時,只有簡單的「加法」與「乘法」操作,這讓梯度很難流失。
  2. 底部工作區 (hth_t) - 短期記憶 (Short-term Memory)
    • 這是當下的輸出,它會不斷與長期記憶 CtC_t 進行交互,決定當下該輸出什麼。

三個閘門 (The Three Gates)

  1. 遺忘門 (Forget Gate):看著昨天和今天,決定長期記憶裡哪些東西該「丟掉」。
  2. 輸入門 (Input Gate):決定今天學到的哪些新資訊值得「存入」長期記憶。
  3. 輸出門 (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. 模型評估與視覺化

預測結果展示

Prediction Result
  • 觀察
    • 即使 Look-back 增加到 50 天,LSTM 依然能穩定訓練,沒有發生梯度消失。
    • 預測曲線 (紅線) 依然緊緊咬住真實股價。這證明了 LSTM 具備處理 長序列 的能力。

4. 戰略總結: RNN vs LSTM

特性Simple RNNLSTM
記憶力短期 (金魚腦)長期 (大象腦)
結構簡單複雜 (4 個交互層 + 3 個門)
訓練速度慢 (參數多 4 倍)
適用場景短序列、簡單規律長序列、複雜語意 (NLP)、股票

5.LSTM 還能做什麼?(多樣化應用場景)

除了本章介紹的股價預測,LSTM 的「大象記憶力」讓它在許多複雜領域都成為核心技術:

  1. Seq2Seq (機器翻譯/對話系統)

    • Encoder (編碼器):負責「讀」,把長長的英文句子壓縮成一個 上下文向量 (Context Vector)
    • Decoder (解碼器):負責「寫」,根據這個向量一個字一個字地生成中文翻譯。
    • 應用:Google 翻譯 (早期版本)、Siri 對話、文章自動摘要。
  2. 多變量時間序列預測 (Multivariate Forecasting)

    • 不再只看「價格」,而是同時考慮「成交量、利率、新聞情緒」來預測未來。
    • 應用:天氣預測、電力負載預測、供應鏈需求計畫。
  3. 長文本情緒分析 (Long-text Sentiment Analysis)

    • RNN 讀到一半就忘了開頭,但 LSTM 能讀完一整篇長影評,準確判斷出作者是褒還是貶。
  4. 異常行為偵測 (Anomaly Detection)

    • 在長時間的系統日誌 (Logs) 或監視器影片中,辨識出與「過去規律」不符的奇怪模式。
    • 應用:信用卡盜刷偵測、工廠機台故障預警。
  5. 音樂與創意生成 (Generative AI)

    • 讓 AI 學習巴哈的作曲規律,並生成一段具有長遠邏輯(而不只是亂跳音符)的新旋律。

6. 總結

我們學習了 LSTM

  • 它是時間序列領域的霸主 (直到 Transformer 出現之前)。
  • 透過 Cell State (傳送帶)Gates (閘門),它完美解決了梯度消失問題。

下一章我們將開啟全新篇章 —— NLP (自然語言處理)。我們將探討電腦如何「讀懂」文字,從最基礎的 Word Embedding (文字向量化) 開始!