第三部《強化學習》第一周10/100小結與測驗:動物學習模擬 🐒 用 Python 建立 RL 小遊戲!

更新 發佈閱讀 13 分鐘

AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》

10/100 第一週:📌 強化學習概論

10.小結與測驗:動物學習模擬 🐒 用 Python 建立 RL 小遊戲!

________________________________________

🧠 本章小結:強化學習概論(單元 1~9 回顧)

單元 核心觀念

1️⃣ 什麼是強化學習?➡︎ 強化學習是一種試錯學習方式,透過回饋訊號逐步優化策略

2️⃣ 與監督學習差異 RL ➡︎ 沒有標準答案,依靠獎勵來學習;監督學習需標註資料

3️⃣ Agent 與 Environment ➡︎ 智慧體在環境中互動,根據回報學習行動策略

4️⃣ MDP ➡︎ 四元件 狀態、行動、策略、獎勵組成 RL 的基本骨架

5️⃣ MDP 數學模型 ➡︎ 透過馬可夫假設簡化未來預測,只需考慮當前狀態

6️⃣ 策略與價值函數 ➡︎ 策略 π 決定行動,價值函數評估行動與狀態的好壞

7️⃣ V(s) vs Q(s,a) ➡︎ 狀態價值看「在哪裡好」,動作價值看「做什麼好」

8️⃣ 探索與利用 ➡︎ ε-greedy 策略平衡探索新機會與利用已知經驗

9️⃣ 應用場景 ➡︎ 遊戲、自駕車、金融、機器人、醫療教育等都用得到 RL

________________________________________

✅ 本章測驗題:5 題單選題 + 3 題思考題

________________________________________

📘 單選題

Q1. 下列哪一項不是強化學習的基本元件?

A. 標籤(Label)

B. 狀態(State)

C. 行動(Action)

D. 回報(Reward)

✅ 答案:A

👉 解析:Label 是監督式學習中的核心,但強化學習依賴回饋(Reward),不需要標準答案。

________________________________________

Q2. 在強化學習中,策略(Policy)指的是什麼?

A. 分類器的權重

B. 評估函數的參數

C. 決定在某個狀態下應採取哪個行動的規則

D. 損失函數的最小值

✅ 答案:C

👉 解析:策略是智慧體依據狀態來選擇行動的規則,是強化學習的核心學習目標。

________________________________________

Q3. 動作價值函數 Q(s,a) 描述的是:

A. 一個狀態的絕對重要性

B. 該狀態的標準答案

C. 在某狀態執行某行動後,期望能獲得的總回報

D. 探索與利用的平衡程度

✅ 答案:C

👉 解析:Q 值衡量在特定狀態採取某行動後,未來可累積多少獎勵,是策略選擇的依據。

________________________________________

Q4. ε-greedy 策略的目的是:

A. 讓模型更快收斂

B. 減少參數更新

C. 平衡探索新行動與利用已有最佳行動

D. 最大化模型精確度

✅ 答案:C

👉 解析:ε-greedy 是最常見的策略選擇方法,用於兼顧嘗試新路(探索)與重複有效方法(利用)。

________________________________________

Q5. 下列哪個應用情境最適合強化學習?

A. 分辨圖片是貓還是狗

B. 預測明天是否下雨

C. 自駕車在城市中導航

D. 將文章分類為不同主題

✅ 答案:C

👉 解析:自駕車需要根據動態環境做連續決策,回饋來自於行車結果,屬於典型的強化學習應用。

________________________________________

🧩 思考題

Q1. 請設計一個你自己生活中的 MDP 問題(S, A, R)舉例說明。

情境:準備AI考試

S(狀態):目前知識熟練程度(基礎、進階、熟練)

A(行動):選擇閱讀教材、做題庫、模擬考、請教老師

R(獎勵):每次模擬考的得分提升、理解力提升、信心增加

________________________________________

Q2. 你覺得自己目前在人生決策中,是偏向「探索」還是「利用」?請說明一個具體例子。

目前我偏向「探索」。例如:在AI領域學習過程中,我會持續嘗試不同的學習資源(線上課程、實作專案、研討會、同儕討論),希望找出最適合自己的學習方式,而不是單純依賴既有的學習方法。

________________________________________

Q3. 若你設計一個簡單的 RL 小遊戲(例如猴子學抓香蕉),你會如何設計其:

S(狀態):猴子目前的位置、高度、手的角度

A(行動):向前移動、向上跳、伸手、停留

R(獎勵):成功抓到香蕉 +10 分,失敗或跌倒 -5 分,持續沒抓到 0 分

________________________________________

以下是一個用 Python 建立的 簡易強化學習小遊戲:

📌**「猴子抓香蕉」Monkey Banana Game**:使用 Q-learning 演算法,模擬猴子學習如何移動到正確位置抓到香蕉。

________________________________________

🐒 遊戲簡介:猴子抓香蕉

網格世界為 5x5 格子

猴子起點為左上角 (0,0)

香蕉固定在右下角 (4,4)

猴子每次可以選擇「上、下、左、右」移動

抓到香蕉(到達終點)得 +10 分,否則每步 -1 分

使用 Q-learning 學會最短路徑!

________________________________________

✅ 安裝套件需求(只需 numpy,無需外部環境)

pip install numpy

________________________________________

🧠 Q-learning 小遊戲完整程式碼

python

import numpy as np

import random

# 環境設定

GRID_SIZE = 5

GOAL_STATE = (4, 4)

ACTIONS = ['up', 'down', 'left', 'right']

EPSILON = 0.2 # 探索率

