强化学习中相同状态的不同奖励

我想为Chrome的恐龙游戏(你可以在离线时玩的那个)实现Q-Learning算法。

我定义的状态包括:到下一个障碍物的距离、速度以及下一个障碍物的大小。

对于奖励,我希望使用成功通过的障碍物数量作为奖励,但可能出现相同状态下有不同即时奖励的情况。同一类型的障碍物可能会在游戏后期再次出现,但通过它的奖励会更高,因为已经通过了更多的障碍物。

我的问题是:这是否会造成问题,Q-Learning还能正常工作吗?如果不能,有没有更好的方法?


回答:

MDP的定义指出,奖励r(s,a,s')被定义为在状态s中采取行动a到达状态s'的期望奖励。这意味着给定的(s,a,s')可以有恒定的奖励,或者有一定的奖励分布,只要它有一个明确定义的期望。正如你所定义的,奖励与通过的障碍物数量成比例。由于游戏可以无限进行下去,某些(s,a,s')的奖励开始看起来像是自然数的总和。这个级数是发散的,因此没有期望。实际上,如果你运行Q-Learning,你可能会看到值函数发散(NaN值),但在学习过程中,策略可能会还可以,因为增长最快的值将是最佳状态行动对。

为了避免这种情况,你应该选择不同的奖励函数。你可以用它死亡时的得分作为奖励(在结束时给予大奖励,否则为零)。你也可以给予生存奖励(每个时间步长给予小奖励),只要代理没有选择只能向前移动。只要最高的总奖励分配给最长的运行(并且(s,a,s')元组的奖励期望是明确定义的),就是好的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注