Sutton 和 Barto表示,“奖励信号是您与机器人 [agent] 交流您希望它实现什么的方式,而不是您希望它如何实现的方式。” 既然你说目标是先到达终点线,那么奖励1为了获胜,0因为输了,和0在所有其他时间步骤似乎都符合这种叙述。如果平局与输球相同,则应提供奖励0; 否则,奖励0.5似乎有道理。这些奖励提供了模型可解释性:预期回报p(用状态值或动作值估计)在当前策略下的某个状态将表示p获胜的机会。此外,将奖励的绝对值保持在最多 1 可以帮助提高训练速度并防止发散,但对于深度强化学习问题,这通常不是必需的。您当然可以根据实现目标的部分进展添加其他奖励,但您似乎发现,它们可能会导致错误的结果。
话虽如此,我会专注于训练过程,而不是微调的奖励信号。由于赛车游戏中有一个已知的目标状态(终点线),我建议通过在每集开始时首先初始化距离目标状态仅几步之遥的所有赛车代理来训练 RL 代理。这些情节更短,因此应该提供更密集的奖励信号。当您的 RL 智能体已经学习了一个获胜策略(例如,获胜的概率更高),然后在每集开始时稍微远离目标状态初始化这些智能体。此外,继续使用和训练相同的神经网络. 由于神经网络可能知道目标状态附近状态的获胜策略,因此通过仅初始化更远的几个状态的代理,RL 代理将获得一个热启动,并且只需要学习更多状态的策略。由神经网络编码的策略本质上包含针对接近目标状态的状态的精细奖励信号,因为它基于获胜策略;这有助于防止仅在剧集完成时提供奖励而导致的稀疏问题。一旦 RL 智能体学习了获胜策略,同时继续使用和训练相同的神经网络,您可以通过稍微远离目标状态初始化智能体来重复此过程。
根据您对环境内部的访问权限,您可能需要其他类似的方法。例如,您可以在原始起始线(即不在地图中途)初始化代理,然后查看是哪个代理完成的n单位在地图上首先确定获胜者。一旦 RL 代理学习到获胜策略,然后逐渐增加n直到n匹配从起点线到终点线的距离。由于您似乎拥有distance traveled
并且distance to the opponent
作为功能,如果您无法在地图上的任何位置初始化代理,而只能在起跑线上初始化它们,则可以尝试此方法。
整体方法的一个显着好处是,您可以在更简单的环境(即情节长度较短的环境)上更快地调试您的算法,以确信学习过程是正确的,并将您的精力集中在其他地方(例如训练过程,包括奖励信号)。