问题标签 [openai-gym]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - OpenAI 健身房玩家模式
有谁知道如何以玩家身份运行 OpenAI 健身房环境之一。就像让人类玩家玩一轮推车杆一样?我已经看到有 env.mode = 'human' 但我无法让它正常运行。我试图按照这里给出的例子https://www.pinchofintelligence.com/getting-started-openai-gym/但它似乎对我不起作用。
您可以提供的任何帮助将不胜感激。
谢谢
deep-learning - Deep Q 学习如何工作
当我训练我的模型时,我有以下部分:
其中s_t, a_
分别对应于当前状态和在这些状态下采取的行动。model2
与model
除了model2
具有输出num_actions
且model
仅输出在该状态下采取的操作的值外相同。
我觉得奇怪(并且确实是这个问题的重点)在于train_data
我有以下行的功能:
奇怪的是,我正在使用该模型来生成我的模型y_batch
并对其进行训练。这不是成为某种自我实现的预言吗?如果我理解正确,该模型会尝试预测预期的最大奖励。使用相同的模型来尝试生成y_batch
意味着它是真正的模型不是吗?
问题是,1. 使用相同模型生成 y_batch 和训练它们背后的直觉是什么。2.(可选)损失值是否意味着什么。当我绘制它时,它似乎并没有收敛,但是奖励的总和似乎在增加(参见下面链接中的图)。
完整的代码可以在这里找到,它是深度 Q 学习在 CartPole-v0 问题上的实现:
其他论坛的评论:
- y = r + gamma*np.max(model.predict(s_t_batch), axis=1) 是完全自然的,y 将收敛到真实的状态动作值。如果你不打破连续更新与经验回放(或更好的优先级经验回放)之类的东西之间的相关性,你的模型就会出现分歧。还有更好的变体,比如 DDQN,Dueling Network,性能更好。
- y_batch 包括奖励。目标网络和在线网络都是估计值。由于 DQN 的价值函数过于乐观,这确实是一个有点自我实现的预言。这就是几个月后添加双 DQN 的原因。
- y 会收敛,但不一定会收敛到真实的(我假设你的意思是最优的)状态动作值。没有人证明收敛值是最佳值,但它是我们拥有的最佳近似值。然而,对于足够简单的问题(例如网格世界),将收敛到真实值
python - 训练强化学习代理时 tflearn 损失始终为 0.0
我尝试使用以下代码训练带有gym和tflearn的强化学习代理:
问题是,当模型训练时,损失总是0.0
。有人可以帮我解决这个问题吗?
pygame - 打开 AI gym 和 pygame: pygame.error: display Surface quit
我在我的 _render 函数中得到了共同点pygame.error: display Surface quit
,如下所示。健身房环境运行,但在大约 10 秒后崩溃。我是 pygame 的新手,所以如果解释了错误会有所帮助。我在这里和这里检查过,但答案并不能完全解决我的问题。完整代码在这里。当我通过我的 main.py 文件运行该程序时,该程序使用gym 成功运行,但是当我使用gym_test.py 运行它时,我得到了错误。
主文件
健身房测试.py
渲染.py
sys.exitfunc 中的错误:回溯(最近一次调用最后一次):文件“/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py”,第 24 行,在 _run_exitfuncs func(*targs, **kargs) 文件 "/usr/local/lib/python2.7/site-packages/gym/utils/closer.py",第 67 行,在关闭 closeable.close()文件“/usr/local/lib/python2.7/site-packages/gym/core.py”,第 164 行,关闭 self.render(close=True) 文件“/usr/local/lib/python2.7/ site-packages/gym/core.py”,第 150 行,在渲染中返回 self._render(mode=mode, close=close) 文件“/Users/lusenii/Developer/gym-audio/gym_audio/envs/frogger.py” ,第 82 行,在 _render self.screen.blit(self.background, (0, 0)) pygame.error 中:显示 Surface 退出
tensorflow - 从数组中输入 tensorflow 占位符
我正在尝试使用 Q 学习来训练 CatPole-v0。尝试使用经验更新重播缓冲区时,出现以下错误:
相关的代码片段是:
要馈送的占位符是
有人可以澄清应该如何使用 action_dim 来解决这个错误吗?
reinforcement-learning - 强化学习中的无效动作
我已经为一个类似于http://curvefever.io/的游戏实现了一个自定义的 openai 健身房环境,但是使用谨慎的操作而不是连续的操作。所以我的代理可以在每一步中向左/上/右/下四个方向之一前进。然而,这些动作之一总是会导致代理自己崩溃,因为它不能“逆转”。
目前我只是让代理采取任何行动,如果它采取无效行动就让它死亡,希望它最终会学会在那种状态下不采取那种行动。但是,我读过可以将非法移动为零的概率设置为,然后对动作进行采样。有没有其他方法可以解决这个问题?
python - 如何使用 keras-rl 进行多智能体训练
我正在尝试在多代理环境中使用 keras-rl。所以我发现了这个keras-rl 的 github 问题,其中包含一个为所有代理使用共享环境的想法。不幸的是,我还没有设法让它工作。似乎在这种情况下使用健身房环境通常是可能的,我只是没有设法让它与 keras-rl 一起使用。有谁知道怎么做?
python - 为什么我的 DQN 代理无法在非确定性环境中找到最优策略?
编辑:以下似乎也适用于FrozenLake-v0
. 请注意,我对简单的 Q 学习不感兴趣,因为我希望看到适用于连续观察空间的解决方案。
我最近创建了banana_gym
OpenAI 环境。场景如下:
你有一根香蕉。它必须在 2 天内售出,因为第 3 天就坏了。您可以选择价格 x,但香蕉仅以
奖励为x - 1。如果第三天没有卖掉香蕉,则奖励为-1。(直觉:你为香蕉支付了 1 欧元)。因此,环境是非确定性的(随机的)。
操作:您可以将价格设置为 {0.00, 0.10, 0.20, ..., 2.00}
观察:剩余时间(来源)
我计算了最优策略:
这也符合我的直觉:首先尝试以更高的价格出售香蕉,因为您知道如果不卖,您还有另一次尝试。然后将价格降低到 0.00 以上。
最优策略计算
我很确定这是正确的,但为了完整起见
DQN + 策略提取
以下 DQN 代理(使用Keras-RL实现)适用于CartPole-v0
环境,但学习策略
对于香蕉环境。它朝着正确的方向前进,但它始终如一地学习该策略而不是最佳策略:
为什么 DQN 代理不学习最优策略?
执行:
代码dqn.py
:
openai-gym - 找不到记录器“universe”错误消息的处理程序
我安装了 openai 健身房、宇宙和码头。当我运行以下代码时,我收到此错误消息:
找不到记录器“宇宙”的处理程序
我运行的代码是:
我相信它是 env.configure(remotes=1),经过两天的研究并尝试了其他程序员建议的许多修复,我仍然收到此错误消息。有人能帮助我吗?我在 OS X 上使用终端。提前非常感谢您!
random - OpenAI 环境(健身房)应该如何使用 env.seed(0)?
我创建了一个非常简单的 OpenAI Gym( banana-gym
) 并且想知道我是否应该/如何实现env.seed(0)
。
例如,请参阅https://github.com/openai/gym/issues/250#issuecomment-234126816。