我有一个代理面对平等对手的环境,虽然我在实施 DQN 并将对手视为环境的一部分方面取得了不错的表现,但我认为如果代理对自己进行迭代训练,性能会有所提高。我看过关于它的帖子,但从来没有详细的实现说明。我的想法是实现以下内容(代理和对手现在是独立的网络):
- 具有初始权重的引导代理和对手(随机或针对 CPU 训练,不确定)
- 对 N 次迭代使用 Annealing Epsilon Greedy 策略
- 在 M 次迭代 (M > N) 后,将代理网络的权重复制到对手的网络
- 重置退火 epsilon(即再次开始随机执行以探索新对手)?
- 重复步骤 2-4
像这样的东西会起作用吗?一些具体的问题是:
- 每次更新对手时,我是否应该“重置”我的退火 epsilon 策略?我觉得这是必要的,因为代理需要足够的时间来为这个“新”对手探索新策略。
- 更新对手时是否应该清除经验回放缓冲区?同样,我认为这是必要的。
任何指针将不胜感激。