reinforcement-learning相关内容

使用多个股票代码的数据集进行强化学习?

这是一个一般性问题,也许有人可以为我指明正确的方向. 我正在使用 Python 3.6/Tensorflow 进行强化学习,并且我发现/调整了我自己的模型来训练特定股票的历史数据.我的问题是,是否可以在不止一只股票的数据集上训练这个模型?我读过的关于时间序列预测和 RL 的每篇机器学习文章都使用一个数据集进行训练和测试,但我的目标是在一堆价格不同的股票代码上训练模型,希望该模型能够识别相似的 ..

是否可以修改 OpenAI 环境?

我想在 OpenAI 环境中修改一些内容.如果我们使用 Cartpole 示例,那么我们可以编辑类 init 函数中的内容,但对于使用 Box2D 的环境,它似乎并不那么简单. 例如,考虑 BipedalWalker 环境. 在这种情况下,我将如何编辑 SPEED_HIP 或 SPEED_KNEE 变量之类的内容? 解决方案 是的,您可以在 Gym 中修改或创建新环境.最简单( ..
发布时间:2021-07-07 18:56:23 其他开发

如何摆脱“粘性"状态?

问题: 我已经训练了一个代理在网格世界中执行一个简单的任务(在没有碰到障碍物的情况下走到网格的顶部),但是下面的情况似乎总是发生.它发现自己处于状态空间的一个简单部分(没有障碍物),因此不断收到强烈的正强化信号.然后,当它发现自己是状态空间的困难部分(楔在两个障碍物旁边)时,它只是选择与以前相同的动作,但没有任何效果(它上升并击中障碍物).最终该值的 Q 值与负奖励匹配,但此时其他动作的 Q ..

Q-learning 和 SARSA 与贪婪选择等价吗?

Q-learning 和 SARSA 的区别在于 Q-learning 比较当前状态和可能的最佳下一个状态,而 SARSA 比较当前状态和实际下一个状态. 如果使用贪心选择策略,即 100% 的时间选择具有最高动作值的动作,那么 SARSA 和 Q-learning 是否相同? 解决方案 好吧,实际上并非如此.SARSA 和 Q-learning 之间的一个主要区别在于,SARSA ..
发布时间:2021-07-07 18:56:14 其他开发

tf_agents 自定义 time_step_spec

我正在修改 tf-agents,但在制作自定义 time_step_spec 时遇到问题. 我正在尝试在健身房“Breakout-v0"中训练 tf-agent,我已经创建了一个函数来预处理观察(游戏像素),现在我想修改 time_step 和 time_step_spec 以反映新数据. 原始 time_step_spec.observation() 是: BoundedTenso ..
发布时间:2021-07-07 18:56:08 其他开发

如何在 OpenAI 的健身房中注册自定义环境?

我根据 OpenAI Gym 框架创建了一个自定义环境;包含 step、reset、action 和 reward 函数.我的目标是在这个自定义环境上运行 OpenAI 基线.但在此之前,环境必须在 OpenAI 健身房注册.我想知道如何在 OpenAI 健身房注册自定义环境?另外,我是否应该修改 OpenAI 基线代码以包含此内容? 解决方案 你不需要修改baselines repo. ..
发布时间:2021-07-07 18:56:05 其他开发

如何在运行时动态设置对象的方法(当对象是 Gym 环境的实例时)?

我想覆盖一个实例的方法.让我们称这个实例/对象为 env.实例方法有一个带有 f(self, other_parameter) 签名的方法,它实际上是不可公开访问的(不知道为什么,但你会在下面看到它没有列在类和对象:你能告诉我为什么吗?).但是,我得到了 new_f(other_parameter) 形式的函数,即没有 self 参数,我需要将其绑定到实例/对象,根据 元组:返回 [], self ..

一段时间不刷新时,Pygame 窗口没有响应

我正在尝试使用我制作的“游戏"进行一些强化学习. 在我的主循环中,当我只是玩游戏时,如果窗口定期刷新,一切都会正常. 然而,在一集之后,我想训练我的代理,但如果训练时间太长,pygame 窗口只显示“控制栏"(带有 X 的栏用于关闭窗口),如果我尝试关闭它,程序就会崩溃. 有什么简单的方法可以解决吗?其他解决方案告诉我应该定期调用一些 pygame 函数,但是如果我不得不暂停我的 ..
发布时间:2021-06-23 20:37:52 Python

为什么要设置“export OPENBLAS_NUM_THREADS=1"?影响性能?

我尝试将“导出 OPENBLAS_NUM_THREADS=1"设置为 本文档 建议.但是我发现了一个奇怪的现象,设置它会显着损害我的 RL 算法的性能(我已经对 TD3 和 SAC 进行了一些测试,所有结果一致表明“export OPENBLAS_NUM_THREADS=1"会损害性能).为什么会造成这么大的问题? 顺便说一句,算法是使用 Tensorflow1.13 实现的,数据通过 tf ..

