第三部《強化學習》38/100 控制遊戲實作:GridWorld 迷宮走法 🧭 訓練會走的 AI!

更新 發佈閱讀 9 分鐘

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

38/100 第四週:📌 時序差分學習 TD

38. 控制遊戲實作:GridWorld 迷宮走法 🧭 訓練會走的 AI!

________________________________________

🎯 單元導讀

強化學習的理論再多,都比不上一次實作來得深刻!

本單元將透過經典的 GridWorld(格子世界),讓你實作出一個會走迷宮的 AI,並搭配 SARSA 或 Q-Learning 學會從嘗試錯誤中學習最短路徑!

________________________________________

🧱 一、什麼是 GridWorld?

GridWorld 是一個離散的 2D 空間:

每個格子代表一個「狀態」

Agent 可選擇「上下左右」四種行動

有些格子為牆或陷阱,有些是終點,抵達即獲獎勵

🌐 範例地圖(5x5):

S . . . G

. # . # .

. . . # .

# # . . .

. . . # T

S: 起點

G: 終點(+10 reward)

T: 陷阱(-10 reward)

#: 牆(不可通過)

.: 一般格子(0 reward)

這是一個典型的迷宮環境,其中 S 為起點,G 為終點,抵達 G 可獲得 +10 reward;T 代表陷阱,踩到會損失 -10 reward;# 為障礙牆,無法通過;其餘的 . 為一般可通行格子,不給予任何獎勵或懲罰(reward 為 0)。智慧體需在這個迷宮中透過強化學習學習出最佳路徑,避開陷阱與障礙,最終順利抵達終點 G。這類任務非常適合用來觀察不同強化學習演算法(如 TD(0)、TD(λ)、SARSA、Q-learning)的探索能力、學習速度與路徑選擇差異。

________________________________________

🧠 二、遊戲規則與學習目標

在這個迷宮強化學習任務中,狀態空間 S 定義為所有可通行格子的座標位置 (x, y);動作空間 A 包含上、下、左、右四個移動方向。獎勵設計為:抵達終點 G 獲得 +10、踩到陷阱 T 扣除 -10,其餘普通格子獎勵為 0。折扣因子 γ 常設為 0.9,用以平衡短期與長期報酬。每個 episode 的結束條件為:成功抵達 G、掉入 T、或移動步數超過上限後自動終止。透過這樣的設計,智慧體可以學習如何在有限次的探索中,逐漸找到避開陷阱、順利抵達終點的最佳路徑。

________________________________________

🧪 三、強化學習演算法選擇

你可以自由選擇以下任一演算法實作控制:

✅ SARSA(On-policy):

python

Q[s][a] += α * (r + γ * Q[s_next][a_next] - Q[s][a])

✅ Q-Learning(Off-policy):

python

Q[s][a] += α * (r + γ * max(Q[s_next]) - Q[s][a])

搭配 ε-Greedy 策略進行探索與學習!

________________________________________

💻 四、簡易 Python 實作(Q-Learning 版)

python

import numpy as np

import random

grid_size = 5

actions = ['U', 'D', 'L', 'R']

Q = np.zeros((grid_size, grid_size, len(actions)))

epsilon, alpha, gamma = 0.1, 0.5, 0.9

def is_valid(x, y):

# 邊界與牆的判斷略過,請補上你的地圖邏輯

return 0 <= x < grid_size and 0 <= y < grid_size

def step(state, action):

x, y = state

move = {'U': (-1, 0), 'D': (1, 0), 'L': (0, -1), 'R': (0, 1)}

dx, dy = move[action]

nx, ny = x + dx, y + dy

if not is_valid(nx, ny): return state, -1, False

if (nx, ny) == (0, 4): return (nx, ny), 10, True # G

if (nx, ny) == (4, 4): return (nx, ny), -10, True # T

return (nx, ny), 0, False

def choose_action(state):

if random.uniform(0, 1) < epsilon:

return random.choice(actions)

return actions[np.argmax(Q[state[0]][state[1]])]

for episode in range(500):

state = (0, 0)

done = False

while not done:

a = choose_action(state)

next_state, reward, done = step(state, a)

