強化學習 · 深度 RL

DQN 深度 Q 網路

Q-learning 遇到「棋盤/遊戲畫面」這種狀態爆炸就查不動表了。DQN 用一個神經網路來「估」Q 值,讓機器光看畫面就能學會玩。

神經網路估 Q處理高維狀態經驗回放目標網路off-policy 價值法

💡一句話定義

DQN(Deep Q-Network)=用神經網路近似 Q 值函數的強化學習方法,讓 Q-learning 能處理狀態龐大(如遊戲畫面像素)的問題。輸入是狀態、輸出是每個動作的 Q 分數,不再需要一格一格查表。

🎮互動:Grid World 學走迷宮

藍點是 agent,⭐是目標(+10)、🔥是陷阱(−10)、每步 −1。按單步開始訓練:左邊移動、中間 Q-Network 亮起輸出 Q 值、右邊經驗存進 Replay Buffer。看 Epsilon(探索率)隨訓練下降。

🧠 DQN (Deep Q-Network) 互動演示
環境 (Grid World)
Goal (+10)   Trap (-10)   Step (-1)
Q-Network (Agent's Brain)
State X Y Q-Values Up Down Left Right
經驗回放 (Replay Buffer)
Memory Log [s, a, r, s']
Epsilon (探索率): 1.00 Total Reward: 0 Episode: 1

⚖️表格 Q-learning vs DQN

面向表格 Q-learningDQN
Q 值儲存一張表,每個 (狀態,動作) 一格神經網路估算,不用列舉
狀態很多時爆炸、存不下可處理高維(如像素)
泛化能力無,沒見過的狀態不會能從相似狀態泛化
適用小型離散問題大狀態空間、離散動作

🔑兩大關鍵技術

🗂️經驗回放 Experience Replay
把 (s, a, r, s′) 存進記憶庫,訓練時隨機抽樣,打破連續樣本相關性、重複利用資料,更穩定。
🎯目標網路 Target Network
用一個更新較慢的網路產生學習目標,避免目標與被更新網路同時變動造成震盪發散。

🧮損失函數(Bellman 目標)

$$ L(\theta) = \mathbb{E}\left[\left(\underbrace{r + \gamma \max_{a'} Q(s',a';\theta^-)}_{\text{Target(現實)}} - \underbrace{Q(s,a;\theta)}_{\text{Prediction(預測)}}\right)^2\right] $$ θ:目前網路參數;θ⁻:目標網路參數(固定一段時間)。讓「預測 Q」逼近「獎勵 + 折扣後的未來最佳 Q」。

🧭它在強化學習的定位

DQN 屬於價值法(value-based)off-policy:先估 Q 值、再由 argmax 選動作。它跟策略梯度(直接學策略)路線不同。DQN 只適合離散動作;動作為連續(如機器人關節角度)時要用 DDPG、PPO 等方法。它仍是強化學習(靠獎勵試錯),不是監督式。

🎯應用場景

① Atari 遊戲:DeepMind 用 DQN 讓電腦純看像素就把打磚塊、太空侵略者玩得比人強。
② 機器人控制:教機械手臂抓物、機器狗走路。
③ 推薦系統:把用戶點擊當「遊戲」,推薦系統當 agent,選推什麼內容(動作)能拿最高點擊(獎勵)。

自我檢測

Q1. DQN 是什麼?
用神經網路近似 Q 值函數的強化學習方法,讓 Q-learning 能處理狀態龐大(如遊戲畫面像素)的問題。
Q2. 為什麼不直接用表格 Q-learning?
表格要為每個 (狀態,動作) 存一格,狀態一多(如影像)就爆炸且無法泛化;用網路近似可從相似狀態泛化、處理高維輸入。
Q3. 經驗回放與目標網路各做什麼?
經驗回放把互動經驗存進緩衝區、訓練時隨機抽樣,打破相關性;目標網路用更新較慢的網路提供穩定學習目標,兩者都讓訓練更穩。
Q4. DQN 適合什麼問題?
狀態空間大、動作為離散的決策問題(如 Atari);動作為連續(如機器人控制)則需 DDPG、PPO 等方法。

🎯重點整理

📝 iPAS 考點提醒

DQN(深度 Q 網路)用神經網路近似 Q 值,是深度強化學習的里程碑,iPAS RL 進階考點。重點:把 Q-learning 擴展到高維狀態(如遊戲畫面),靠經驗回放與目標網路穩定訓練。易混點:DQN 屬價值法、off-policy,與策略梯度(直接學策略)路線不同;它仍是強化學習(靠獎勵試錯)、非監督式。情境:Atari 遊戲等高維狀態的 RL。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

DQN 是什麼?

Deep Q-Network,用神經網路近似 Q 值函數的強化學習方法,讓 Q-learning 能處理狀態龐大(如遊戲畫面像素)的問題。

為什麼需要 DQN、不直接用表格 Q-learning?

表格法要為每個狀態與動作存一格 Q 值,狀態一多(如影像)就爆炸且無法泛化;用網路近似可從相似狀態泛化、處理高維輸入。

經驗回放(Experience Replay)做什麼?

把互動經驗(狀態、動作、獎勵、下一狀態)存進緩衝區,訓練時隨機抽樣;打破連續樣本的相關性、重複利用資料,讓訓練更穩定。

目標網路(Target Network)為什麼重要?

用一個更新較慢的網路產生學習目標,避免目標和被更新的網路同時變動造成的震盪與發散,提升訓練穩定性。

DQN 適合什麼問題?

狀態空間大、動作為離散的決策問題(如 Atari 遊戲);動作為連續(如機器人控制)則需 DDPG、PPO 等其他方法。

🧭 相關主題

← 返回 AI 學習與考證地圖