如何正确使用 DQN 实现自玩?

人工智能 深度学习 强化学习 dqn 深度学习 自我游戏
2021-11-06 00:42:18

我有一个代理面对平等对手的环境,虽然我在实施 DQN 并将对手视为环境的一部分方面取得了不错的表现,但我认为如果代理对自己进行迭代训练,性能会有所提高。我看过关于它的帖子,但从来没有详细的实现说明。我的想法是实现以下内容(代理和对手现在是独立的网络):

  1. 具有初始权重的引导代理和对手(随机或针对 CPU 训练,不确定)
  2. 对 N 次迭代使用 Annealing Epsilon Greedy 策略
  3. 在 M 次迭代 (M > N) 后,将代理网络的权重复制到对手的网络
  4. 重置退火 epsilon(即再次开始随机执行以探索新对手)?
  5. 重复步骤 2-4

像这样的东西会起作用吗?一些具体的问题是:

  1. 每次更新对手时,我是否应该“重置”我的退火 epsilon 策略?我觉得这是必要的,因为代理需要足够的时间来为这个“新”对手探索新策略。
  2. 更新对手时是否应该清除经验回放缓冲区?同样,我认为这是必要的。

任何指针将不胜感激。

0个回答
没有发现任何回复~