问题标签 [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 回答
553 浏览

reinforcement-learning - rllib DQN 实施中的 Atari 分数与奖励

我正在尝试使用 RLLib 复制 Breakout 的 DQN 分数。在 500 万步之后,平均奖励为 2.0,而使用 DQN 的 Breakout 已知得分为 100+。我想知道这是否是因为奖励削减,因此实际奖励与 Atari 的分数不对应。在 OpenAI 基线中,实际得分放在info['r']奖励值中,实际上是裁剪值。RLLib 的情况是否相同?有没有办法在训练时查看实际的平均分数?

0 投票
1 回答
81 浏览

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

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

有人可以帮助我理解为什么会发生这种情况或如何避免这种情况吗?

我训练过程的一些情节

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
44 浏览

artificial-intelligence - 奖励结构的制定

我是强化学习和尝试训练 RL 代理的新手。

我对奖励公式有疑问,从给定状态来看,如果代理采取了好的行动,我会给予积极的奖励,如果行动不好,我会给予消极的奖励。因此,如果我在代理采取好的行动时给予非常高的正奖励,例如正值是负奖励的 100 倍,它会在训练期间帮助代理吗?

直觉上我觉得这会有助于智能体的训练,但是这种倾斜的奖励结构会有什么弊端吗?

0 投票
3 回答
976 浏览

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

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

tensorflow.python.framework.errors_impl.InvalidArgumentError: In[0] 不是矩阵。相反,它具有形状 [10] [Op:MatMul]

这是我设置代理的方式:

以下是我设置环境的方式:

这是我的输入/观察结果:

tf.Tensor([ 0. 0. 0. 0. 0. 0. 0. 0. -1. -1. -1. -1. 0. 0. 0. -1.], shape=(16,) , dtype=float32)

我尝试过尝试我的 Q_Net 的形状和深度,在我看来,错误中的 [10] 与我的 q 网络的形状有关。将其层参数设置为 (4,) 会产生以下错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: In[0] 不是矩阵。相反,它具有形状 [4] [Op:MatMul]

0 投票
1 回答
120 浏览

reinforcement-learning - 为什么 Deep Q 网络算法只执行一个梯度下降步骤?

为什么 dqn 算法只执行一个梯度下降步骤,即只训练一个 epoch?它不会从更多的时期中受益吗,它的准确性不会随着更多的时期而提高吗?

0 投票
0 回答
78 浏览

arrays - 神经网络输出形状不匹配

所以我正在构建我自己的第一个简单的 DQN 神经网络。但我真的在为我的网络的输出形状苦苦挣扎。

我有一个具有 139 个特征的输入,使其 input_shape=(None,139) 和批量大小为 64。最后一层有 4 个输出,因为我的环境有 4 个可能的操作(0、1、2、3)。

但我得到这个错误:

ValueError:检查目标时出错:预期dense_4的形状为(None,1)但得到的数组形状为(1、4)

这让我发疯。我做错了什么?

型号总结:

使用下面的代码发布更新。-带有模型、火车等的DQN类。

-

0 投票
1 回答
845 浏览

reinforcement-learning - DOUBLE DQN 没有任何意义

为什么要使用 2 个网络,每集训练一次,每N集更新目标网络,什么时候我们可以使用 1 个网络,每N集训练一次!从字面上看没有区别!

0 投票
1 回答
42 浏览

deep-learning - 为什么用非线性函数逼近器随机化强化学习模型的样本会减少方差?

我已经阅读了 DQN 论文。

在阅读 DQN 论文时,我发现随机选择和学习样本使用非线性函数逼近器减少了 RL 中的分歧。

如果是这样,为什么当输入数据强相关时,使用非线性函数逼近器的 RL 学习会发散?

0 投票
0 回答
206 浏览

reinforcement-learning - 在 Tensorflow JS Snake-DQN 示例中,为什么正在更新的优化器似乎根本没有链接到在线网络,如建议的那样?

我考虑将这个问题放在项目的实际 GitHub 存储库中,但这可能是一个愚蠢的问题。这是回购:https ://github.com/tensorflow/tfjs-examples/tree/master/snake-dqn

如果您查看以下文件和行,您会发现正在更新的优化器似乎没有任何指向在线模型的链接;

首先,在线模型未使用 dqn.js 文件第 33-60 行中的任何优化器进行编译:https ://github.com/tensorflow/tfjs-examples/blob/master/snake-dqn/dqn.js#L60

然后在以下文件中初始化优化器,没有指向模型的链接;

文件 agent.js 第 60 行:https ://github.com/tensorflow/tfjs-examples/blob/master/snake-dqn/agent.js#L60

文件 train.js 第 84 行:https ://github.com/tensorflow/tfjs-examples/blob/master/snake-dqn/train.js#L84

文件 agent.js 第 157 行中使用的优化器:https ://github.com/tensorflow/tfjs-examples/blob/908ee32750ba750a14d15caeb53115e2d3dda2b3/snake-dqn/agent.js#L157

我没有看到其他参考资料,那么它实际上如何按照建议更新和训练在线网络?

顺便说一句,这实际上不是双 dqn 吗?

0 投票
1 回答
85 浏览

machine-learning - 为什么 PyTorch DQN 教程中的 CNN 卷积输出大小使用“kernel_size -1”计算?

根据我的理解,一维的 CNN 输出大小是

output_size = (input_size - kernel_size + 2*padding)//stride + 1

请参阅PyTorch DQN 教程。在本教程中,它使用 0 填充,这很好。但是,它计算输出大小如下:

这是上面的错误还是我错过了什么?