首页 > 解决方案 > 如何为某个状态下唯一合法行为的行为设计奖励

问题描述

我正在做一个 RL 项目,但在某一点上卡住了:任务是连续的(非偶发性的)。根据 Sutton 的RL 书中的一些建议,我正在使用具有平均奖励(差异回报而不是折扣回报)的价值函数逼近方法。对于某些状态(由某些特征表示),只有一个动作是合法的。我不确定如何为这种行为设计奖励。可以只在上一步分配奖励吗?或者分配平均奖励(取迄今为止收集到的所有奖励的平均值)?谁能告诉我唯一的法律行动的奖励的最佳决定方法是什么?谢谢!

更新:为了提供更多细节,我添加了一个简化示例:让我通过一个简化示例来解释这一点:状态空间由一个具有固定大小的作业队列和一个服务器组成。队列状态由作业的持续时间表示,服务器状态由完成当前运行的作业的剩余时间表示。当队列未满且服务器空闲时,代理可以调度一个作业到服务器执行并查看状态转换(将下一个作业放入队列)或者代理可以将下一个作业放入队列。但是,当作业队列已满且服务器仍在运行作业时,代理除了采取 BLOCKING 操作并见证状态传输(完成运行作业的剩余时间减少一个单位时间)外,什么也做不了。BLOCKING 动作是代理在该状态下唯一可以采取的动作。

标签: reinforcement-learning

解决方案


设计奖励是问题设置的一部分。你想鼓励代理进入唯一动作是阻塞的状态吗?还是应该避免这种状态?

如果不知道您的优化目标,就不可能有正确的答案。这与代理人有多少法律行动无关。它也不必对值函数做任何事情。如果您通过随机搜索或直接在策略空间中的 GA 训练您的代理,该决定同样重要。

另一个问题是如何处理学习过程中的无效动作。如果“阻塞”动作只能在没有其他决定的状态下进行,那么您可以重新设计环境,使其自动跳过这些状态。它必须累积“无决策”状态的所有奖励,并将它们作为最后一个真正决定的组合奖励,并将下一个真正决定呈现给代理。如果您使用折扣奖励,您还必须考虑折扣因素,以免修改代理正在优化的成本函数。

处理无效动作的另一种方法是让代理学会避免它们。您可以在大多数网格世界示例中看到这一点:当代理试图移动到墙上时,它就不会发生。相反,会发生一些默认操作。然后奖励函数的结构使得它总是会产生更差的回报(例如更多的步骤或负奖励)。唯一的缺点是这需要额外的探索。函数逼近器面临着更艰巨的任务;它需要足够的能力和更多的数据来认识到在某些州,某些行动会产生不同的效果。


推荐阅读