💡一句話定義
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)
➡
經驗回放 (Replay Buffer)
Memory Log [s, a, r, s']
Epsilon (探索率): 1.00
Total Reward: 0
Episode: 1
⚖️表格 Q-learning vs DQN
| 面向 | 表格 Q-learning | DQN |
|---|---|---|
| Q 值儲存 | 一張表,每個 (狀態,動作) 一格 | 神經網路估算,不用列舉 |
| 狀態很多時 | 爆炸、存不下 | 可處理高維(如像素) |
| 泛化能力 | 無,沒見過的狀態不會 | 能從相似狀態泛化 |
| 適用 | 小型離散問題 | 大狀態空間、離散動作 |
🔑兩大關鍵技術
🗂️經驗回放 Experience Replay
把 (s, a, r, s′) 存進記憶庫,訓練時隨機抽樣,打破連續樣本相關性、重複利用資料,更穩定。
把 (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」。
🧭它在強化學習的定位
🎯應用場景
① Atari 遊戲:DeepMind 用 DQN 讓電腦純看像素就把打磚塊、太空侵略者玩得比人強。
② 機器人控制:教機械手臂抓物、機器狗走路。
③ 推薦系統:把用戶點擊當「遊戲」,推薦系統當 agent,選推什麼內容(動作)能拿最高點擊(獎勵)。
② 機器人控制:教機械手臂抓物、機器狗走路。
③ 推薦系統:把用戶點擊當「遊戲」,推薦系統當 agent,選推什麼內容(動作)能拿最高點擊(獎勵)。
✅自我檢測
Q1. DQN 是什麼?
用神經網路近似 Q 值函數的強化學習方法,讓 Q-learning 能處理狀態龐大(如遊戲畫面像素)的問題。
Q2. 為什麼不直接用表格 Q-learning?
表格要為每個 (狀態,動作) 存一格,狀態一多(如影像)就爆炸且無法泛化;用網路近似可從相似狀態泛化、處理高維輸入。
Q3. 經驗回放與目標網路各做什麼?
經驗回放把互動經驗存進緩衝區、訓練時隨機抽樣,打破相關性;目標網路用更新較慢的網路提供穩定學習目標,兩者都讓訓練更穩。
Q4. DQN 適合什麼問題?
狀態空間大、動作為離散的決策問題(如 Atari);動作為連續(如機器人控制)則需 DDPG、PPO 等方法。
🎯重點整理
- 本質:用神經網路估 Q,取代查表。
- 解決:狀態龐大、高維(如像素)也能學。
- 兩技術:經驗回放 + 目標網路穩定訓練。
- 目標:逼近 Bellman 目標 r+γ·max Q。
- 定位:價值法、off-policy、離散動作。