Q[state[0]][state[1]][actions.index(a)] += alpha * (

reward + gamma * np.max(Q[next_state[0]][next_state[1]]) - Q[state[0]][state[1]][actions.index(a)]

)

state = next_state

這段程式碼實作了一個簡單的 Q-Learning 強化學習迷宮任務。智慧體在一個 5x5 的網格地圖上進行訓練,每次從起點 (0,0) 出發,透過四個方向的行動(上、下、左、右)在地圖中移動。當智慧體走到終點 G (0,4) 可獲得 +10 獎勵,若走到陷阱 T (4,4) 則受到 -10 懲罰,其他格子則獎勵為 0。程式使用 ε-greedy 策略控制探索與利用,當前 Q 值以 Q-learning 更新公式修正,將經驗累積在三維的 Q 表格中。訓練重複 500 回合後,智慧體能逐漸學會如何避開陷阱並成功到達終點。此範例展示了強化學習中狀態-行動值函數學習的核心流程。

______________________________________

📌 五、進階任務挑戰

1️⃣ 改為 SARSA 學習,觀察是否更穩定?

2️⃣ 增加多個陷阱與障礙,測試學習策略

3️⃣ 將獎勵改為「步數越少越好」,設計步數懲罰機制

4️⃣ 改為 TD(λ) 更新,加入 Eligibility Traces 提高效率

________________________________________

✅ 六、小結與啟示

GridWorld 是強化學習中最經典的測試環境之一,訓練 AI 學會「試錯 → 學習 → 最佳決策」

結合 Q-Learning 或 SARSA,可讓 AI 在沒有模型的情況下找到通往目標的最短路徑

可視為未來訓練機器人、自駕車與遊戲 AI 的縮影



留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
10會員
274內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/24
TD(λ) 藉由 Eligibility Traces 將 TD 誤差回溯分配到過去狀態,融合 MC 長期更新與 TD(0) 即時更新。λ 控制記憶範圍:大值偏重長期,小值專注當前。此方法收斂更快、更穩定,廣泛應用於 SARSA(λ)、Q(λ) 及 Actor-Critic 架構。
2025/09/24
TD(λ) 藉由 Eligibility Traces 將 TD 誤差回溯分配到過去狀態,融合 MC 長期更新與 TD(0) 即時更新。λ 控制記憶範圍:大值偏重長期,小值專注當前。此方法收斂更快、更穩定,廣泛應用於 SARSA(λ)、Q(λ) 及 Actor-Critic 架構。
2025/09/24
SARSA 與 Q-Learning 皆為 TD 控制演算法,差異在於策略依賴:SARSA 為 On-policy,更新與實際行動一致,保守穩定,適合高風險任務;Q-Learning 為 Off-policy,追求最大回報,學得快但較激進,適合遊戲與商業決策。選擇取決於任務風險承受度與目標需求。
2025/09/24
SARSA 與 Q-Learning 皆為 TD 控制演算法,差異在於策略依賴:SARSA 為 On-policy,更新與實際行動一致,保守穩定,適合高風險任務;Q-Learning 為 Off-policy,追求最大回報,學得快但較激進,適合遊戲與商業決策。選擇取決於任務風險承受度與目標需求。
2025/09/24
Q-Learning 是典型 Off-policy TD 控制演算法,核心在最大化未來回報。更新 Q 值時取下一狀態的最大估計值,即使當下行動非最優,仍能收斂至最優策略。適合自駕、金融、博弈等需高效率探索的任務。
2025/09/24
Q-Learning 是典型 Off-policy TD 控制演算法,核心在最大化未來回報。更新 Q 值時取下一狀態的最大估計值,即使當下行動非最優,仍能收斂至最優策略。適合自駕、金融、博弈等需高效率探索的任務。
看更多
你可能也想看
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型,並在 AI說書 - 從0開始 - 115 載入權重並執行 Tokenizing,現
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型,並在 AI說書 - 從0開始 - 115 載入權重並執行 Tokenizing,現
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 如 AI說書 - 從0開始 - 78 所述,經過 AI說書 - 從0開始 - 74 到目前為止的實驗,應可以漸漸感受到 Transformer 模型如何從數學層面漸漸往
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
Thumbnail
在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News