OpenAI Gym Cartpole-v0了解观察和动作关系

时间:2018-08-28 15:08:38

标签: python openai-gym

我对建模系统感兴趣,该系统可以使用openai健身房制作一个不仅性能出色,而且希望更好,而且不断改进以收敛于最佳动作的模型。 这就是我初始化环境的方式

import gym
env = gym.make("CartPole-v0")
env.reset()

它返回一组信息;观察,奖励,完成和信息,信息总是一无所有,因此请忽略它。

我希望奖励能表明所采取的行动是好是坏,但是在游戏结束之前,它总是返回1的奖励,更多地是您玩了多长时间的计数器。

动作可以通过

进行采样
action = env.action_space.sample()

,在这种情况下为1或0。 为了向不知道该游戏是什么的人提供一个视角,这里是link,其目标是通过左右移动来平衡极点,即输入0或1。

观察是判断您是好是坏的唯一关键方法。

obs, reward, done, info = env.step(action)

观察结果看起来像这样

array([-0.02861881,  0.02662095, -0.01234258,  0.03900408])

正如我之前说的,奖励总是1,所以根据观察结果和完成情况,好的或不好的指示并不是很好的指针,尽管我也无法判断这是否意味着你输了还是赢了,但游戏已经结束了

由于您要从页面链接中看到的目标是平衡两极,平均获得超过195场游戏的总奖励+195,这是成功游戏的决定性指南,因此不确定您是否成功然后完全平衡或持续很长时间,但仍然遵循,但我还是参考了一些示例并建议生成大量随机游戏,那些排名靠前的游戏可以使用它们来训练模型。

但是这种方法很粗略,并且本质上不知道什么是失败的举动,例如,当您将杆子倾斜超过15度或手推车从中心移出2.4个单位时。

我已经通过运行200000次模拟来收集数据,并且使用它还发现我有很多游戏可以持续80多个步骤。 (目标是195),因此我使用了这些games

我认为我看到的也许是第一次观察到,如果它变为0,则游戏结束,但是我也看到其他一些游戏以负值运行。即使使用基本图形,我也无法理解数据。

我真正想知道的是,如果可能的话,观察值中的每个值表示什么,以及0表示左还是右,但是当我能理解第一个时,则更容易推断出后者。

1 个答案:

答案 0 :(得分:1)

似乎您早已问过这个问题。但是,答案是,观察是通过手推车的位置,杆的角度及其导数给出的。中间位置为0。因此,负数在左边,正数在右边。

相关问题