0

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

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

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

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

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

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

4

2 回答 2

2

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

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

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

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

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

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

于 2020-08-06T03:55:40.160 回答
1

DQN的奖励函数设计原理是什么?

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

关于值的范围......假设您知道可以分配的所有奖励,因此您知道值的范围,并且您可以轻松地将其标准化,假设为 [0,1]。因此,范围并不意味着太多,但您分配的值说明了很多。

关于负奖励值。一般来说,我发现它存在于目标是最小化成本的问题中。例如,如果你有一个机器人,它的目标是在房间里收集垃圾,他必须不时给自己充电才能继续完成这项任务。您可能会在电池消耗方面获得负面回报,而您的目标是将其最小化。另一方面,在许多游戏中,目标是得分越来越多,因此分配正值是很自然的。

于 2020-10-08T14:14:20.473 回答