第二部:《深度學習》40/100 第四週RNN小結與測驗:LSTM 生成故事 📝 讓 AI 接著寫

更新 發佈閱讀 12 分鐘

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

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

40.小結與測驗:LSTM 生成故事 📝 讓 AI 接著寫!

________________________________________

🧠 一、本週概念小結(第 31~39 節)

📅 第四週小結:循環神經網路 RNN 單元整理表

31 ⏳RNN 基本結構 : 記住序列上下文,適用文字、語音、數據等時間序列

32 🧭時間步與隱藏狀態 : 每步輸入都更新記憶,關鍵是 h_t 如何演化

33 💡LSTM 結構 : 解決長期依賴問題,透過 記憶單元 + 三道門控 控制資訊流

34 ⛩GRU 結構 : LSTM 的輕量版,速度更快,參數更少

35 🔄多層 & 雙向 RNN : 深度語意 + 前後語境,一起提升理解力

36 📨Seq2Seq 模型 : 序列轉序列,機器翻譯、摘要、問答核心架構

37 🎯教師強制與注意力機制 : 穩定訓練 + 焦點聚焦:引導模型注意「關鍵詞」

38 🗂文本分類實作 : 情感分析實作(IMDB影評),從文字判斷正面 / 負面

39 📈語音與時間序列預測 : 處理語音波形、股價、感測器等資料,LSTM 精準預測未來趨勢

________________________________________

📝 二、觀念測驗題(單選題 5 題 + 簡答題 3 題)

✅ 單選題(每題 1 分)

1️⃣ RNN 中的「隱藏狀態 h_t」的主要功能是?

A. 儲存模型架構

B. 提高精度

C. 記錄序列上下文資訊

D. 控制輸出大小

✅ 答案:C

🔍 解釋:h_t 是模型記住前文資訊的關鍵記憶載體

________________________________________

2️⃣ LSTM 中能避免梯度消失的關鍵結構是?

A. ReLU 激活

B. 記憶單元(Cell state)

C. Dropout

D. Softmax

✅ 答案:B

🔍 解釋:記憶單元允許訊息長距離保留,避免梯度消失

________________________________________

3️⃣ GRU 比 LSTM 更輕量的原因是?

A. 參數較多

B. 沒有激活函數

C. 使用了較少的門控結構

D. 僅用在影像

✅ 答案:C

🔍 解釋:GRU 只有兩個門(重置門、更新門)

________________________________________

4️⃣ 在序列到序列模型中,哪一部分是「輸出生成者」?

A. Encoder

B. Decoder

C. Embedding

D. Attention

✅ 答案:B

🔍 解釋:Decoder 負責一步步產生輸出序列(例如翻譯字串)

________________________________________

5️⃣ Attention 的主要目的為何?

A. 增加訓練速度

B. 聚焦重要輸入,提高輸出準確度

C. 增加記憶容量

D. 消除梯度消失

✅ 答案:B

🔍 解釋:Attention 讓 Decoder 每步都能關注不同 Encoder 部分

________________________________________

✍️ 簡答題(每題 2 分)

Q1. 請解釋 LSTM 的三個門(Forget、Input、Output)功能。

✅ 參考解答:

Forget Gate:決定保留多少過去記憶

Input Gate:決定接收多少新資訊

Output Gate:決定釋放多少記憶到輸出

________________________________________

Q2. 為什麼在訓練 Decoder 時會使用「教師強制」策略?

✅ 參考解答:

因為模型初期預測不穩,若用預測值當作下一步輸入會快速累積錯誤。

教師強制提供真實答案,讓模型學習穩定序列關聯。

________________________________________

Q3. 如何設計一個時間序列預測模型(如股價)?

✅ 參考解答:

1. 定義輸入視窗長度(如過去 30 天)

2. 資料標準化(Normalization)

3. 使用 LSTM / GRU 處理序列

4. 輸出下一天的預測價格(回歸)或趨勢(分類)

5. 使用滑動視窗進行訓練資料組合

