问题标签 [dqn]

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.

0 投票
1 回答
63 浏览

deep-learning - Q-learning 与 Deep Q-learning 的收敛时间

我想知道在同一问题上运行时深度 Q 学习与 Q 学习的收敛时间。谁能告诉我他们之间的模式?如果用图表来解释会更好。

0 投票
1 回答
243 浏览

tensorflow - 如何进行更快的深度强化学习训练

如您所知,使用单个 CPU 进行深度强化学习 (DRL) 训练可能需要 10 天以上的时间。使用并行执行工具(如 CUDA),训练时间最多可减少 1 天(取决于 CPU 和 GPU 功能)。但是在使用 CUDA 时,GPU 使用率在 10% 左右,训练时间仍然太长。对于想要在开发代码时经常检查结果的开发人员来说,这非常令人不安。在编码技巧、构建模型、设置、GPU 硬件等方面,您有什么建议尽可能减少训练时间?

0 投票
0 回答
208 浏览

python - 月球着陆器问题的 DQN 训练,无法学习。无法收敛

嗨,我一直在尝试训练一个 DQN 代理来解决 Lunar Lander 离散问题,但它无法学习,即使在 1000 集之后,平均奖励也徘徊在 -130 左右。我也使用了目标网络。请任何人指导我我做错了什么..我的代码如下。(并且代码没有在 colab 和 kaggle 的 gpu 上运行。这就是为什么我必须等待太久才能看到更改的效果..)请帮帮我。

0 投票
0 回答
119 浏览

reinforcement-learning - 适用于 2 人游戏的深度 Q 学习 (DQN)

我想知道如何正确实现两人游戏的 DQN 算法,例如井字游戏和连接 4。虽然我的算法相对快速地掌握井字游戏,但连接 4 无法获得很好的结果。代理正在学习获胜很快,如果它有机会的话,但它只在中路发挥作用。它无法检测第一列和最后一列中的威胁。我正在使用带有内存重放的 DDQN。并且指的是两个实力不同的代理人teacherstudent而老师经常被新学生取代。我的算法看起来简化如下:

观察值对于玩家“o”是 -1,对于玩家“x”是 1,对于空玩家是 0。代理学习扮演玩家“x”,并通过action = teacher.choose_action(-observation)它为玩家“o”找到最佳移动。我希望这很清楚。

更新规则如下所示:

我正在使用-gamma * q_next * terminal,因为如果对手在下一步中获胜,则奖励为负数。我错过了什么重要的东西还是只是超参数调整的问题?

0 投票
0 回答
61 浏览

python - 使用 Keras 的 Deep Q 网络的神经网络输入和输出形状

对于学校作业,我必须使用深度 Q 网络解决 201 件物品的有界背包问题,准确地说是来自“或健身房”的“背包-v2”。第一步是创建一个神经网络,在 Deep Q Network 算法中使用两次作为所谓的 Q 网络和目标 Q 网络。

Q 网络必须将我的问题的当前状态作为其输入,即背包信息,如下所示:array([[item weights], [item values], [item limits]])

每次我迈出一步时,数组的第三部分都会更新,所以当我“选择一个项目”时,限制会减少 1。

输入这个数组后,神经网络必须吐出预期的 Q 值以执行某个动作(因此选择一个项目),此后,必须发生许多其他事情,但现在超出了范围。

问题在于我的输入和输出的尺寸规格,我想在给定状态数组的情况下进行预测,并得到 201 个值的输出,即我的 Q 值。

这是我当前的网络(以及一些测试其输出的代码):

我尝试了几种输入和输出形状,但没有一个能满足我的需求。

预期输出示例:

0 投票
1 回答
117 浏览

reinforcement-learning - 深度 Q 学习 - Cartpole 环境

我担心将 Cartpole 代码理解为深度 Q 学习的示例。DQL代理部分代码如下:

在训练部分,我们找到了我们的目标和train_target。那么我们为什么设置train_target[0][action] = target在这里呢?

学习时做出的每一个预测都是不正确的,但是由于误差计算和反向传播,在网络末端做出的预测会越来越接近,但是当我们在train_target[0][action] = target这里做的时候,误差就变成了0,在这种情况下,学习是?

0 投票
0 回答
53 浏览

matlab - 注意能够在 MATLAB 中找到用于深度 Q 学习 (DQN) 的已保存代理的神经网络的训练权重

我正在使用 Matlab 专门进行 DQN 强化学习,我正在检查通过Matlab 示例给出的演示示例

训练块,如果我们不想进行训练,Matlab 会使用保存的代理。在上面的块中,我们还可以定义一些关于何时保存代理的条件。

我已附上matlab 保存的代理数据文件,并尽我所能在保存的代理数据文件中找到经过训练的权重,该代理将用于在部署时执行模拟,但找不到这些权重的任何痕迹,只能找到训练选项和其他的东西。

我的问题是如何为保存的代理找到那些经过训练的权重,如果保存的代理数据文件不包含经过训练的权重,它如何在部署时实际工作。

0 投票
0 回答
35 浏览

reinforcement-learning - 使用 tf_agents.agents.DqnAgent 添加正则化损失

我正在用它的 tf_agents.networks.q_network.QNetwork 训练我的 tf_agents.agents.DqnAgent,不幸的是,权重太大了。所以我认为 L2-Regularization 将是一个好主意。但是,不可能将自己的正则化层添加到 QNetwork 并且在文档中我也找不到任何方法将正则化损失添加到训练过程中。

有谁知道使用 tf_agents 库规范深度 Q 学习的优雅方法?非常感谢您!

0 投票
0 回答
62 浏览

julia - 朱莉娅 ReinforcementLearning.jl 中的神经网络架构

在 VBasedPolicy 中,神经网络逼近器尝试学习状态的 V 值。所以它的第一层(输入层)应该有与状态大小相同数量的神经元。而且我相信它的最后一个(输出)层的大小应该为 1,因为它会产生一个与输入状态相对应的标量。

但是当我使用这样的网络架构时,我会从轨迹中得到 BoundsError。详细情况如下。

我在库的 github repo 上看到了各种示例实验,但是 BasicDQN 上的所有示例都使用 QBasedPolicy,其中最后一层网络的大小等于操作数,这对我来说很有意义,因为给定一个状态,网络必须为每个输出 Q 值行动。

我浏览了 github 上的代码,而错误恰好出现在本页的第 79。但我无法解决。

0 投票
0 回答
119 浏览

deep-learning - 为什么我在 cartpole 上的 DQN 不收敛?

这是我的 DQN 实现的代码。我检查了许多其他人的存储库中的代码,但找不到任何差异。我想 learn() 中有一些错误,但我找不到任何差异。我在 pytorch 官方网站上查看了 DQN 代码,我查看了他们的动作、奖励、状态、下一个状态完全没问题。

这是我的代理类代码。

这是我的训练循环代码。