machine-learning - 学习使用 DQN 玩 Curve Fever 游戏的奖励功能

标签 machine-learning tensorflow deep-learning reinforcement-learning q-learning

我制作了 Curve Fever 的简单版本,也称为“Achtung Die Kurve”。我希望机器能够弄清楚如何以最佳方式玩游戏。我从一些使用 Google 的 Tensorflow 制作的 Atari 游戏示例中复制并稍微修改了现有的 DQN。

我正在努力找出合适的奖励函数。目前,我使用此奖励设置:

  • 每帧 0.1 不会崩溃
  • 每次崩溃-500

这是正确的方法吗?我需要调整这些值吗?或者我需要一种完全不同的方法吗?

最佳答案

-500 的奖励可能会破坏你的网络。您应该将奖励调整为 1 到 -1 之间的值。 (还将输入图像缩放到 -1 和 1 或 0 和 1 之间)。

只要给你的网络崩溃奖励 -1 ,一旦敌人崩溃奖励 +1 。如果没有敌人,崩溃奖励 -1 就足够了。在某些情况下,拥有小的、恒定的正生活奖励可能是有益的(例如,当网络必须在两次不可避免的崩溃之间做出决定,其中一次发生的速度比另一次更快时),但它也会使 Q 函数的学习变得更加复杂。您可以尝试有或没有持续奖励,看看哪种效果最好。

不可避免的崩溃的例子也说明了为什么你不应该使用小的负生活奖励。在这种情况下,网络会选择最快崩溃的路径,而尽可能延迟崩溃将是这种情况下更好的策略。

关于machine-learning - 学习使用 DQN 玩 Curve Fever 游戏的奖励功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43804248/

相关文章:

python - 在 tensorflow 中运行 Iterator.get_next() 后如何获取前一批?

python - 在 TensorFlow 中索引子张量

machine-learning - mxnet 训练没有进展

r - 如何创建变量(捕获特定阈值的增加)R?

machine-learning - 我们能否在使用 CNN 时明确指定从图像中提取哪些特征

algorithm - 哪种类型的机器学习算法更适合根据以前的访问预测船舶的下一个目的地?

tensorflow - pip install 命令导致 Broken toolchain 错误

image-processing - 二值分割的结果是图像模糊

tensorflow - LSTM Keras 之上的 Attention

machine-learning - 如何评估不同模型在一个数据集上的性能?