我是深度强化学习 DQN 模型的新手。我使用 Open AI Gym 分别重现了一些名为CartPole-v0
和的实验MountainCar-v0
。
我参考了 Github 的代码,CartPole-v0
: https://gist.github.com/floodsung/3b9d893f1e0788f8fad0e6b49cde70f1
MountainCar-v0
: https://gist.github.com/floodsung/0c64d10cab5298c63cd0fc004a94ba1f
。
两种模型都可以成功运行并按预期获得测试集的奖励。但是两个模型的每个时间步的奖励是不同的。
对于CartPole-v0
,奖励为 +1 和 0。每集有 300 个时间步长,代理尝试尽可能多的总奖励。源代码如下:https://github.com/openai/gym/blob/master/gym/envs/classic_control/cartpole.py
但是在 中MountainCar-v0
,所有动作的奖励始终为 -1,因此代理试图最终获得比平时更少的负奖励。这里还解释了DQN 如何在奖励始终为 -1 的环境中工作。
所以这让我很困惑如何确定动作或状态的奖励?在有限的时间步长内,似乎积极的奖励或消极的奖励都有意义?选择使用哪一个的原则是什么。我看到有时奖励可能是它们之间的浮点数。
以及如何避免“自杀”的情况,即代理自杀而不是试图达到目标,因为“活罚”(代理每一步都会受到惩罚,以加快探索阶段的利用阶段) . >https://datascience.stackexchange.com/questions/43592/rl-weighting-negative-rewards
提前致谢!