________________________________________

✨ 三、進階應用任務:LSTM 生成故事!

讓 AI 接著寫一段文字!只要給前幾個字,它就能預測下個字,完成創作!

________________________________________

🔤 Step 1:載入文字並做字元級預處理

python

import tensorflow as tf

import numpy as np

text = "從前從前有一個小女孩住在森林裡,她最喜歡的事情就是..."

chars = sorted(list(set(text)))

char2idx = {c: i for i, c in enumerate(chars)}

idx2char = {i: c for i, c in enumerate(chars)}

seq_length = 10

sequences = []

next_chars = []

for i in range(len(text) - seq_length):

sequences.append([char2idx[c] for c in text[i:i+seq_length]])

next_chars.append(char2idx[text[i+seq_length]])

x = tf.keras.utils.to_categorical(sequences, num_classes=len(chars))

y = tf.keras.utils.to_categorical(next_chars, num_classes=len(chars))

這段程式碼是用來建立一個字元級文字生成模型的訓練資料集。首先,將輸入文字 text 中的所有獨特字元建立編碼對應表(char2idx 與 idx2char),再將文字依照長度為 10 的滑動視窗切割成多組「輸入序列」與對應的「下個字元」作為預測目標。接著,使用 to_categorical 將這些字元索引轉換為 one-hot 編碼,產生模型訓練所需的特徵資料 x 和標籤資料 y,每筆資料代表「輸入一段 10 個字元的序列,預測下一個字元」。這是訓練 RNN 或 LSTM 進行文字生成的常見資料預處理方式。

________________________________________

🔧 Step 2:建立模型

python

model = tf.keras.Sequential([

tf.keras.layers.LSTM(128, input_shape=(seq_length, len(chars))),

tf.keras.layers.Dense(len(chars), activation='softmax')

])

model.compile(loss='categorical_crossentropy', optimizer='adam')

model.fit(x, y, epochs=300, verbose=0)

這段程式碼建立並訓練了一個字元級文字生成模型,使用 LSTM 架構。模型輸入為長度 10 的 one-hot 編碼字元序列,輸出為下一個字元的機率分布,透過 Dense 層與 softmax 激活函數完成分類。損失函數使用 categorical_crossentropy,搭配 adam 優化器,進行 300 個訓練週期(epoch)。這種結構可讓模型學會根據前一段文字預測下個字元,是生成式文本模型的經典實作方式。

________________________________________

🧠 Step 3:生成故事

python

def generate_text(seed, length=100):

generated = seed

for _ in range(length):

input_seq = [char2idx.get(c, 0) for c in seed[-seq_length:]]

input_seq = tf.keras.utils.to_categorical([input_seq], num_classes=len(chars))

pred = model.predict(input_seq, verbose=0)[0]

next_char = idx2char[np.argmax(pred)]

generated += next_char

seed += next_char

return generated

print(generate_text("從前從前有一個"))

這段程式碼定義了一個文字生成函式 generate_text,能根據給定的起始文字 seed 持續預測並產生後續字元,形成新的文本。每次生成時,取 seed 字串中最後的 seq_length 字元轉為 one-hot 編碼,輸入至訓練好的 LSTM 模型;模型輸出下一個最可能的字元,將其接到 seed 之後,重複此流程直到生成指定長度的文字。最後透過 print(generate_text("從前從前有一個")) 示範輸入片語,讓模型自動續寫一段風格相符的文字,實現基礎的字元級文本生成功能。

________________________________________

🎯 小結與啟示:

✅ LSTM 能根據語境生成合理的句子,具備基礎「語言創作」能力

✅ 語言建模可用於自動填詞、故事接龍、對話生成

