AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
40/100 第四週:📌 時序差分學習 TD
40.小結與測驗:TD 方法的應用場景與限制 📌 理清適用場域!
________________________________________
在本階段(31~39 課),我們聚焦於 時序差分學習(Temporal Difference, TD) 的核心精髓。從 TD(0) 的基礎切入,體會它如何融合動態規劃與蒙地卡羅,進一步透過 TD 預測與 TD 誤差 δ,理解「邊做邊學」的學習信號。接著,我們探索兩大經典控制方法:SARSA 與 Q-Learning,並透過對比認識 On-policy 與 Off-policy 的不同學習風格與應用場景。再藉由 TD(λ) 與 Eligibility Traces,見識長短期回饋的整合與效率提升,最後透過 GridWorld 實作與錯誤傳播的解析,將理論落地到可觀察的行為轉變。這一系列單元不僅串連了強化學習的基石,更為後續深入策略優化與複雜環境應用奠定堅實基礎。
________________________________________
🧠 單元重點小結(31~39 課)
31 ⏱ TD(0) 基礎 → 結合動態規劃與蒙地卡羅,適用於未知環境的漸進學習
32 📈 TD 預測學習 → 每一步更新估計值,不必等完整 episode 結束
33 🧮 TD 誤差 δ → TD 誤差作為學習信號,持續微調價值函數
34 🧠 SARSA → On-policy:根據實際策略產生的行為更新 Q 值
35 💪 Q-Learning → Off-policy:以最優策略更新,實用性與穩定性強
36 🆚 SARSA vs Q-Learning → 比較學習穩定性、探索策略與收斂速度
37 🧵 TD(λ) 與 Eligibility Traces → 綜合短期與長期誤差回饋,提升學習效率
38 🧭 GridWorld 實作 → 體驗 TD 演算法的實戰效果與策略轉變
39 🔄 錯誤傳播與延遲效應→ TD 方法如何向後傳播未來的回報,強化長期規劃能力
________________________________________
✅ 單選題(含解析)
________________________________________
1️⃣ 時序差分 TD 方法的最大優勢是?
A. 完全不需要回報訊號
✅ B. 不需知道環境轉移機率也可邊互動邊學習
C. 必須知道完整 episode
D. 只能在已知環境中使用
📘 解析:
TD 方法是典型的 model-free 學習,不依賴已知的轉移機率模型,只需與環境互動便能不斷更新狀態價值。
________________________________________
2️⃣ SARSA 與 Q-Learning 的主要差異在哪?
A. SARSA 不更新 Q 值
B. Q-Learning 是 on-policy
✅ C. SARSA 是 on-policy,Q-Learning 是 off-policy
D. Q-Learning 無法應用在迷宮問題
📘 解析:
SARSA 根據實際執行的行為更新策略,是 on-policy 方法;而 Q-Learning 根據理論上最優行動更新,是 off-policy 方法,學習更穩定。
________________________________________
3️⃣ TD(λ) 的 λ 值代表什麼意義?
A. 神經網路的學習率
✅ B. 控制過去經驗對現在更新的影響權重
C. 獎勵延遲程度
D. 迷宮大小參數
📘 解析:
λ 值決定 eligibility traces 的 decay,範圍為 0~1,越大代表越重視過去的經驗;當 λ=0 時即為 TD(0)。
________________________________________
4️⃣ TD 方法在何種情況下表現優於 MC 方法?
A. 環境無法互動時
✅ B. 任務時間長、回報延遲且不穩定時
C. 需完整 episode 結果才更新
D. 預測只能靠大量標註資料
📘 解析:
TD 不必等完整 episode,就能即時更新,適合長期與即時任務,尤其適用於實時互動場景。
________________________________________
5️⃣ GridWorld 是 TD 演算法應用的典型例子,其訓練目標為?
A. 找出所有可能路徑
B. 隨機遊走避免陷阱
✅ C. 學會最短最安全的路徑到達終點
D. 強化圖像辨識效果
📘 解析:
GridWorld 是典型強化學習範例,目標是根據獎勵學會走出最佳策略(如避開障礙、最短路徑)。
________________________________________
🧠 問答題(含建議解答)
_______________________________________
❓ 問題 1:時序差分學習為何被稱為連接 MC 與動態規劃的橋梁?
✅ 建議答案:
MC 依賴整集回報,動態規劃需完整模型,TD 方法結合兩者優勢:不需完整模型、可即時更新。其基於 bootstrap 更新,使得在未知環境也能邊走邊學,為實務部署與在線學習提供便利。
________________________________________
❓ 問題 2:SARSA 與 Q-Learning 各自的優缺點為何?
✅ 建議答案:
SARSA 穩定、保守,學習的是實際執行策略,適合風險高任務;Q-Learning 學最優策略,但有可能在訓練初期過於樂觀,適合收斂速度與效率優先的場景。選擇依任務特性調整。
________________________________________
❓ 問題 3:TD(λ) 為何能提升學習效率?其在什麼情況下最有效?
✅ 建議答案:
TD(λ) 結合短期與長期回饋,使用 eligibility traces 追蹤歷史狀態與動作,使誤差可在時間上傳遞。適用於高延遲獎勵或需記住歷史訊息的任務,如長路徑迷宮或對話生成。
________________________________________
🧪 實作建議:Q-Learning 解 GridWorld(簡化)
智慧體必須在一個帶有隨機風險的環境中學會避開高風險區域、找到安全路徑抵達終點。
python
import numpy as np
import random
grid_size = 3
actions = ['U', 'D', 'L', 'R']
Q = np.zeros((grid_size, grid_size, len(actions)))
start = (0, 0)
goal = (0, 2)
risky = (1, 1)
alpha, gamma, epsilon = 0.1, 0.9, 0.2
def step(state, action):
i, j = state
move = {'U': (-1,0), 'D': (1,0), 'L': (0,-1), 'R': (0,1)}
dx, dy = move[actions[action]]
ni, nj = max(0, min(i+dx, 2)), max(0, min(j+dy, 2))
reward = -1
if (ni, nj) == goal:
reward = 10
elif (ni, nj) == risky:
reward += -5 if random.random() < 0.5 else 0
done = (ni, nj) == goal
return (ni, nj), reward, done
def choose_action(state):
if random.random() < epsilon:
return random.randint(0, 3)
return np.argmax(Q[state[0], state[1], :])
for episode in range(300):
state = start
while True:
action = choose_action(state)
next_state, reward, done = step(state, action)
Q[state[0], state[1], action] += alpha * (reward + gamma * np.max(Q[next_state]) - Q[state[0], state[1], action])
state = next_state
if done:
break
# 輸出學到的策略
for i in range(grid_size):
row = ''
for j in range(grid_size):
if (i, j) == goal:
row += ' G '
elif (i, j) == risky:
row += ' R '
else:
row += ' ' + actions[np.argmax(Q[i, j, :])] + ' '
print(row)
這段程式實作了一個簡易版的 Q-Learning 隨機風險迷宮任務。在 3x3 的網格環境中,智慧體從起點 (0,0) 出發,目標是走到終點 (0,2),每移動一步獲得 -1 懲罰,抵達終點得到 +10 獎勵。在 (1,1) 的格子設有「隨機風險」,進入該格時,有 50% 機率額外再扣 -5 分。智慧體透過 ε-greedy 策略選擇行動,有 20% 機率隨機探索,80% 機率選擇目前 Q 值最高的行動。訓練過程重複 300 次,使用 Q-Learning 公式更新每個狀態與動作的 Q 值,最終學會如何在存在隨機風險的環境下,選擇安全且有效率的路徑。訓練完成後,程式會列出每個格子學到的最佳行動方向,幫助觀察學習後的策略結果。
________________________________________
📚 小結:
• 時序差分方法適合即時學習與未知環境
• SARSA 與 Q-Learning 分別對應保守與激進策略學習
• TD(λ) 結合 trace 訊號與歷史資訊,提升長期任務的學習效率
• 實作演練(如 GridWorld)可有效幫助理解策略轉換與錯誤回傳的概念