【问题标题】:Time step in reinforcement learning强化学习中的时间步
【发布时间】:2020-02-03 00:21:05
【问题描述】:

对于我的第一个强化学习项目,我正在尝试训练代理玩实时游戏。这意味着环境会不断地移动并做出改变,因此代理需要精确地了解其时间。为了有一个正确的顺序,我认为代理必须以一定的频率工作。我的意思是,如果代理的频率为 10Hz,它必须每 0.1 秒接受一次输入并做出决定。但是,我找不到有关此问题/事项的任何来源,但这可能是由于在我的搜索中未使用正确的术语。这是处理此事的有效方法吗?如果是这样,我可以使用什么?我在windows中使用python3(游戏只在windows中运行),有没有可以使用的库?我猜time.sleep() 不是一个可行的出路,因为它不是很精确(在使用高频时),而且它只会冻结代理。

编辑:所以我的主要问题是:

a) 我应该使用某个频率,这是操作强化学习代理的正常方式吗?

b) 如果是,您建议使用哪些库?

【问题讨论】:

    标签: python python-3.x time reinforcement-learning


    【解决方案1】:

    这个问题没有明确的答案,因为它受多种因素的影响,例如模型的推理时间、环境接受的最大控制率以及解决环境所需的控制率。

    当您尝试玩游戏时,我假设您的最终目标可能是将代理的性能与人类的性能进行比较。 如果是这样,一个好的方法是选择与人类在同一游戏中可能使用的控制率相似的控制率,这很可能低于 10 赫兹。

    您可以尝试衡量您在玩游戏时使用了多少动作以获得良好的估计,

    但是,任何合理的频率(例如您建议的 10Hz)都应该是开始使用代理的良好起点。

    【讨论】:

    • 也许我对困扰我的问题不是很清楚。我不是在寻求有关代理操作频率的实际数字的帮助,这将在稍后解决。我试图获得有关执行此工作的库的建议。我什至不知道使用设置频率是否是一个好主意,这就是我试图获得建议的原因。所以我将总结我的两个主要问题(将它们编辑到原帖中):a)我应该使用一定的频率,这是操作强化学习代理的正常方式吗? b) 如果是,您建议使用哪些库?
    • a) 是的,基本上没有办法避免这种情况,但是,您可以包含一个“无操作”操作,它在一个时间步内什么都不做。 b) 困难,因为现在有很多竞争框架。 Rllib 浮现在脑海中,但确实有很多不同的选项可供选择
    猜你喜欢
    • 1970-01-01
    • 2013-12-06
    • 2016-03-14
    • 2018-11-05
    • 2019-04-16
    • 2022-12-28
    • 2016-10-24
    • 2022-09-28
    • 1970-01-01
    相关资源
    最近更新 更多