首页 > 解决方案 > DQN的奖励函数设计原理是什么?

问题描述

我正在设计 DQN 模型的奖励函数,这是深度强化学习部分中最棘手的部分。我参考了几个案例,并注意到通常奖励将设置在 [-1, 1] 中。考虑到如果负奖励被触发的次数更少,与正奖励相比更“稀疏”,正奖励可能低于 1。

我想知道为什么我要设置总是尝试将奖励设置在这个范围内(有时可以是[0,1],其他时候可能是[-1,0]或简单地-1)?范围背后的理论或原理是什么?

我经历了这个答案;它提到将 500 设置为正奖励,将 -1 设置为负奖励将破坏网络。但它会如何破坏模型呢?

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

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

是否有衡量奖励设计合理的标准?就像使用Sum the Q value of good action和bad action一样,它是对称的,最终的Q应该在零附近,这意味着它会收敛吗?

标签: deep-learningreinforcement-learningdqn

解决方案


我想知道为什么我要设置总是尝试将奖励设置在这个范围内(有时可以是[0,1],其他时候可能是[-1,0]或简单地-1)?

如果您在 [0,1] 或 [-1,0] 范围内定义奖励函数,本质上是相同的。它只会导致你的动作值是正的或负的,但不会影响你的神经网络的收敛性。

我经历了这个答案;它提到将 500 设置为正奖励,将 -1 设置为负奖励将破坏网络。但它会如何破坏模型呢?

我不会真的同意这个答案。这样的奖励函数不会“破坏”模型,但是它无法为代理的行为提供平衡的正负奖励。它为代理不崩溃提供了激励,但不鼓励它切断对手。

此外,我什么时候应该使用像 [0,1] 这样的奖励或只使用负奖励?

如前所述,使用正面或负面奖励并不重要。重要的是你的奖励的相对性。例如,正如您所说,如果您希望代理尽快达到终端状态,从而引入负奖励,则只有在情节期间没有正奖励时才会起作用。如果代理可以在剧集中途获得积极奖励,则不会激励它尽快结束剧集。因此,重要的是相对性。


推荐阅读