AI時代系列(5) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
45/100 第五週:📌 Deep Q-Network(DQN)與深度強化學習入門
45.固定目標網路(Target Network)🔒 穩定訓練,防止發散!
_______________________________________
🎯 單元導讀
在深度強化學習中,模型學習過程容易「不穩定」甚至「發散」,
尤其當神經網路同時用來產生預測值與計算目標值時,會導致學習方向自我牽動、自我干擾。
為了減少這種問題,DeepMind 提出了 Target Network(目標網路)機制,
藉由分離學習目標與學習本身,大幅提升了 DQN 的穩定性!
________________________________________
🧠 一、為什麼需要 Target Network?
在原始 Q-Learning 中,更新公式為:
Q(s, a) ← Q(s, a) + α * [r + γ * max Q(s', a') - Q(s, a)]
若直接用同一個神經網路估計 Q(s, a) 與 Q(s', a'):
• 容易產生高變異的學習信號
• Q 值會自我影響,導致不穩定甚至發散!
👉 解法:使用一個凍結版本的網路 θ⁻ 來產生目標值
________________________________________
🔒 二、Target Network 機制說明
項目 說明
主網路(Online Network) 負責學習與更新,參數為 θ
目標網路(Target Network) 負責計算 TD 目標值,參數為 θ⁻
更新方式 每隔固定步數 τ 將 θ 複製給 θ⁻(硬更新)
TD 誤差損失計算:
y = r + γ * max_a' Q_target(s', a'; θ⁻)
Loss = (y - Q(s, a; θ))²
________________________________________
🔁 三、兩種 Target Network 更新方式
方法 說明 公式
硬更新(Hard Update) 每隔 N 步整體複製一次 θ⁻ ← θ
軟更新(Soft Update) 每步以小比例靠近主網路 θ⁻ ← τθ + (1 - τ)θ⁻
• 常見設定:
o 硬更新:每 1000 步同步一次
o 軟更新:τ 通常設為 0.001 或更小
________________________________________
🧪 四、Target Network 的實作範例(PyTorch)
python
# 假設 Q 和 Q_target 是兩個 nn.Module
Q = QNetwork()
Q_target = QNetwork()
# 初始化時複製參數
Q_target.load_state_dict(Q.state_dict())
# 每隔固定步驟做一次同步
if step % target_update_freq == 0:
Q_target.load_state_dict(Q.state_dict())
在 DQN 中,Q 和 Q_target 是兩個神經網路模型,Q 負責即時更新學習,而 Q_target 作為穩定的參考目標。剛初始化時,Q_target 會完整複製 Q 的權重參數(Q_target.load_state_dict(Q.state_dict()))。隨後,Q 會在每次訓練後不斷更新,而 Q_target 則不會立即跟著變動。為了讓學習目標穩定,每經過固定的訓練步數(例如 target_update_freq 次),再把最新的 Q 參數同步複製給 Q_target。這樣可以避免目標值快速震盪,穩定整個 Q 值學習過程,也是 DQN 成功的重要技巧之一。
________________________________________
📸 五、使用 Target Network 的好處
1️⃣ 降低 Q 值估計的波動
• 將目標值固定一段時間,減少自我牽動效應
2️⃣ 避免學習不穩定與爆炸
• 增加訓練的可預期性與收斂性
3️⃣ 更符合數學推導的 Q-Learning 精神
• 使用「固定的目標」做 TD 更新,是理論的關鍵基礎之一
________________________________________
🔍 六、生活中的類比與啟示
1️⃣ 主網路像你現在的行動力,目標網路像你當初立下的原則與目標
👉 如果每天都在變目標,就容易迷失方向;目標需要「定一陣子」。
2️⃣ 軟更新 vs. 硬更新?
👉 軟更新像「日常微調方向感」;硬更新像「每月回顧人生大計」
________________________________________
✅ 七、小結與啟示
• 使用 Target Network 是 DQN 成功的關鍵之一
• 分離學習主體與學習目標,有助於穩定訓練
• 可選擇硬更新(定期複製)或軟更新(指數平滑)
• 就像人生一樣:穩定的目標,是通往成功的導航器!