✅ 可搭配訓練語料改寫:童話、小說、詩詞、歌詞等領域應用


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
9會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/09
RNN 擅長處理時間序列數據,能捕捉語音訊號的連續特徵與時序依賴,應用於語音辨識與語音轉文字。同時也能用於股票、天氣、需求等趨勢預測,透過學習歷史數據模式,提前洞察未來變化,成為實務應用的重要工具。
2025/09/09
RNN 擅長處理時間序列數據,能捕捉語音訊號的連續特徵與時序依賴,應用於語音辨識與語音轉文字。同時也能用於股票、天氣、需求等趨勢預測,透過學習歷史數據模式,提前洞察未來變化,成為實務應用的重要工具。
2025/09/09
文本分類任務中,RNN 可逐字或逐詞處理影評內容,捕捉語境與情感走向。透過訓練模型判斷輸入文本屬於正面或負面情緒,實現自動化的情感分析,廣泛應用於輿情監測、產品評價與客服系統中。
2025/09/09
文本分類任務中,RNN 可逐字或逐詞處理影評內容,捕捉語境與情感走向。透過訓練模型判斷輸入文本屬於正面或負面情緒,實現自動化的情感分析,廣泛應用於輿情監測、產品評價與客服系統中。
2025/09/09
在 Seq2Seq 訓練中,教師強制透過提供正確答案作為解碼器輸入,加速收斂並減少錯誤累積。而注意力機制則讓模型在生成每個輸出時,自動聚焦輸入序列的關鍵部分,提升長文本與複雜語境的理解與表現,廣泛應用於翻譯、摘要與對話系統。
2025/09/09
在 Seq2Seq 訓練中,教師強制透過提供正確答案作為解碼器輸入,加速收斂並減少錯誤累積。而注意力機制則讓模型在生成每個輸出時,自動聚焦輸入序列的關鍵部分,提升長文本與複雜語境的理解與表現,廣泛應用於翻譯、摘要與對話系統。
看更多
你可能也想看
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 77 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 77 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 76 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 76 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
在科技發展的浪潮中,生成式AI無疑是引領未來的關鍵力量。透過深度學習技術,AI系統能夠從大量資料中發掘規律,並創造出全新的內容,無論是文字、圖像、音頻還是視頻,都可以在AI的加持下重新定義。
Thumbnail
在科技發展的浪潮中,生成式AI無疑是引領未來的關鍵力量。透過深度學習技術,AI系統能夠從大量資料中發掘規律,並創造出全新的內容,無論是文字、圖像、音頻還是視頻,都可以在AI的加持下重新定義。
Thumbnail
在晶狀智慧的時代,人類與AI共舞,共同建構更先進、更智能的未來。這是一場革命,一場改變人類命運的奇蹟,讓我們共同見證這個智慧的新紀元。
Thumbnail
在晶狀智慧的時代,人類與AI共舞,共同建構更先進、更智能的未來。這是一場革命,一場改變人類命運的奇蹟,讓我們共同見證這個智慧的新紀元。
Thumbnail
大型語言模型(LLM)是基於深度學習的自然語言處理模型,而多模態模型(LMM)能處理多種資料型態。這些模型將對未來帶來重大改變。LLM 專注於理解和生成自然語言,LMM 能夠處理跨模態的內容,並整合多種資料的能力,有望成為未來趨勢。
Thumbnail
大型語言模型(LLM)是基於深度學習的自然語言處理模型,而多模態模型(LMM)能處理多種資料型態。這些模型將對未來帶來重大改變。LLM 專注於理解和生成自然語言,LMM 能夠處理跨模態的內容,並整合多種資料的能力,有望成為未來趨勢。
Thumbnail
生成式AI(Generative AI)是近年來人工智慧領域中備受矚目的技術之一。它以機器學習為基礎,通過學習大量數據中的模式和關係,能夠生成各種新的內容,涵蓋文字、圖像、音訊等多個領域。本文將深入探討生成式AI的原理、優缺點以及應用範疇。
Thumbnail
生成式AI(Generative AI)是近年來人工智慧領域中備受矚目的技術之一。它以機器學習為基礎,通過學習大量數據中的模式和關係,能夠生成各種新的內容,涵蓋文字、圖像、音訊等多個領域。本文將深入探討生成式AI的原理、優缺點以及應用範疇。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News