分层强化学习的实现

任何人都可以推荐可以通过抽象处理大型状态空间的强化学习库或框架吗? 我正在尝试为游戏世界中的小代理实现智能.该代理由一个小型的两轮机器人代表,该机器人可以向前和向后移动,以及向左和向右旋转.它具有用于检测地面边界的一对传感器,用于检测远处物体的一对超声波传感器以及用于检测与物体或对手的接触的一对碰撞传感器.它也可以做一些简单的航位推算,以其起始位置为参考来估算其在世界上的位置.因此,所有可用 ..
发布时间:2021-05-31 18:43:24 AI人工智能

python OpenAI Gym Monitor在记录目录中创建json文件

我正在健身房 CartPole-v0 环境上实现价值迭代,并希望将代理人行为的视频记录在视频文件中.我一直在尝试使用Monitor包装器实现此功能,但是它会在记录目录中生成json文件而不是视频文件.这是我的代码: env =gym.make('FrozenLake-v0')env = gym.wrappers.Monitor(env,'recording',force = True)种子(0) ..

具有离散动作空间的软演员评论家

我正在尝试为离散的动作空间实现软角色评论器算法,但是我对损失函数有麻烦. 以下是SAC与连续动作空间的链接: https://spinningup.openai.com/en/latest/algorithms/sac.html 我不知道我在做什么错. 问题是网络在cartpole环境中没有学到任何东西. github上的完整代码: https://github.com/t ..

图像到文本-Pytesseract与Windows上的数字作斗争

我正在尝试为ML项目实时预处理游戏框架.我想从框架中提取数字,所以我选择了Pytesseract,因为它在文本上看起来相当不错.虽然,无论我做的文字多么清晰,它都无法正确阅读.我的代码如下: section = process_screen(screen_image)[1]pixels = rgb_to_bw(section)#使图像灰度像素[pixels ..

如何有效利用GPU进行强化学习?

最近,我研究了强化学习,但有一个问题困扰着我,我找不到以下答案:使用GPU如何有效地进行训练?据我了解,与环境的不断交互是必需的,对我来说这似乎是一个巨大的瓶颈,因为该任务通常是非数学的/不可并行的.例如,Alpha Go使用多个TPU/GPU.那他们怎么办呢? 解决方案 实际上,您经常会在学习步骤之间与环境进行交互,与在GPU上运行相比,在CPU上运行通常会更好.因此,如果用于执行操作的 ..
发布时间:2021-05-13 18:41:12 其他开发

在Google合作实验室上运行Gym-凉亭

我正在尝试在Google合作实验室上运行Gym-凉亭. 在Colab上运行凉亭服务器(没有gui的凉亭)时出现问题. 显示屏上显示警告:无法创建X窗口.渲染将被禁用,但我想我已经解决了. 也有关于声卡的警告.不确定是否与无法打开音频设备相关, 还有关于转换的警告不支持传感器类型[深度]的转换 这是一个示例 你能帮忙吗? 解决方案 要以无头模式运行凉亭,您需要运行 gserver ..

奖励功能,用于学习使用DQN玩“曲线发烧"游戏

我制作了一个简单的Curve Fever版本,也称为"Achtung Die Kurve".我希望机器找出最佳玩法.我从一些使用Google Tensorflow制作的Atari游戏示例中复制了现有的DQN并对其进行了一些修改. 我想找出合适的奖励功能.目前,我使用以下奖励设置: 不会崩溃的每一帧为0.1 -500每次崩溃 这是正确的方法吗?我需要调整值吗?还是我需要一种完全不 ..

DQN在奖励始终为-1的环境中如何工作

鉴于OpenAI Gym环境 MountainCar-v0 总是返回-1.0作为奖励(即使达到目标),我不知道具有体验重播功能的DQN如何收敛,但我知道这样做,因为我有 据我了解,最终需要找到一个“稀疏奖励".但据我从openAI Gym看到的代码,除-1之外没有其他任何奖励.感觉更像是一个“无奖励"的环境. 什么几乎可以回答我的问题,但实际上却没有:当任务快速完成时,剧集的回报(奖励总和) ..

神经网络无法学习(损失保持不变)

我和我的项目合作伙伴目前在我们最新的大学项目中遇到问题. 我们的任务是实现一个玩Pong游戏的神经网络.我们将球的速度和球拍的位置提供给网络,并提供三个输出:UP DOWN DO_NOTHING.玩家获得11分后,我们将训练所有状态的网络,做出的决策以及做出的决策的奖励(请参阅reward_cal()).我们面临的问题是,仅根据学习率,损失就一直保持在特定值上.因此,即使我们将其视为严重错误,网络 ..
发布时间:2021-02-14 20:47:20 Python