我正在做一个RL项目,但遇到一个问题:任务是连续的(非突发性的)。根据萨顿RL book的一些建议,我正在使用具有平均奖励(差异收益而不是折扣收益)的价值函数近似方法。对于某些状态(由某些功能表示),只有一项操作是合法的。我不确定如何为这种行动设计奖励。在上一步中分配奖励可以吗?还是分配平均奖励(取到目前为止收集的所有奖励的平均值)?有人可以告诉我确定唯一法律诉讼奖励的最佳方法吗?谢谢!
更新: 为了提供更多细节,我添加了一个简化的示例: 让我通过一个简化的示例对此进行解释:状态空间由一个具有固定大小的作业队列和一个服务器组成。队列状态由作业的持续时间表示,服务器状态由完成当前正在运行的作业的剩余时间表示。当队列未满且服务器空闲时,代理可以将作业安排到服务器以执行并查看状态转换(将下一个作业放入队列),或者代理可以将下一个作业放入队列。但是,当作业队列已满并且服务器仍在运行作业时,代理只能执行BLOCKING动作并见证状态转换(完成运行的作业所需的时间减少了一个单位时间),因此无法执行任何操作。 BLOCKING操作是代理在该状态下可以执行的唯一操作。
答案 0 :(得分:2)
设计奖励是问题设置的一部分。您是否要鼓励业务代表进入唯一行动就是封锁的状态?还是应该避免这种状态?
如果不知道您的优化目标,就不会有正确的答案。它与代理人采取的法律行动无关。它也不需要对值函数做任何事情。如果您是通过随机搜索或直接在策略空间内通过Google Analytics(分析)培训您的代理商,则此决定同样重要。
另一个问题是在学习过程中如何处理无效行为。如果只能在没有其他决定的状态下执行“阻止”操作,则可以重新设计环境,使其自动跳过那些状态。它将必须累积“无决定”状态的所有奖励,并将其作为对上一个实际决定的组合奖励,并向代理提供下一个实际决定。如果您使用的是打折奖励,则还必须考虑打折因素,以免修改代理商正在优化的成本函数。
处理无效行为的另一种方法是使代理学会避免此类行为。您可以在大多数gridworld示例中看到这一点:当代理试图移入墙壁时,只是没有发生。而是发生一些默认操作。然后,对奖励函数进行结构化,使其始终会产生较差的回报(例如,更多的步骤或负的奖励)。唯一的缺点是,这需要额外的探索。函数逼近器面临更艰巨的任务。它需要足够的容量和更多的数据来识别在某些状态下,某些操作会产生不同的效果。