ALPHA = 0.1 # 學習率

GAMMA = 0.9 # 折扣因子

EPISODES = 500 # 訓練回合

# Q表初始化:狀態空間為 GRID_SIZE x GRID_SIZE,行動空間為 4 個方向

Q_table = np.zeros((GRID_SIZE, GRID_SIZE, len(ACTIONS)))

def take_action(state, action):

x, y = state

if action == 'up': x = max(x - 1, 0)

if action == 'down': x = min(x + 1, GRID_SIZE - 1)

if action == 'left': y = max(y - 1, 0)

if action == 'right': y = min(y + 1, GRID_SIZE - 1)

return (x, y)

def choose_action(state):

if random.random() < EPSILON:

return random.choice(ACTIONS) # 探索

else:

x, y = state

return ACTIONS[np.argmax(Q_table[x][y])] # 利用

def train():

for episode in range(EPISODES):

state = (0, 0) # 起點

while state != GOAL_STATE:

action = choose_action(state)

next_state = take_action(state, action)

reward = 10 if next_state == GOAL_STATE else -1

# Q-learning 核心公式更新

x, y = state

nx, ny = next_state

a_idx = ACTIONS.index(action)

best_next_q = np.max(Q_table[nx][ny])

Q_table[x][y][a_idx] += ALPHA * (reward + GAMMA * best_next_q - Q_table[x][y][a_idx])

state = next_state

print("🎉 訓練完成!Q表已建立。")

def play():

print("🐒 模擬猴子抓香蕉的路線:")

state = (0, 0)

path = [state]

while state != GOAL_STATE:

x, y = state

a_idx = np.argmax(Q_table[x][y])

action = ACTIONS[a_idx]

state = take_action(state, action)

path.append(state)

print("➡️ 路徑:", path)

# 執行訓練與展示

train()

play()

這段程式透過 Q-Learning 演算法,模擬猴子學習如何在 5x5 的網格環境中移動,目標是從起點 (0,0) 走到終點 (4,4) 取得香蕉。

首先,環境定義了四個行動(上下左右),以及探索率(EPSILON)、學習率(ALPHA)、折扣因子(GAMMA)等基本參數。

核心部分在 train() 函式中,每一回合從起點開始,猴子依據 ε-greedy 策略選擇「探索」或「利用」行動:探索時隨機選擇方向,利用時選擇目前 Q 表中該狀態下預估最高價值的行動。每次移動若成功抵達目標則獲得 +10 獎勵,否則獲得 -1 懲罰,並透過 Q-learning 公式即時更新 Q 值。經過 500 次回合訓練後,Q 表學會最佳策略。play() 函式則展示猴子利用訓練好的 Q 表,從起點一步步依照學習到的最佳行動前往終點,完整呈現強化學習「試錯學習」的運作邏輯。

________________________________________

🔍 執行結果範例:

🎉 訓練完成!Q表已建立。

🐒 模擬猴子抓香蕉的路線:

➡️ 路徑:[(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]

________________________________________

📦 教學延伸:

你可根據此遊戲進一步加入:

障礙物(牆壁)

多個香蕉,隨機位置

模擬環境圖形化(使用 pygame 或 matplotlib)

使用 OpenAI Gym 進行標準化環境設計



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
16會員
459內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/23
本單元介紹強化學習(RL)的主要應用場景,包括遊戲、自駕車、機器人、金融與物流等領域,並延伸至醫療、教育與 AI 助手。RL 透過試錯與回饋優化策略,適合「決策序列+明確回報」場景,逐步推進至產業核心。
2025/09/23
本單元介紹強化學習(RL)的主要應用場景,包括遊戲、自駕車、機器人、金融與物流等領域,並延伸至醫療、教育與 AI 助手。RL 透過試錯與回饋優化策略,適合「決策序列+明確回報」場景,逐步推進至產業核心。
2025/09/23
本單元說明強化學習的核心挑戰——探索與利用的平衡。利用能帶來穩定報酬,但可能錯失全局最優;探索雖冒險,卻能開拓突破機會。ε-greedy 與衰減策略提供折中方法,幫助智慧體在不同階段調整行為。人生抉擇同樣需要在穩健與創新間動態取捨。
2025/09/23
本單元說明強化學習的核心挑戰——探索與利用的平衡。利用能帶來穩定報酬,但可能錯失全局最優;探索雖冒險,卻能開拓突破機會。ε-greedy 與衰減策略提供折中方法,幫助智慧體在不同階段調整行為。人生抉擇同樣需要在穩健與創新間動態取捨。
2025/09/23
本單元介紹狀態價值函數 V(s) 與動作價值函數 Q(s,a) 的核心差異:V 評估整體狀態好壞,Q 則衡量特定行動的長期報酬。透過 V→Q→最優策略 π*,AI 能找到最佳決策路徑。Q 是策略推導的關鍵,人生決策也可借鑑此框架。
2025/09/23
本單元介紹狀態價值函數 V(s) 與動作價值函數 Q(s,a) 的核心差異:V 評估整體狀態好壞,Q 則衡量特定行動的長期報酬。透過 V→Q→最優策略 π*,AI 能找到最佳決策路徑。Q 是策略推導的關鍵,人生決策也可借鑑此框架。
看更多
你可能也想看
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
本文主要介紹,如何利用GAN生成對抗網路來訓練生成圖片。 利用tensorflow,中的keras來建立生成器及鑑別器互相競爭訓練,最後利用訓練好的生成器來生成圖片。 GAN生成對抗網路的介紹 它由生成網路(Generator Network)和鑑別網路(Discriminator Netwo
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News