dqn

使用带有 DQN 算法的张量板

对于强化学习,我读到张量板并不理想,因为它提供了每集和/或步骤的输入。由于在强化学习中有数千个步骤,它并没有为我们提供内容的概述。我在这里看到了这个修改过的张量板类:https://pythonprogramming.net/deep-q-learning-dqn-reinforcement-learning-python-tutorial/ 班级: class ModifiedTensorBoa... »

DQN的奖励函数设计原理是什么?

我正在设计一个 DQN 模型的奖励函数,这是深度强化学习部分中最棘手的部分。我参考了几个案例,并注意到通常奖励将设置在 [-1, 1] 中。考虑到如果负奖励被触发的次数更少,与正奖励相比更“稀疏”,那么正奖励可能会低于 1。 我想知道为什么我要设置总是尝试将奖励设置在这个范围内(有时可以是[0,1],其他时候可以是[-1,0]或简单地-1)?范围背后的理论或原理是什么? 我通过this answe... »

带有自定义环境的 TensorFlow 2.0 DQN 代理问题

所以我一直在关注 DQN 代理示例/教程,并按照示例中的方式进行设置,唯一的区别是我构建了自己的自定义 python 环境,然后将其封装在 TensorFlow 中。然而,无论我如何塑造我的观察和行动规范,每当我对其进行观察并要求采取行动时,我似乎都无法让它发挥作用。这是我得到的错误: tensorflow.python.framework.errors_impl.InvalidArgum... »

奖励结构的制定

我是强化学习和 RL 代理训练实验的新手。 我对奖励公式有疑问,从给定的状态来看,如果代理采取了好的行动,我会给予积极的奖励,如果行动不好,我会给予消极的奖励。因此,如果我在代理采取好的行动时给予非常高的正奖励,例如正值是负奖励的 100 倍,它会在训练期间帮助代理吗? 直觉上我觉得,这会有助于智能体的训练,但是这种倾斜的奖励结构会有什么弊端吗?... »

在强化学习代理的训练过程中,累积的情节奖励出现了几次下降

您好,我正在使用 PPO 算法为控制问题训练强化学习代理。我正在跟踪训练过程中每一集的累积奖励。在训练过程中,我多次看到累积的奖励突然下降。我无法弄清楚为什么会发生这种情况或如何避免这种情况。尝试更改一些超参数,例如更改神经网络层中的神经元数量、学习率等。但我仍然看到这种情况一直在发生。 如果我调试并检查在下跌期间采取的行动,显然行动是非常糟糕的,因此会导致奖励减少。 有人可以帮助我了解为什么会... »

一段时间后DQN没有任何进展

这是我的代码,它是一个简单的 DQN,可以学习玩蛇,例如,我不知道为什么它会在一段时间后停止学习。它知道蛇头应该撞墙,但它没有学会吃水果,即使我给靠近水果的奖励和更远的负奖励(这是为了让蛇明白)它应该瞄准水果)。但由于某种原因,分数永远不会超过 1 或 2: """ ################################################# ###### #MAIN.py ... »

决斗 DQN 更新模型架构并导致问题

我使用以下架构创建了一个初始网络模型。 def create_model(env): dropout_prob = 0.8 #aggresive dropout regularization num_units = 256 #number of neurons in the hidden units model = Sequential() model.ad... »

Deep Q - 在 Python 中使用 Tensorflow 学习 Cartpole

我知道在 StackOverflow 上讨论过很多类似的话题,但是我在 StackOverflow 和互联网上都做了很多研究,但我找不到解决方案。 我正在尝试实现经典的 Deep Q 学习算法来解决 openAI 健身房的推车游戏: OpenAI Gym Cartpole 首先,我创建了一个生成随机权重的代理。结果如下图所示: 令人惊讶的是,代理通过在每个情节中从(-1.0 到 1.0)简单地生... »

在 Keras 模型中为 model.predict() 输入正确的问题

我有一个 DQN 代理,它接收一个状态,该状态由一个表示其位置的数值和一个表示来自多个用户的请求的二维数组组成。 我对构建神经网络的尝试如 here 所述。 模型摘要 现在问题出在 model.predict() 方法上,它是这样写的: target_f = self.model.predict(state) 在方法中: def replay(self, batch_size): # meth... »

如何使用经过训练的 RL 模型进行预测?

我想使用经过训练的 RL 模型进行离散测试预测。 这就是模型的构建方式: model = Sequential() model.add(Dense(60, activation='relu', input_shape=states)) model.add(Dense(60, activation='relu', input_shape=states)) model.add(Dense(60, ac... »

DQN 不稳定预测

我在 Java 中从头开始实现 DQN,一切都是定制的。我做了它来玩蛇,结果非常好。但我有一个问题。 为了使网络尽可能稳定,我使用replay memory 和target network。网络融合得非常好。但过了一段时间它就坏了。 这是一个图表(X - 玩过的游戏,Y - 平均得分) 在我用policy 网络更新target 网络后,这种“中断”通常发生在几场比赛中。 我用于 DQ... »

q 代理正在学习不采取任何行动

我正在训练一个深度 q 网络来交易股票;它有两种可能的动作; 0:等待,1:没买就买,买了就卖。作为输入,它获取所购买股票的价值、股票的当前价值以及与股票相关的前 5 个时间步长的股票价值。所以像 [5.78, 5.93, -0.1, -0.2, -0.4, -0.5, -0.3] 奖励只是销售价格和购买价格之间的差额。任何其他动作的奖励都是 0,尽管我尝试过让它为负数或其他没有结果的东西。... »

dqn 状态值是否应该仅为 0 到 1

如果 DQN 中的状态值只需要为 0 到 1,例如 状态 = [0, 0, 0, 1, 1, 1, 1, 0, 1, 0] 或者它可以有一个值大于 1 eh 的状态 状态 = [6, 5, 4, 1, 1, 1, 2, 3, 15, 10] ... »

这种 DQN 算法在 TensorFlow Js 中的实现是如何工作的?

开发者, 我找到了一堆 DQN 实现的例子,但是因为我不是 TensorFlow 专家,所以我有点困惑。 让我们看看here 就是其中之一。 我可以理解,在第 73 行,我们准确地切分了一批存储的数据 [{state, action, reward, newState, done}],然后我们得到 currentStates,即 [[s1, s2, ...]],然后在第 75 行我们使用模型得到 ... »

观察中的深度强化学习运动

我正在尝试为自动驾驶车辆实施 DRL(深度强化学习)代理。我目前正在教我的代理不要撞到其他汽车,使用简单的摄像头。有很多方法可以加快训练速度,但目前我的重点是在我的观察中添加运动感。 互联网上的每个人(包括谷歌关于 Atari 游戏的文章)都提到,为了在观察中添加运动是 捕获 3-4 帧,而不是 1 并将它们作为一个输入 QNetwork观察。但是,这在使用相机数据时不太实用,因为它需要大量的计算... »

随机环境的优先体验重放

我尝试使用以下论文来改进我的代理https://arxiv.org/pdf/1511.05952.pdf的学习 虽然它似乎在确定性环境中运行良好,但我觉得它实际上会在随机环境中变得更糟。 假设对于状态 S_w 的动作 A_w,我们有 50% 的机会获得 +1000000 的奖励和 50% 的机会获得 -1000000 的奖励(在其他状态下可以忽略不计的确定性奖励)。因此,该动作的真实 Q 值为... »