设计DQN奖励功能的原理是什么?

时间:2020-08-03 16:45:27

标签: deep-learning reinforcement-learning dqn

我正在设计DQN模型的奖励功能,这是深度强化学习部分中最棘手的部分。我提到了几种情况,并注意到通常奖励将设置在[-1,1]中。考虑到如果负奖励的触发次数少于正奖励的次数,而“稀疏”触发的次数较多,则正奖励可能会低于1。

我想知道为什么我应该总是尝试将奖励设置在此范围内(有时可以是[0,1],有时可以是[-1,0]或仅仅是-1)?该范围的背后是什么理论或原理?

我经历了this answer;它提到将500设置为正奖励,将-1设置为负奖励将破坏网络。但是它将如何破坏模型?

我可以模糊地理解这与梯度下降有关,实际上,这是奖励问题之间的差距,而不是符号或绝对值。但是我仍然缺少明确的提示,说明它如何破坏以及为什么在如此范围内。

此外,我什么时候应该使用[0,1]这样的奖励或仅使用否定奖励?我的意思是,在给定的时间范围内,这两种方法似乎都可以推动代理商寻找最高的总奖励。只有在我想让代理尽快到达最终点的情况下,负奖励才比正奖励更合适。

是否存在衡量奖励设计合理的标准?就像使用“求和”和“不当”的Q值之和一样,它是对称的,最终的Q应该在零附近,这意味着它收敛了?

2 个答案:

答案 0 :(得分:2)

我想知道为什么我应该总是尝试将奖励设置在此范围内(有时可能是[0,1],有时可能是[-1,0]或只是-1)?

如果您将奖励函数定义为[0,1]或[-1,0]范围,则​​基本上是相同的。这只会导致您的动作值是正值或负值,但不会影响神经网络的收敛。

我回答了这个问题;它提到将500设置为正奖励,将-1设置为负奖励将破坏网络。但是它将如何破坏模型?

我不太同意这个答案。这样的奖励功能不会“破坏”模型,但是它无法为代理的行为提供平衡的正面和负面奖励。它为坐席提供了避免崩溃的动力,但是却不鼓励其切断对手。

此外,我什么时候应该使用[0,1]这样的奖励或仅使用否定奖励?

如前所述,使用正数或负数奖励都没有关系。重要的是奖励的相对性。例如,如您所说,如果您希望代理尽快到达终端状态,从而引入负面奖励,则只有在情节期间不存在正面奖励的情况下,代理才有效。如果代理可以在情节中途获得积极的回报,则不会激励他们尽快结束情节。因此,重要的是相对性。

答案 1 :(得分:1)

设计DQN奖励功能的原理是什么?

正如您所说,这是RL的棘手部分。以我的拙见,奖励只是“引导”系统引导您最重视的(状态,行动)对的方式。因此,如果您认为一对(状态,动作)比另一对大500倍,为什么不呢?

关于值的范围...假设您知道可以分配的所有奖励,因此您知道了值的范围,并且可以轻松地对其进行归一化,比如说[0,1]。因此,范围的意义并不大,但是您分配的值说明了很多。

关于负奖励值。总的来说,我发现它的目标是最小化成本。例如,如果您有一个目标明确的机器人,那就一定要在房间里收集垃圾,而他不时要充实自己才能继续执行此任务。您可能会在电池消耗方面获得负面奖励,而您的目标是将电池消耗降至最低。另一方面,在许多游戏中,目标是得分越来越高,因此分配正值是很自然的。