Below you will find pages that utilize the taxonomy term “PyTorch”
Postsread more
30 天把 Breakout DQN 做成可重現、可比較、可部署的強化學習工程專案
我完成了這次 30 天的鐵人賽。
這次我選擇的主題不是單純「用 DQN 玩 Breakout」,而是希望把一個強化學習專案,從實驗階段一路做到接近真正軟體專案的形式。
因此整個系列的核心問題其實是:
如果今天不是只想讓 Agent 學會玩遊戲,而是希望建立一套可重現、可比較、可部署的強化學習工程流程,我需要解決哪些問題?
整個專案最後不只包含訓練程式,也一路延伸到實驗管理、評估流程、模型匯出、ONNX inference、Web Demo 與 Docker。
從一個 DQN 開始
專案以 Atari Breakout 為實驗環境。
最初的目標很單純:建立一個能夠正常訓練的 DQN Agent。
但實際開始之後,很快就會發現,真正困難的部分不只是神經網路本身。
例如:
- Atari 環境與 ALE 的設定
- Frame preprocessing 與 frame stacking
- Replay Buffer
- Online Network 與 Target Network
- Exploration strategy
- Training stability
- Random seed 與 reproducibility
- Evaluation protocol
- Checkpoint 管理
這些東西任何一個地方出錯,都有可能讓實驗結果失去意義。
因此,我開始把這個專案從「能跑」逐漸改造成「能夠被驗證」。
從 DQN 延伸到不同演算法
在建立基礎 DQN 後,我進一步實作與比較不同的改進方法。