我是一个完全的强化学习新手,一直在寻找一个框架/模块来轻松地探索这个危险的领域。在我的搜索中,我发现了两个模块keras-rl和OpenAI GYM。
我可以让它们在它们在WIKI上分享的示例上工作,但它们都带有预定义的环境,并且几乎没有关于如何设置自己的自定义环境的信息。
如果有人能指点我如何设置非游戏环境的教程或者解释一下,我将不胜感激。
我是一个完全的强化学习新手,一直在寻找一个框架/模块来轻松地探索这个危险的领域。在我的搜索中,我发现了两个模块keras-rl和OpenAI GYM。
我可以让它们在它们在WIKI上分享的示例上工作,但它们都带有预定义的环境,并且几乎没有关于如何设置自己的自定义环境的信息。
如果有人能指点我如何设置非游戏环境的教程或者解释一下,我将不胜感激。
我已经花了一些时间在这些库上,并且可以分享一些我的实验。
让我们先以文本环境作为自定义环境的例子,https://github.com/openai/gym/blob/master/gym/envs/toy_text/hotter_colder.py
对于自定义环境,需要定义以下几个方面:
可选地,您可以创建一个 _render 方法,如下所示:
def _render(self, mode='human', **kwargs):
outfile = StringIO() if mode == 'ansi' else sys.stdout
outfile.write('State: ' + repr(self.state) + ' Action: ' + repr(self.action_taken) + '\n')
return outfile
另外,为了更好的代码灵活性,您可以在_get_reward方法中定义奖励逻辑,并在_take_action方法中更改执行操作后的观察空间。