第二部:《深度學習》35/100 多層 RNN 與雙向 RNN 🔄 往前也往後看,語境更完整!

更新 發佈閱讀 8 分鐘

AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》

35/100 第四週:📌 循環神經網路 RNN

35.多層 RNN 與雙向 RNN 🔄 往前也往後看,語境更完整!

________________________________________

✅ 問題引入:一層 RNN 不夠用?

在現實任務中,例如閱讀句子、分析語音、預測股價,「單層記憶」常常不足以捕捉深層語意或複雜時間依賴。

所以有兩個重要進化版:

多層 RNN:堆疊更深 → 學更抽象的序列表示

雙向 RNN:不只看「前面」,還能看「後面」的上下文

________________________________________

🔁 一、多層 RNN(Stacked RNN)

就像 CNN 疊多層來學高階特徵,RNN 也能「堆疊多層」,讓高層能從低層輸出的時間表示中提煉更抽象語意。

🧠 原理:

第一層處理原始序列 → 得到時間步向量

第二層輸入為第一層的隱藏狀態序列

可使用 2~4 層(超過可能過擬合或梯度問題)

⚙️ Keras 實作:

python

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import LSTM, Dense

model = Sequential([

LSTM(128, return_sequences=True, input_shape=(100, 64)), # 第一層

LSTM(64), # 第二層

Dense(1, activation='sigmoid')

])

這段程式碼建立了一個雙層 LSTM 模型,用於處理長序列資料並執行二分類任務。第一層 LSTM(128, return_sequences=True) 表示輸出整個序列的隱藏狀態,以便傳遞給下一層;第二層 LSTM(64) 則僅輸出最後一個時間步的隱藏狀態,代表整段序列的總結特徵。最後透過 Dense(1, activation='sigmoid') 輸出二元分類結果(如正/負、漲/跌)。這種堆疊式 LSTM 結構能更深入地學習序列中的長期依賴與高階特徵,適合應用於如情感分析、語音辨識或時間序列預測等任務。

📌 return_sequences=True → 保留所有時間步的輸出給下一層。

________________________________________

🔁 二、雙向 RNN(Bidirectional RNN)

一般 RNN 是「從前看向後」,但語言或語音中,下一個字也能幫助理解前面的詞!

舉例:

「他喜歡喝...」你猜可能是「奶茶」

但「他喜歡喝奶...」 → "奶" 更確定是「奶茶」或「奶昔」

✅ 雙向 RNN 同時建立「順序記憶 + 逆序記憶」,輸出時合併兩者上下文資訊!

________________________________________

📐 雙向 RNN 原理圖:


x1 → [→ Cell] → h1→

x2 → [→ Cell] → h2→

x3 → [→ Cell] → h3→


x3 → [← Cell] → h3←

x2 → [← Cell] → h2←

x1 → [← Cell] → h1←

合併 h_t = [h_t→ ; h_t←]

這張圖示說明了**雙向 RNN(Bidirectional RNN)**的基本原理。它同時建立了兩個獨立的 RNN:一個從前往後處理序列(→),另一個從後往前處理序列(←)。 對於每個時間步 t,模型分別計算出正向隱藏狀態 ht→h_與反向隱藏狀態 ht←h_ ,再將兩者串接合併為最終的輸出表示:ht=[ht→ ; ht←]

這種設計讓模型能同時利用過去與未來的上下文資訊,特別適合處理整體語意理解任務,如命名實體辨識(NER)、機器翻譯或語音辨識等,提升對序列全貌的理解能力。

________________________________________

⚙️ Keras 實作:

python

from tensorflow.keras.layers import Bidirectional

model = Sequential([

Bidirectional(LSTM(64), input_shape=(100, 64)),

Dense(1, activation='sigmoid')

])

這段程式碼建立了一個使用 雙向 LSTM(Bidirectional LSTM) 的序列模型,用於處理具有時間依賴性的二分類任務。透過 Bidirectional(LSTM(64)),模型同時從序列的正向與反向學習時間特徵,能夠捕捉輸入資料中前後文的完整資訊;輸入資料為長度 100、每步 64 維的序列,最後經由一個 Dense 層與 sigmoid 激活函數輸出分類機率。這種架構常用於語言理解、情感分析或語音辨識等需要雙向上下文的應用場景。

