对于我在强化学习中的第一个项目,我试图训练一个智能体来玩实时游戏。这意味着环境不断地移动和变化,因此代理需要精确地确定它的时间。为了有一个正确的序列,我认为智能体必须以一定的频率工作。我的意思是,如果智能体有10 has的频率,它将不得不每0.1秒接受一次输入并做出决定。然而,我找不到任何关于这个问题/问题的来源,但这可能是因为在我的搜索中没有使用正确的术语。这是处理这件事的有效方法吗?如果是这样,我可以使用什么?我在windows下使用python3 (游戏只在windows下运行),有没有可以使用的库?我猜time.sleep()
不是一个可行的解决办法,因为它不是很精确(当使用高频时),而且它只是冻结了代理。
编辑:所以我的主要问题是:
a)我是否应该使用特定的频率,这是操作强化学习代理的正常方式吗?
b)如果是这样的话,你推荐什么库?
发布于 2020-02-03 09:41:07
这个问题没有明确的答案,因为它受到各种因素的影响,例如模型的推理时间、环境接受的最大控制率以及求解环境所需的控制率。
当您尝试玩游戏时,我假设您的最终目标可能是将智能体的性能与人类的性能进行比较。如果是这样的话,一个好的方法是选择一个与人类在同一个游戏中可能使用的控制速率相似的控制速率,很可能低于10赫兹。
你可以尝试测量你在玩游戏时使用了多少动作来得到一个好的估计,
但是,任何合理的频率,例如您建议的10 on,都应该是开始使用您的代理的良好起点。
https://stackoverflow.com/questions/60031847
复制