我正在尝试训练 DQN,所以我正在使用 OpenAI 健身房和 Breakout ( Breakout-v0 )。
我改变了环境提供的奖励:如果情节没有完全完成,代理将获得 -10 的奖励。这会对学习产生反作用吗?
我正在尝试训练 DQN,所以我正在使用 OpenAI 健身房和 Breakout ( Breakout-v0 )。
我改变了环境提供的奖励:如果情节没有完全完成,代理将获得 -10 的奖励。这会对学习产生反作用吗?
通常,当您仍在尝试创建解决原始问题的代理时,添加或更改 RL 环境的奖励结构的方法称为奖励塑造。
奖励塑造可能很难做到正确。在你的情况下,我认为这可能会适得其反。主要问题是代理不知道当前时间步长作为状态的一部分。所以从它的角度来看,“超时”的负奖励实际上看起来像是在游戏后期发生的那种状态下获得相同奖励的随机机会。效果可能足够小,它并不重要(毕竟它仍然会因为击打砖块而获得积极的奖励)。但是,它可能会在某些游戏位置上显示为高方差,使代理学会无缘无故地避开其中一些位置。
如果这里的目的是尝试让代理加快并完成一个情节,一个更简单的技巧可能是减少折扣因子(例如,从到)。这将导致代理专注于获得更多的短期奖励,而牺牲了长期计划。在某些环境中,这可能是不同类型的问题,但是当奖励不稀疏并且没有任何需要扩展设置的特殊高奖励状态时,应该没问题。
如果目标是更严厉地惩罚失去“游戏生命”,那么这不太可能导致问题(因为状态会清楚地显示出预期的结果),尽管它可能会改变最佳行为是什么,或者它是怎样的接近。一般来说,影响会减少冒险,尽管 Breakout 是一种确定性游戏,但由于每个动作都会持续随机数帧 (2-4),因此会为代理提供一个随机环境。由于对失去生命的惩罚很大,我认为代理人不太可能通过用球棒的极端边缘击球来尝试获得高反弹角度。请注意,您不需要为了惩罚失去生命的代理,它知道因为这一集结束了,它不能再得分了。价值函数都是关于预测未来奖励的,所以任何失去生命的状态的价值总是反正。
如果您有更多时间,那么还有几个基本 DQN 的扩展,它们需要较少的采样经验来学习环境或改进生成的策略。这些想法的一个很好的来源是论文Rainbow: Combining Improvements in Deep Reinforcement Learning。