在过去的几天里,我广泛研究了“Demystifying Deep Reinforcement Learning”一文,同时尝试自己实现所提出的算法。
我的目标是让代理通过使用深度强化学习的方法与自己玩一个简单的棋盘游戏来学习。在“深度 Q 学习算法”一章中用伪代码描述的算法是直截了当的,但我无法理解回放内存只初始化一次并且永远不会被清除的事实。
除了可用内存增长过大的明显问题外,似乎还有一个更根本的缺陷。一开始游戏几乎是随机的,因为 Q 函数刚刚被随机初始化。这意味着糟糕的举动几乎不会受到对手的惩罚。从一开始的随机遭遇中学习是有意义的,因为我们没有更好的数据可以学习,这实际上很好地描述了观察到的环境行为。
但是当智能体改进时,旧的记忆玩法将不再有价值,因为某些动作将不再被对手玩,因此旧的游戏将不再反映环境的当前行为。
这至少是我的解释。现在我想知道这是否只是文章中的伪代码中缺少,或者我的思维方式在这方面是错误的。我的问题是,如果我们需要在给定的设置中定期刷新回放内存,应该多久刷新一次?