在连接四的情况下,我应该如何定义奖励函数?

人工智能 强化学习 游戏-ai 奖励 奖励设计 连接四
2021-11-03 08:19:59

我正在使用 RL 在游戏 Connect4 上训练网络。它很快就知道 4 个连接的部分是好的。它为此获得 1 的奖励。所有其他动作都奖励零。

人工智能试图阻止对手获胜需要相当长的时间。

有没有办法进一步加强这一点?

我考虑过在获胜棋步之前对下棋给予负奖励。考虑到这一点,我得出的结论是,这是一个坏主意。总会有一个较松的人(平局除外),因此失败的玩家总会有最后一步。这个应该不是坏的。错误可能更早发生。

有没有办法提高对手的这种意识?还是只需要训练更多?

我不确定奖励是否会以鼓励这种行为的方式传播回来。

1个回答

两个玩家零和游戏的经典工作奖励方案(即如果我赢,你输,反之亦然)很简单:

  • +1 获胜

  • 0 平局

  • -1 表示亏损

这些奖励应该与玩家在游戏结束前的最后一步相关联。

我考虑过对在获胜棋步之前下的棋步给予负面奖励。

这就是通常所做的。

考虑到这一点,我得出结论,这是一个坏主意。总会有一个较松的人(平局除外),因此失败的玩家总是有最后一步。这个应该不是坏的。错误可能更早发生。

没关系,agent学习的是状态和动作组合的最终,它将正确地将负面奖励与价值下降的董事会状态链相关联,然后它将试图避免。

这种延迟奖励的场景,不一定与当前动作的选择有关,强化学习算法可以正确处理。尽管如此,这仍然是一个棘手的问题——更延迟且更难以预测的奖励会导致更棘手的 RL 问题。然而,即使是基本的学习器,例如 Q-learning,最终也可以解决这个问题。

为了获得更好的性能,您可能需要考虑将规划算法添加到 RL 部分。