AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
46/100 第五週:📌 Deep Q-Network(DQN)與深度強化學習入門
46.Doule DQN 🎯 減少 Q 值過度估計問題的絕招!
________________________________________
🎯 單元導讀
在 DQN 中,我們常用公式
y = r + γ * max Q_target(s', a')
來計算 TD 目標值。
但這樣的設計容易導致Q 值過度估計(Overestimation Bias),尤其在非線性神經網路下,這種誤差會被放大,導致學習方向偏移、策略不穩。
為了解決這個問題,Double DQN 應運而生!
它巧妙地分離「選擇動作」與「評估動作」的責任,從而有效減少過度樂觀的偏差。
________________________________________
🧠 一、什麼是 Q 值過度估計?
在傳統 DQN 中,我們對未來最優行動的估計是:
max Q_target(s', a')
但神經網路有噪聲、偏差時,這個 max 操作容易放大誤差,使 Q 值高估未來回報。
這會導致:
• 模型太樂觀 → 選到實際價值較低的動作
• 學習方向偏離真實最優策略
________________________________________
🎯 二、Double DQN 的關鍵技巧:分工合作!
Double DQN 解法是:
用主網路選動作,用目標網路評估動作的價值!
TD 目標改寫為:
a_max = argmax_a Q_online(s', a) ← 主網路決定要選誰
y = r + γ * Q_target(s', a_max) ← 目標網路負責評估價值
這樣的好處是:
• 主網路只「選擇」
• 目標網路負責「評估」
• 避免用同一個網路做兩件事導致估計偏差!
________________________________________
🔁 三、Double DQN 更新流程與架構
步驟 說明
1️⃣ 儲存經驗 (s, a, r, s', done) 放入 Replay Buffer
2️⃣ 抽樣訓練 隨機取樣一批經驗
3️⃣ 選擇 a_max 用 Q_online 計算 argmax_a Q(s', a)
4️⃣ 評估 Q 值 用 Q_target 計算 Q(s', a_max)
5️⃣ 計算 TD 目標 y = r + γ * Q_target(s', a_max)
6️⃣ 損失反向傳播 用 y 與 Q(s, a) 計算 loss 進行更新
________________________________________
🧪 四、PyTorch 實作(核心部分)
python
# 假設 Q_online 是主網路,Q_target 是目標網路
# Step 1: 主網路選擇 a_max
a_max = Q_online(s_next).argmax(dim=1)
# Step 2: 目標網路評估其 Q 值
q_target_value = Q_target(s_next).gather(1, a_max.unsqueeze(1)).squeeze()
# Step 3: TD target
y = reward + gamma * q_target_value * (1 - done)
________________________________________
📊 五、Double DQN 實測效益
在強化學習中,DQN 初期收斂速度較快,但因為目標 Q 值的計算同時依賴自身網路,容易產生 Q 值過高估計,導致學習過程震盪不穩定。而 Double DQN 透過將動作選擇與評估拆分,減少了高估偏差,雖然收斂速度稍慢,但學習過程明顯更穩定,Q 值估計也更貼近真實回報。實驗證實,在許多 Atari 遊戲任務中,Double DQN 相較傳統 DQN 有顯著更好的表現,成為強化學習中常用的穩定化改良方法。
________________________________________
🔍 六、生活中的例子
例子 1:買手機 📱
你想買新手機,如果自己同時「挑款」又「評價它的好壞」,可能會偏向自己一開始的喜好(比如品牌迷思)。Double DQN 的做法是:你先根據需求挑出型號(主網路),再請朋友依實際性能與價格來評估(目標網路),避免過度高估。
例子 2:考試估分 📖
如果考完試自己出題又自己批改,很可能覺得自己表現很好。Double DQN 就像「你自己選出可能答對的題目(主網路)」,再交給老師依標準答案批改(目標網路),結果會更準確。
例子 3:旅遊規劃 ✈️
規劃旅遊時,你可能因偏好先選了某景點,然後又自己評估「一定很好玩」,結果容易過度高估。Double DQN 的方式是:先自己選景點(主網路),再去查旅遊評價或問去過的朋友(目標網路),確保判斷更可靠。
________________________________________
✅ 七、小結與啟示
• DQN 容易出現 Q 值過度估計,影響策略品質
• Double DQN 將「選擇動作」與「評估動作」拆分
• 避免樂觀偏差,是穩健學習策略的重要武器
• 就像生活中,決策與評估最好由不同機制處理,更客觀可靠!