← 上级:RL-04.实现框架与实践 · 算法:RL-03-06-算法-DQN · Buffer:RL-05-03-结构-Replay-Buffer
本文给出 CartPole-v1 上可运行的 DQN 最小完整实现(单文件可拆模块),对应 RL-04-02-PyTorch实现要点 中的惯例。
一、Replay Buffer
1 | import random |
二、Q 网络与 Agent
1 | import torch |
三、训练主循环
1 | import gymnasium as gym |
四、改进挂钩
| 改进 | 改法 |
|---|---|
| Double DQN | a* = online(s2).argmax; target = r + γ * target(s2)[a*] |
| Dueling | 网络拆 $V + A$ |
| PER | 换 Prioritized Buffer |
五、超参(CartPole)
| 超参 | 值 |
|---|---|
| buffer | 50000 |
| batch | 64 |
| lr | 1e-3 |
| $\gamma$ | 0.99 |
| target_update | 500 |
| warmup | 1000 步后再 update(可加) |