AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
20/100 第二週:📌 策略與動態規劃
20.小結與實作:FrozenLake 策略疊代實作 ❄️ 找出最安全的路!
________________________________________
✅ 一、本週學習重點整理
單元 主題 核心概念
11 確定策略 vs 隨機策略 ➔ 策略可以是固定行為(如 always right),也可以是機率性選擇(如 70% 上、30% 下)
12 策略評估(Policy Evaluation) ➔ 給定一個策略,預測其長期報酬(使用貝爾曼期望方程)
13 策略改善(Policy Improvement) ➔ 利用已知的 V 值,更新策略選出更好的動作
14 策略疊代(Policy Iteration) ➔ 評估 + 改進的循環,直到策略不再變動為止
15 價值疊代(Value Iteration) ➔ 直接以 Bellman 最優方程反覆更新 V 值,免去策略表示
16 動態規劃基礎 ➔ 已知模型下的最優策略規劃方式,需遍歷整個狀態空間
17 折扣因子與時間差學習 ➔ 折扣因子 γ 衡量未來報酬的重要性,是 TD 學習的關鍵
18 策略提升定理與貝爾曼方程 ➔ 理論基礎:貝爾曼方程提供價值預測,策略提升保證變好
19 動態規劃與表格法限制 ➔ 適合小型離散環境,難以延伸至高維或連續空間
20 FrozenLake 策略疊代實作 ➔ 將所有概念整合應用在經典小型環境,實作出安全路徑策略
________________________________________
📌 二、概念小測驗(選擇題)
________________________________________
🧠 第二週測驗題組(策略與動態規劃)
共:5 題單選題 + 3 題簡答題
附解答與簡要解析 ✍️
________________________________________
📘 一、單選題
1️⃣ 策略疊代(Policy Iteration)包含哪些兩大核心步驟?
A. 策略初始化與模型建立
B. 策略評估與策略改善 ✅
C. 策略選擇與隨機探索
D. 獎勵最大化與懲罰最小化
📎 解析:策略疊代主要流程就是先「評估目前策略的價值」,再進行「改善策略」,形成反覆疊代。
________________________________________
2️⃣ 下列何者屬於動態規劃的限制?
A. 無法處理多動作情境
B. 無法計算價值函數
C. 需要完整的轉移模型 ✅
D. 無法應用於表格形式
📎 解析:動態規劃依賴已知的 MDP 模型,包括轉移機率 P(s'|s,a),這在現實世界往往無法取得。
________________________________________
3️⃣ 在貝爾曼最優方程中,最重要的數學操作是什麼?
A. 累積所有動作
B. 取最大值 ✅
C. 計算期望損失
D. 對時間微分
📎 解析:最優值函數會對所有動作取最大值,以選擇「最值得做的行為」。
________________________________________
4️⃣ 策略改善的主要依據是什麼?
A. 行為的平均報酬
B. 隨機性與探索程度
C. 狀態的 Q 值 ✅
D. 歷史執行的次數
📎 解析:策略改善會根據 Q 值(狀態-行動價值),在每個狀態選擇價值最高的動作作為新策略。
________________________________________
5️⃣ 價值疊代(Value Iteration)與策略疊代的最大差異是?
A. 價值疊代不需要折扣因子
B. 價值疊代不能計算 V 值
C. 價值疊代不需維持明確策略 ✅
D. 策略疊代較適合深度學習
📎 解析:價值疊代直接從 V 值做更新,不需明確維持一個策略表,但最終仍可推導策略。
________________________________________
📘 二、簡答題
________________________________________
1️⃣ 請說明動態規劃(Dynamic Programming)在強化學習中的角色。
✅ 參考答案:
動態規劃在強化學習中是一種基於已知 MDP 模型(已知轉移機率與報酬)的最佳策略推導方法。它透過貝爾曼方程反覆更新狀態價值或策略,可精確求得最優解,常用於小型模擬環境與理論分析。
________________________________________
2️⃣ 貝爾曼最優方程與策略價值方程有何不同?
✅ 參考答案:
策略價值方程是針對「給定策略 π」計算其預期總報酬,而貝爾曼最優方程則是針對所有可能的動作取最大值,以找出「最佳策略」。前者用於評估,後者用於優化。
________________________________________
3️⃣ 為什麼動態規劃與表格方法難以應用於現實世界中的大型問題?
✅ 參考答案:
因為現實世界通常有龐大的狀態與動作空間,難以儲存完整表格,且轉移機率與獎勵函數往往未知。此外,運算成本與記憶體需求過高,無法即時運作,因此需改用函數逼近與深度學習技術。
________________________________________
🧪 三、實作挑戰:FrozenLake 策略疊代 ❄️
目標:用策略疊代方法,找出一條從起點出發、避開冰洞、安全走到終點的策略。
📌 必備工具:
• Python 3.x
• Gym(OpenAI Gym 套件)
pip install gym
📘 環境建立:
python
import gym
env = gym.make("FrozenLake-v1", is_slippery=True)
⚙️ 策略疊代實作程式碼:
(已在上一題中給出完整程式碼,可重用 policy_iteration() 函式)
在本次實作挑戰中,目標是利用策略疊代(Policy Iteration)方法,讓智能體學會在 FrozenLake 冰湖環境中,從起點出發,避開冰洞並安全抵達終點。我們使用 Python 3.x 搭配 OpenAI Gym 套件,透過 gym.make("FrozenLake-v1", is_slippery=True) 建立具隨機滑動特性的冰湖環境。接著重用先前實作好的 policy_iteration() 函式,反覆執行策略評估與策略改進,讓策略逐步收斂至最優。最終,智能體將學會在不確定性中做出穩健決策,展現強化學習在離散隨機環境下的實際應用能力。
________________________________________
✅ 結果範例輸出:
python
policy, value = policy_iteration(env)
print("狀態價值 V(s):")
print(value.reshape(4, 4))
執行 policy_iteration(env) 後,會得到學習完成的最佳策略(policy)與對應的狀態價值函數(V(s))。其中 value 儲存每個狀態在最優策略下的預期總報酬。使用 value.reshape(4, 4) 可以將線性的一維數列整理成與 FrozenLake 地圖相同的 4x4 格式,方便直觀觀察各位置的價值分布。數值越高的格子代表該位置通往終點的成功機率或報酬越高,顯示該狀態在整體策略中相對有利。透過這樣的輸出,可以具體檢驗學習結果與路徑風險分布。
🎯 若要視覺化路徑,將 one-hot 策略轉換為方向箭頭(如 ↑→↓←),可提升理解與展示效果。
________________________________________
📌 四、延伸任務與挑戰
在完成基本的策略疊代實作後,可以進一步挑戰四個延伸任務來加深對強化學習的理解。
🔧A任務透過自訂 FrozenLake 地圖,調整格子大小與冰洞分布,觀察環境複雜度如何影響學習效果。
🔁B任務比較 is_slippery=True(有滑動隨機性)與 is_slippery=False(完全可控)兩種環境,分析隨機性對決策與收斂的影響。
📊C任務則將策略疊代與 Q-learning 進行比較,探討模型型與無模型型方法在收斂速度與最終表現上的差異。
最後,🧠D任務測試不同折扣因子 γ(如 0.9 與 0.99),分析長期報酬與短期風險的權衡,其中 γ 越接近 1,策略越重視長期收益,越保守穩健。透過這些挑戰,能夠全面練習強化學習中的環境建模、隨機性處理、演算法比較與超參數調整的核心思維。
________________________________________
📘 五、總結本週學習收穫
• 理解策略、價值與改善的互動關係
• 學會策略疊代與價值疊代的操作邏輯
• 實作應用在 FrozenLake,能感受動態規劃的實力與限制
• 為下一週「Q-learning 與自主學習」打好基礎!