AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
50/100 第五週:📌 Deep Q-Network(DQN)與深度強化學習入門
50.小結與測驗:從 Q 表到 DQN 的進化 🧩 回顧學習曲線!
📚 一、小結整理:從 Q 表格邁向深度強化學習
🔹 41. 深度強化學習是什麼?
• 將 神經網路 結合 強化學習,可處理高維、連續狀態空間。
• 讓 AI 能從感知畫面中「學會決策」,實現智慧體自主行動。
________________________________________
🔹 42. 用神經網路逼近 Q 函數
• 解決 Q 表格法在高維空間下「維度爆炸」問題。
• 使用 DNN 預測 Q(s, a),使學習能泛化至未見過的狀態。
________________________________________
🔹 43. DQN 架構概覽
• 架構流程:
輸入狀態 → 神經網路 → 各動作 Q 值 → 選擇動作
• 將強化學習決策問題轉換為監督學習的 Q 值迴歸任務。
________________________________________
🔹 44. Experience Replay 機制
• 建立 Replay Buffer,儲存過去經驗 (s, a, r, s', done)。
• 每次訓練隨機抽樣 → 打破資料間時間相關性 → 提高穩定性與樣本利用率。
________________________________________
🔹 45. 固定目標網路(Target Network)
• 使用凍結的 θ⁻ 參數計算 TD 目標,避免主網路「追自己」導致不穩定。
• 每隔 N 步將主網路 θ 複製給 θ⁻(或使用 Soft Update)。
________________________________________
🔹 46. Double DQN
• 傳統 DQN 的 max Q(s', a) 容易過度高估價值。
• Double DQN 拆分動作選擇與評估 → 選擇由主網路,評估由目標網路 → 降低偏差。
________________________________________
🔹 47. Dueling DQN 架構
• 將 Q 函數拆為:Q(s,a) = V(s) + A(s,a)
• 狀態價值 V(s):當前情境的好壞
• 動作優勢 A(s,a):在該狀態下各行動的相對差異
• 特別適用於某些動作差異不明顯的情境。
________________________________________
🔹 48. DQN 訓練技巧與超參數調整
• 關鍵參數:γ(折扣因子)、ε(探索率)、batch size、lr(學習率)等
• 訓練技巧:Huber Loss、Gradient Clipping、warm-up、逐步 ε 衰減、Target 更新頻率控制等
________________________________________
🔹 49. 實作練習:CartPole with DQN
• 用 DQN 訓練智慧體完成 500 步內不倒的任務
• 包含架構、訓練主迴圈、Replay Buffer、ε-Greedy 策略、TD 誤差反向傳播
• 真實演練從感知到決策的深度強化學習流程!
________________________________________
📈 二、學習曲線回顧(概念圖)
Ep Reward ↑
|
500| o o o o o o o o o o o
400| o o o o
300| o o o o
200| o o o
100| o o o
0|__|__|__|__|__|__|__|__|__|__|__ Episode →
✅ 從亂走(ε=1)到穩定策略(ε≈0.01),學習曲線顯著上升,智慧體表現趨近穩定。
________________________________________
📝 三、章末測驗
📘 單選題
1️⃣ 為何 DQN 比傳統 Q-learning 更適合處理影像或高維輸入?
A. 因為 DQN 支援連續動作空間
B. 因為 DQN 使用隨機網路探索策略
✅ C. 因為 DQN 使用神經網路逼近 Q 函數
D. 因為 DQN 不需要任何探索策略
✅ 解析:DQN 使用深度神經網路近似 Q(s, a),可接受圖像等高維輸入,而傳統 Q 表僅適用於離散、低維狀態空間。
________________________________________
2️⃣ 下列哪一項是 Experience Replay 的主要優點?
A. 讓訓練更快收斂因為樣本順序被保留
B. 增加探索機率
✅ C. 打破樣本間的時間相依性
D. 用於替換主網路的權重
✅ 解析:Replay Buffer 會隨機抽樣過去的經驗,打破資料的時間連續性,減少訓練震盪並提高樣本利用率。
________________________________________
3️⃣ Double DQN 的主要目的是?
A. 加速 DQN 訓練
B. 增強策略的隨機性
✅ C. 減少 max Q 導致的過度估計問題
D. 增加 replay buffer 效能
✅ 解析:Double DQN 拆分動作選擇與評估的來源,降低 DQN 中對 Q 值高估的偏差。
________________________________________
4️⃣ Dueling DQN 的 Q 值組成為何?
A. Q(s, a) = reward + γ * next_Q
B. Q(s, a) = V(s) * A(s, a)
✅ C. Q(s, a) = V(s) + [A(s, a) - mean(A)]
D. Q(s, a) = A(s, a)
✅ 解析:為了解決 Q 值拆分不唯一的問題,實作中使用 Q = V + (A - mean(A)),避免優勢偏移整體 Q 值。
________________________________________
5️⃣ Target Network 的作用為何?
A. 儲存最佳策略的經驗
✅ B. 穩定 TD 目標,避免學習震盪
C. 儲存最低的 Q 值以避免崩潰
D. 控制 ε 衰減的速度
✅ 解析:Target Network 保持一段時間內不更新的 θ⁻ 參數,防止目標 Q 值跟著變動網路不斷漂移,增加學習穩定性。
________________________________________
📋 簡答題
1️⃣ 請簡述 ε-Greedy 策略在 DQN 中的用途,以及它如何平衡探索與利用?
✅ 解析:
ε-Greedy 是一種行動選擇策略,ε 的初期值設定為高(如 1.0),表示完全隨機選擇行動,有助於探索整個環境。隨著訓練進行,ε 逐漸遞減至 ε_min(如 0.01),代表越來越依賴學到的 Q 值進行決策,即利用。此策略平衡了「嘗試新行為」與「利用已知最優策略」。
________________________________________
2️⃣ 請簡述為什麼使用 Huber Loss 而非 MSE Loss 有助於提升 DQN 訓練穩定性?
✅ 解析:
MSE 對於極端 TD 誤差會放大懲罰,可能導致梯度爆炸。而 Huber Loss 在誤差小時與 MSE 表現相似,但在誤差大時則轉為線性,減少梯度波動。這有助於控制 Q 值的劇烈變化,提高訓練穩定性。
________________________________________
3️⃣ 在 CartPole 任務中,若觀察到智能體總是在 20 步內失敗,你會從哪三個方向檢查或調整?
✅ 解析:
1. ε 設定是否過高:若始終為隨機動作,可能無法穩定學習。
2. Replay Buffer 是否過小或未預熱:導致訓練資料太少或品質不足。
3. 神經網路架構與學習率:檢查是否過淺、過深或學習率不合,可能導致無法有效收斂。
🛠️ 五、延伸挑戰任務(可選)
• ✅ 將 CartPole 改為 Double + Dueling DQN 同時結合架構
• ✅ 在測試階段設定 ε = 0,觀察智慧體行為是否穩定
• ✅ 增加 reward 曲線可視化:使用 matplotlib 或 TensorBoard
• ✅ 儲存模型並在測試模式進行回放(推論模式)