📌 雙向結構會將輸出維度變為 2 倍(前向 + 後向拼接)

________________________________________

📊 多層 vs 雙向 比較表:

·  多層 RNN

·        說明:透過多層堆疊,學習更深層次的序列特徵表示。

·        適合任務:長文本摘要、序列到序列模型(seq2seq)應用。

·  雙向 RNN

·        說明:同時考慮序列的前向與後向資訊,語境理解更完整。

·        適合任務:情感分析、命名實體辨識(NER)、語音辨識。

________________________________________

🧠 多層 + 雙向:可以一起用嗎?

✅ 當然可以,而且很常見!如下:

python

model = Sequential([

Bidirectional(LSTM(128, return_sequences=True), input_shape=(100, 64)),

Bidirectional(LSTM(64)),

Dense(1, activation='sigmoid')

])

這就是雙向堆疊式 RNN,讓模型具備「深層 + 雙向」記憶力,廣泛應用在:

BERT 模型

自動字幕對齊

高階翻譯模型

________________________________________

🎯 小結與啟示:

✅ 多層 RNN 提升模型學習複雜序列結構的能力

✅ 雙向 RNN 提供更完整的語境理解,特別適合 NLP 任務

✅ 多層 + 雙向 可打造更強大的序列理解力(但也需注意訓練資源與過擬合)



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
16會員
408內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/09
RNN 雖能處理序列資料,但長期依賴問題嚴重,LSTM 雖解決卻結構複雜、計算量大。為兼顧效能與效率,GRU 應運而生,以更少的門控設計與輕量化結構,在保持長期記憶能力的同時降低計算成本,特別適合資源有限或需快速回應的應用場景。
2025/09/09
RNN 雖能處理序列資料,但長期依賴問題嚴重,LSTM 雖解決卻結構複雜、計算量大。為兼顧效能與效率,GRU 應運而生,以更少的門控設計與輕量化結構,在保持長期記憶能力的同時降低計算成本,特別適合資源有限或需快速回應的應用場景。
2025/09/09
在深度學習中,RNN 雖能處理序列資料,但容易因梯度消失導致長期依賴遺忘。LSTM 透過記憶單元與門控機制,有效保留長短期資訊,解決 RNN 的限制,廣泛應用於語音、翻譯與時序預測等領域。
2025/09/09
在深度學習中,RNN 雖能處理序列資料,但容易因梯度消失導致長期依賴遺忘。LSTM 透過記憶單元與門控機制,有效保留長短期資訊,解決 RNN 的限制,廣泛應用於語音、翻譯與時序預測等領域。
2025/09/04
RNN(循環神經網路)是一種專門用來處理序列資料的神經網路架構,它最大的特色是能夠「記住過去的資訊」,將前一時間步的輸出作為當前輸入的一部分,形成一種時間上的記憶鏈。這使得 RNN 特別適合處理像語音、文字、時間序列數據等有順序關係的任務。
2025/09/04
RNN(循環神經網路)是一種專門用來處理序列資料的神經網路架構,它最大的特色是能夠「記住過去的資訊」,將前一時間步的輸出作為當前輸入的一部分,形成一種時間上的記憶鏈。這使得 RNN 特別適合處理像語音、文字、時間序列數據等有順序關係的任務。
看更多
你可能也想看
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
透過這篇文章,我們將瞭解如何使用PyTorch實作圖神經網絡中的訊息傳遞機制,從定義消息傳遞的類別到實作消息傳遞過程。我們也探討了各種不同的消息傳遞機制,並通過對單次和多次傳遞過程的結果,可以看到節點特徵如何逐步傳遞與更新。
Thumbnail
透過這篇文章,我們將瞭解如何使用PyTorch實作圖神經網絡中的訊息傳遞機制,從定義消息傳遞的類別到實作消息傳遞過程。我們也探討了各種不同的消息傳遞機制,並通過對單次和多次傳遞過程的結果,可以看到節點特徵如何逐步傳遞與更新。
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News